diff --git a/apps/web/astro.config.mjs b/apps/web/astro.config.mjs index fd34be8b1..2f751aeac 100644 --- a/apps/web/astro.config.mjs +++ b/apps/web/astro.config.mjs @@ -1,11 +1,27 @@ +import { readFileSync } from 'node:fs'; +import { fileURLToPath } from 'node:url'; import starlight from '@astrojs/starlight'; import { defineConfig } from 'astro/config'; +// Static builds can't redirect an open-ended `/docs/[...slug]` wildcard to +// v4.42.4 (that requires enumerable paths), so generate one concrete +// redirect per known v4.42.4 route from its route manifest instead. +const v4RoutesPath = fileURLToPath(new URL('./src/data/docs-v4.42.4-routes.json', import.meta.url)); +const v4Routes = JSON.parse(readFileSync(v4RoutesPath, 'utf8')); +const v4Redirects = Object.fromEntries( + v4Routes.map((route) => { + const bareRoute = route.replace('/docs/v4.42.4/', '/docs/'); + const from = bareRoute === '/docs/' ? '/docs' : bareRoute.replace(/\/$/, ''); + return [from, route]; + }), +); + export default defineConfig({ site: 'https://agentv.dev', image: { service: { entrypoint: 'astro/assets/services/noop' } }, redirects: { '/docs/v4': '/docs/v4.42.4/', + ...v4Redirects, }, integrations: [ starlight({ @@ -48,14 +64,14 @@ export default defineConfig({ { icon: 'github', label: 'GitHub', href: 'https://github.com/EntityProcess/agentv' }, ], sidebar: [ - { label: 'Getting Started', autogenerate: { directory: 'docs/getting-started' } }, - { label: 'Evaluation', autogenerate: { directory: 'docs/evaluation' } }, - { label: 'Graders', autogenerate: { directory: 'docs/graders' } }, - { label: 'Targets', autogenerate: { directory: 'docs/targets' } }, - { label: 'Tools', autogenerate: { directory: 'docs/tools' } }, - { label: 'Guides', autogenerate: { directory: 'docs/guides' } }, - { label: 'Integrations', autogenerate: { directory: 'docs/integrations' } }, - { label: 'Reference', autogenerate: { directory: 'docs/reference' } }, + { label: 'Getting Started', autogenerate: { directory: 'docs/next/getting-started' } }, + { label: 'Evaluation', autogenerate: { directory: 'docs/next/evaluation' } }, + { label: 'Graders', autogenerate: { directory: 'docs/next/graders' } }, + { label: 'Targets', autogenerate: { directory: 'docs/next/targets' } }, + { label: 'Tools', autogenerate: { directory: 'docs/next/tools' } }, + { label: 'Guides', autogenerate: { directory: 'docs/next/guides' } }, + { label: 'Integrations', autogenerate: { directory: 'docs/next/integrations' } }, + { label: 'Reference', autogenerate: { directory: 'docs/next/reference' } }, ], editLink: { baseUrl: 'https://github.com/EntityProcess/agentv/edit/main/apps/web/', diff --git a/apps/web/src/components/VersionSelect.astro b/apps/web/src/components/VersionSelect.astro index c4272f735..bf918231e 100644 --- a/apps/web/src/components/VersionSelect.astro +++ b/apps/web/src/components/VersionSelect.astro @@ -1,21 +1,25 @@ --- const versions = [ - { label: 'Canary', base: '/docs' }, + { label: 'Next', base: '/docs/next' }, { label: 'v4.42.4', base: '/docs/v4.42.4' }, ]; +// Longest base first so more specific versions match before shorter prefixes. +const versionsByBaseLength = [...versions].sort((a, b) => b.base.length - a.base.length); + const pathname = Astro.url.pathname.replace(/\/$/, '') || '/'; function getCurrentVersion(path) { - if (path === '/docs/v4.42.4' || path.startsWith('/docs/v4.42.4/')) return versions[1]; - return versions[0]; + return ( + versionsByBaseLength.find( + (version) => path === version.base || path.startsWith(`${version.base}/`), + ) ?? versions[0] + ); } function getVersionSuffix(path) { - if (path === '/docs' || path === '/docs/v4.42.4') return ''; - if (path.startsWith('/docs/v4.42.4/')) return path.slice('/docs/v4.42.4'.length); - if (path.startsWith('/docs/')) return path.slice('/docs'.length); - return ''; + const current = getCurrentVersion(path); + return path === current.base ? '' : path.slice(current.base.length); } function withTrailingSlash(path) { diff --git a/apps/web/src/components/VersionedSidebar.astro b/apps/web/src/components/VersionedSidebar.astro index cd9189f0c..2ae216237 100644 --- a/apps/web/src/components/VersionedSidebar.astro +++ b/apps/web/src/components/VersionedSidebar.astro @@ -3,18 +3,28 @@ import MobileMenuFooter from 'virtual:starlight/components/MobileMenuFooter'; import SidebarPersister from '@astrojs/starlight/components/SidebarPersister.astro'; import SidebarSublist from '@astrojs/starlight/components/SidebarSublist.astro'; import type { SidebarEntry } from '@astrojs/starlight/utils/routing/types'; -import archiveRoutes from '../data/docs-v4.42.4-routes.json'; +import v4Routes from '../data/docs-v4.42.4-routes.json'; + +// The Starlight sidebar config autogenerates from docs/next/*, so the base +// sidebar's hrefs already point at the live /docs/next/ tree unmodified. +// Only genuinely archived versions below need their hrefs remapped. +const LIVE_PREFIX = '/docs/next/'; +const ARCHIVED_VERSIONS = [{ slug: 'v4.42.4', routes: v4Routes }]; -const ARCHIVE_PREFIX = '/docs/v4.42.4/'; const { sidebar } = Astro.locals.starlightRoute; const pathname = withTrailingSlash(Astro.url.pathname); -const routeSet = new Set(archiveRoutes); -const renderedSidebar = isArchivePath(pathname) ? toArchiveSidebar(sidebar) : sidebar; +const archiveVersion = ARCHIVED_VERSIONS.find((version) => isArchivePath(pathname, version.slug)); +const renderedSidebar = archiveVersion ? toArchiveSidebar(sidebar, archiveVersion) : sidebar; + +function toArchiveSidebar( + entries: SidebarEntry[], + archiveVersion: (typeof ARCHIVED_VERSIONS)[number], +): SidebarEntry[] { + const routeSet = new Set(archiveVersion.routes); -function toArchiveSidebar(entries: SidebarEntry[]): SidebarEntry[] { return entries.flatMap((entry) => { if (entry.type === 'link') { - const archiveHref = toArchiveHref(entry.href); + const archiveHref = toArchiveHref(entry.href, archiveVersion.slug); if (!routeSet.has(stripHash(archiveHref))) return []; return [ @@ -26,7 +36,7 @@ function toArchiveSidebar(entries: SidebarEntry[]): SidebarEntry[] { ]; } - const childEntries = toArchiveSidebar(entry.entries); + const childEntries = toArchiveSidebar(entry.entries, archiveVersion); if (!childEntries.length) return []; return [ @@ -38,17 +48,19 @@ function toArchiveSidebar(entries: SidebarEntry[]): SidebarEntry[] { }); } -function toArchiveHref(href: string) { - if (!href.startsWith('/docs/') || href.startsWith(ARCHIVE_PREFIX)) return href; - return href.replace('/docs/', ARCHIVE_PREFIX); +function toArchiveHref(href: string, slug: string) { + const archivePrefix = `/docs/${slug}/`; + if (!href.startsWith(LIVE_PREFIX) || href.startsWith(archivePrefix)) return href; + return href.replace(LIVE_PREFIX, archivePrefix); } function withTrailingSlash(path: string) { return path.endsWith('/') ? path : `${path}/`; } -function isArchivePath(path: string) { - return path === ARCHIVE_PREFIX || path.startsWith(ARCHIVE_PREFIX); +function isArchivePath(path: string, slug: string) { + const archivePrefix = `/docs/${slug}/`; + return path === archivePrefix || path.startsWith(archivePrefix); } function stripHash(href: string) { diff --git a/apps/web/src/content/docs/docs/evaluation/batch-cli.mdx b/apps/web/src/content/docs/docs/next/evaluation/batch-cli.mdx similarity index 100% rename from apps/web/src/content/docs/docs/evaluation/batch-cli.mdx rename to apps/web/src/content/docs/docs/next/evaluation/batch-cli.mdx diff --git a/apps/web/src/content/docs/docs/evaluation/eval-cases.mdx b/apps/web/src/content/docs/docs/next/evaluation/eval-cases.mdx similarity index 100% rename from apps/web/src/content/docs/docs/evaluation/eval-cases.mdx rename to apps/web/src/content/docs/docs/next/evaluation/eval-cases.mdx diff --git a/apps/web/src/content/docs/docs/evaluation/eval-files.mdx b/apps/web/src/content/docs/docs/next/evaluation/eval-files.mdx similarity index 100% rename from apps/web/src/content/docs/docs/evaluation/eval-files.mdx rename to apps/web/src/content/docs/docs/next/evaluation/eval-files.mdx diff --git a/apps/web/src/content/docs/docs/evaluation/examples.mdx b/apps/web/src/content/docs/docs/next/evaluation/examples.mdx similarity index 97% rename from apps/web/src/content/docs/docs/evaluation/examples.mdx rename to apps/web/src/content/docs/docs/next/evaluation/examples.mdx index 5abc13d9d..3de5e3899 100644 --- a/apps/web/src/content/docs/docs/evaluation/examples.mdx +++ b/apps/web/src/content/docs/docs/next/evaluation/examples.mdx @@ -121,7 +121,7 @@ tests: - Output contains the transformed spreadsheet text including the revenue rows ``` -See [`examples/features/preprocessors/`](../../../../examples/features/preprocessors/) for a runnable end-to-end example with a file-producing target and custom grader target. +See [`examples/features/preprocessors/`](../../../../../examples/features/preprocessors/) for a runnable end-to-end example with a file-producing target and custom grader target. ## Tool Trajectory @@ -189,7 +189,7 @@ assert: prompt: ../prompts/grader-pass-fail-v1.md ``` -See [`examples/showcase/offline-grader-benchmark/`](../../../../examples/showcase/offline-grader-benchmark/) for the full workflow, replay target, export contract, scoring script, and A/B compare commands. +See [`examples/showcase/offline-grader-benchmark/`](../../../../../examples/showcase/offline-grader-benchmark/) for the full workflow, replay target, export contract, scoring script, and A/B compare commands. ## Static Trace diff --git a/apps/web/src/content/docs/docs/evaluation/experiments.mdx b/apps/web/src/content/docs/docs/next/evaluation/experiments.mdx similarity index 100% rename from apps/web/src/content/docs/docs/evaluation/experiments.mdx rename to apps/web/src/content/docs/docs/next/evaluation/experiments.mdx diff --git a/apps/web/src/content/docs/docs/evaluation/rubrics.mdx b/apps/web/src/content/docs/docs/next/evaluation/rubrics.mdx similarity index 100% rename from apps/web/src/content/docs/docs/evaluation/rubrics.mdx rename to apps/web/src/content/docs/docs/next/evaluation/rubrics.mdx diff --git a/apps/web/src/content/docs/docs/evaluation/running-evals.mdx b/apps/web/src/content/docs/docs/next/evaluation/running-evals.mdx similarity index 100% rename from apps/web/src/content/docs/docs/evaluation/running-evals.mdx rename to apps/web/src/content/docs/docs/next/evaluation/running-evals.mdx diff --git a/apps/web/src/content/docs/docs/evaluation/sdk.mdx b/apps/web/src/content/docs/docs/next/evaluation/sdk.mdx similarity index 100% rename from apps/web/src/content/docs/docs/evaluation/sdk.mdx rename to apps/web/src/content/docs/docs/next/evaluation/sdk.mdx diff --git a/apps/web/src/content/docs/docs/getting-started/installation.mdx b/apps/web/src/content/docs/docs/next/getting-started/installation.mdx similarity index 100% rename from apps/web/src/content/docs/docs/getting-started/installation.mdx rename to apps/web/src/content/docs/docs/next/getting-started/installation.mdx diff --git a/apps/web/src/content/docs/docs/getting-started/quickstart.mdx b/apps/web/src/content/docs/docs/next/getting-started/quickstart.mdx similarity index 100% rename from apps/web/src/content/docs/docs/getting-started/quickstart.mdx rename to apps/web/src/content/docs/docs/next/getting-started/quickstart.mdx diff --git a/apps/web/src/content/docs/docs/graders/code-graders.mdx b/apps/web/src/content/docs/docs/next/graders/code-graders.mdx similarity index 100% rename from apps/web/src/content/docs/docs/graders/code-graders.mdx rename to apps/web/src/content/docs/docs/next/graders/code-graders.mdx diff --git a/apps/web/src/content/docs/docs/graders/composite.mdx b/apps/web/src/content/docs/docs/next/graders/composite.mdx similarity index 100% rename from apps/web/src/content/docs/docs/graders/composite.mdx rename to apps/web/src/content/docs/docs/next/graders/composite.mdx diff --git a/apps/web/src/content/docs/docs/graders/custom-assertions.mdx b/apps/web/src/content/docs/docs/next/graders/custom-assertions.mdx similarity index 100% rename from apps/web/src/content/docs/docs/graders/custom-assertions.mdx rename to apps/web/src/content/docs/docs/next/graders/custom-assertions.mdx diff --git a/apps/web/src/content/docs/docs/graders/custom-graders.mdx b/apps/web/src/content/docs/docs/next/graders/custom-graders.mdx similarity index 100% rename from apps/web/src/content/docs/docs/graders/custom-graders.mdx rename to apps/web/src/content/docs/docs/next/graders/custom-graders.mdx diff --git a/apps/web/src/content/docs/docs/graders/execution-metrics.mdx b/apps/web/src/content/docs/docs/next/graders/execution-metrics.mdx similarity index 100% rename from apps/web/src/content/docs/docs/graders/execution-metrics.mdx rename to apps/web/src/content/docs/docs/next/graders/execution-metrics.mdx diff --git a/apps/web/src/content/docs/docs/graders/llm-graders.mdx b/apps/web/src/content/docs/docs/next/graders/llm-graders.mdx similarity index 98% rename from apps/web/src/content/docs/docs/graders/llm-graders.mdx rename to apps/web/src/content/docs/docs/next/graders/llm-graders.mdx index c3c0f8272..1a7515f81 100644 --- a/apps/web/src/content/docs/docs/graders/llm-graders.mdx +++ b/apps/web/src/content/docs/docs/next/graders/llm-graders.mdx @@ -221,7 +221,7 @@ Resolution order: - if no preprocessor matches, AgentV falls back to a UTF-8 text read - if the fallback read looks binary or invalid, the grader receives a warning note instead of failing the test run -See [`examples/features/preprocessors/`](../../../../examples/features/preprocessors/) for a runnable example with a file-producing target and a custom preprocessor script. +See [`examples/features/preprocessors/`](../../../../../examples/features/preprocessors/) for a runnable example with a file-producing target and a custom preprocessor script. ## Available Context Fields diff --git a/apps/web/src/content/docs/docs/graders/python-helpers.mdx b/apps/web/src/content/docs/docs/next/graders/python-helpers.mdx similarity index 100% rename from apps/web/src/content/docs/docs/graders/python-helpers.mdx rename to apps/web/src/content/docs/docs/next/graders/python-helpers.mdx diff --git a/apps/web/src/content/docs/docs/graders/structured-data.mdx b/apps/web/src/content/docs/docs/next/graders/structured-data.mdx similarity index 100% rename from apps/web/src/content/docs/docs/graders/structured-data.mdx rename to apps/web/src/content/docs/docs/next/graders/structured-data.mdx diff --git a/apps/web/src/content/docs/docs/graders/tool-trajectory.mdx b/apps/web/src/content/docs/docs/next/graders/tool-trajectory.mdx similarity index 100% rename from apps/web/src/content/docs/docs/graders/tool-trajectory.mdx rename to apps/web/src/content/docs/docs/next/graders/tool-trajectory.mdx diff --git a/apps/web/src/content/docs/docs/guides/agent-eval-layers.mdx b/apps/web/src/content/docs/docs/next/guides/agent-eval-layers.mdx similarity index 100% rename from apps/web/src/content/docs/docs/guides/agent-eval-layers.mdx rename to apps/web/src/content/docs/docs/next/guides/agent-eval-layers.mdx diff --git a/apps/web/src/content/docs/docs/guides/autoresearch.mdx b/apps/web/src/content/docs/docs/next/guides/autoresearch.mdx similarity index 99% rename from apps/web/src/content/docs/docs/guides/autoresearch.mdx rename to apps/web/src/content/docs/docs/next/guides/autoresearch.mdx index e5dc09b4a..7ae9147b3 100644 --- a/apps/web/src/content/docs/docs/guides/autoresearch.mdx +++ b/apps/web/src/content/docs/docs/next/guides/autoresearch.mdx @@ -6,7 +6,7 @@ sidebar: --- import { Image } from 'astro:assets'; -import trajectoryChart from '../../../../assets/screenshots/autoresearch-trajectory.png'; +import trajectoryChart from '../../../../../assets/screenshots/autoresearch-trajectory.png'; Autoresearch is an unattended optimization loop that **automatically improves your agent skills** through repeated eval cycles. It runs the same evaluate → analyze → improve loop described in the [Skill Improvement Workflow](/docs/guides/skill-improvement-workflow/), but does it hands-free — no human review between cycles. diff --git a/apps/web/src/content/docs/docs/guides/benchmark-provenance.mdx b/apps/web/src/content/docs/docs/next/guides/benchmark-provenance.mdx similarity index 100% rename from apps/web/src/content/docs/docs/guides/benchmark-provenance.mdx rename to apps/web/src/content/docs/docs/next/guides/benchmark-provenance.mdx diff --git a/apps/web/src/content/docs/docs/guides/enterprise-governance.mdx b/apps/web/src/content/docs/docs/next/guides/enterprise-governance.mdx similarity index 100% rename from apps/web/src/content/docs/docs/guides/enterprise-governance.mdx rename to apps/web/src/content/docs/docs/next/guides/enterprise-governance.mdx diff --git a/apps/web/src/content/docs/docs/guides/eval-authoring.mdx b/apps/web/src/content/docs/docs/next/guides/eval-authoring.mdx similarity index 100% rename from apps/web/src/content/docs/docs/guides/eval-authoring.mdx rename to apps/web/src/content/docs/docs/next/guides/eval-authoring.mdx diff --git a/apps/web/src/content/docs/docs/guides/evaluation-types.mdx b/apps/web/src/content/docs/docs/next/guides/evaluation-types.mdx similarity index 100% rename from apps/web/src/content/docs/docs/guides/evaluation-types.mdx rename to apps/web/src/content/docs/docs/next/guides/evaluation-types.mdx diff --git a/apps/web/src/content/docs/docs/guides/skill-improvement-workflow.mdx b/apps/web/src/content/docs/docs/next/guides/skill-improvement-workflow.mdx similarity index 100% rename from apps/web/src/content/docs/docs/guides/skill-improvement-workflow.mdx rename to apps/web/src/content/docs/docs/next/guides/skill-improvement-workflow.mdx diff --git a/apps/web/src/content/docs/docs/guides/workspace-architecture.mdx b/apps/web/src/content/docs/docs/next/guides/workspace-architecture.mdx similarity index 100% rename from apps/web/src/content/docs/docs/guides/workspace-architecture.mdx rename to apps/web/src/content/docs/docs/next/guides/workspace-architecture.mdx diff --git a/apps/web/src/content/docs/docs/index.mdx b/apps/web/src/content/docs/docs/next/index.mdx similarity index 100% rename from apps/web/src/content/docs/docs/index.mdx rename to apps/web/src/content/docs/docs/next/index.mdx diff --git a/apps/web/src/content/docs/docs/integrations/agent-skills-evals.mdx b/apps/web/src/content/docs/docs/next/integrations/agent-skills-evals.mdx similarity index 100% rename from apps/web/src/content/docs/docs/integrations/agent-skills-evals.mdx rename to apps/web/src/content/docs/docs/next/integrations/agent-skills-evals.mdx diff --git a/apps/web/src/content/docs/docs/integrations/autoevals-integration.mdx b/apps/web/src/content/docs/docs/next/integrations/autoevals-integration.mdx similarity index 100% rename from apps/web/src/content/docs/docs/integrations/autoevals-integration.mdx rename to apps/web/src/content/docs/docs/next/integrations/autoevals-integration.mdx diff --git a/apps/web/src/content/docs/docs/integrations/langfuse.mdx b/apps/web/src/content/docs/docs/next/integrations/langfuse.mdx similarity index 100% rename from apps/web/src/content/docs/docs/integrations/langfuse.mdx rename to apps/web/src/content/docs/docs/next/integrations/langfuse.mdx diff --git a/apps/web/src/content/docs/docs/integrations/phoenix.mdx b/apps/web/src/content/docs/docs/next/integrations/phoenix.mdx similarity index 100% rename from apps/web/src/content/docs/docs/integrations/phoenix.mdx rename to apps/web/src/content/docs/docs/next/integrations/phoenix.mdx diff --git a/apps/web/src/content/docs/docs/reference/comparison.mdx b/apps/web/src/content/docs/docs/next/reference/comparison.mdx similarity index 100% rename from apps/web/src/content/docs/docs/reference/comparison.mdx rename to apps/web/src/content/docs/docs/next/reference/comparison.mdx diff --git a/apps/web/src/content/docs/docs/reference/result-artifacts.mdx b/apps/web/src/content/docs/docs/next/reference/result-artifacts.mdx similarity index 100% rename from apps/web/src/content/docs/docs/reference/result-artifacts.mdx rename to apps/web/src/content/docs/docs/next/reference/result-artifacts.mdx diff --git a/apps/web/src/content/docs/docs/targets/cli-provider.mdx b/apps/web/src/content/docs/docs/next/targets/cli-provider.mdx similarity index 100% rename from apps/web/src/content/docs/docs/targets/cli-provider.mdx rename to apps/web/src/content/docs/docs/next/targets/cli-provider.mdx diff --git a/apps/web/src/content/docs/docs/targets/coding-agents.mdx b/apps/web/src/content/docs/docs/next/targets/coding-agents.mdx similarity index 100% rename from apps/web/src/content/docs/docs/targets/coding-agents.mdx rename to apps/web/src/content/docs/docs/next/targets/coding-agents.mdx diff --git a/apps/web/src/content/docs/docs/targets/configuration.mdx b/apps/web/src/content/docs/docs/next/targets/configuration.mdx similarity index 100% rename from apps/web/src/content/docs/docs/targets/configuration.mdx rename to apps/web/src/content/docs/docs/next/targets/configuration.mdx diff --git a/apps/web/src/content/docs/docs/targets/custom-providers.mdx b/apps/web/src/content/docs/docs/next/targets/custom-providers.mdx similarity index 100% rename from apps/web/src/content/docs/docs/targets/custom-providers.mdx rename to apps/web/src/content/docs/docs/next/targets/custom-providers.mdx diff --git a/apps/web/src/content/docs/docs/targets/llm-providers.mdx b/apps/web/src/content/docs/docs/next/targets/llm-providers.mdx similarity index 100% rename from apps/web/src/content/docs/docs/targets/llm-providers.mdx rename to apps/web/src/content/docs/docs/next/targets/llm-providers.mdx diff --git a/apps/web/src/content/docs/docs/targets/retry.mdx b/apps/web/src/content/docs/docs/next/targets/retry.mdx similarity index 100% rename from apps/web/src/content/docs/docs/targets/retry.mdx rename to apps/web/src/content/docs/docs/next/targets/retry.mdx diff --git a/apps/web/src/content/docs/docs/tools/compare.mdx b/apps/web/src/content/docs/docs/next/tools/compare.mdx similarity index 100% rename from apps/web/src/content/docs/docs/tools/compare.mdx rename to apps/web/src/content/docs/docs/next/tools/compare.mdx diff --git a/apps/web/src/content/docs/docs/tools/convert.mdx b/apps/web/src/content/docs/docs/next/tools/convert.mdx similarity index 100% rename from apps/web/src/content/docs/docs/tools/convert.mdx rename to apps/web/src/content/docs/docs/next/tools/convert.mdx diff --git a/apps/web/src/content/docs/docs/tools/dashboard.mdx b/apps/web/src/content/docs/docs/next/tools/dashboard.mdx similarity index 95% rename from apps/web/src/content/docs/docs/tools/dashboard.mdx rename to apps/web/src/content/docs/docs/next/tools/dashboard.mdx index d30c34afc..4d7a6c4fd 100644 --- a/apps/web/src/content/docs/docs/tools/dashboard.mdx +++ b/apps/web/src/content/docs/docs/next/tools/dashboard.mdx @@ -6,20 +6,20 @@ sidebar: --- import { Image } from 'astro:assets'; -import studioRuns from '../../../../assets/screenshots/studio-runs.png'; -import studioRunDetail from '../../../../assets/screenshots/studio-run-detail.png'; -import studioExperiments from '../../../../assets/screenshots/studio-experiments.png'; -import studioProjects from '../../../../assets/screenshots/studio-projects.png'; -import studioProjectsMulti from '../../../../assets/screenshots/studio-projects-multi.png'; -import studioCompareAggregated from '../../../../assets/screenshots/studio-compare-aggregated.png'; -import studioComparePerRun from '../../../../assets/screenshots/studio-compare-per-run.png'; -import studioCompareSideBySide from '../../../../assets/screenshots/studio-compare-side-by-side.png'; -import studioRunsBench from '../../../../assets/screenshots/studio-runs-bench.png'; -import studioAnalyticsAggregated from '../../../../assets/screenshots/studio-analytics-aggregated.png'; -import studioAnalyticsCharts from '../../../../assets/screenshots/studio-analytics-charts.png'; -import studioAnalyticsTrend from '../../../../assets/screenshots/studio-analytics-trend.png'; -import studioRemoteResultsBeforeSync from '../../../../assets/screenshots/studio-remote-results-before-sync.png'; -import studioRemoteResultsAfterSync from '../../../../assets/screenshots/studio-remote-results-after-sync.png'; +import studioRuns from '../../../../../assets/screenshots/studio-runs.png'; +import studioRunDetail from '../../../../../assets/screenshots/studio-run-detail.png'; +import studioExperiments from '../../../../../assets/screenshots/studio-experiments.png'; +import studioProjects from '../../../../../assets/screenshots/studio-projects.png'; +import studioProjectsMulti from '../../../../../assets/screenshots/studio-projects-multi.png'; +import studioCompareAggregated from '../../../../../assets/screenshots/studio-compare-aggregated.png'; +import studioComparePerRun from '../../../../../assets/screenshots/studio-compare-per-run.png'; +import studioCompareSideBySide from '../../../../../assets/screenshots/studio-compare-side-by-side.png'; +import studioRunsBench from '../../../../../assets/screenshots/studio-runs-bench.png'; +import studioAnalyticsAggregated from '../../../../../assets/screenshots/studio-analytics-aggregated.png'; +import studioAnalyticsCharts from '../../../../../assets/screenshots/studio-analytics-charts.png'; +import studioAnalyticsTrend from '../../../../../assets/screenshots/studio-analytics-trend.png'; +import studioRemoteResultsBeforeSync from '../../../../../assets/screenshots/studio-remote-results-before-sync.png'; +import studioRemoteResultsAfterSync from '../../../../../assets/screenshots/studio-remote-results-after-sync.png'; The `dashboard` command launches a web-based dashboard for browsing evaluation runs, inspecting individual test results, and reviewing scores. It shows both local runs and runs synced from a remote results repository. diff --git a/apps/web/src/content/docs/docs/tools/import.mdx b/apps/web/src/content/docs/docs/next/tools/import.mdx similarity index 100% rename from apps/web/src/content/docs/docs/tools/import.mdx rename to apps/web/src/content/docs/docs/next/tools/import.mdx diff --git a/apps/web/src/content/docs/docs/tools/inspect.mdx b/apps/web/src/content/docs/docs/next/tools/inspect.mdx similarity index 100% rename from apps/web/src/content/docs/docs/tools/inspect.mdx rename to apps/web/src/content/docs/docs/next/tools/inspect.mdx diff --git a/apps/web/src/content/docs/docs/tools/prepare.mdx b/apps/web/src/content/docs/docs/next/tools/prepare.mdx similarity index 100% rename from apps/web/src/content/docs/docs/tools/prepare.mdx rename to apps/web/src/content/docs/docs/next/tools/prepare.mdx diff --git a/apps/web/src/content/docs/docs/tools/results.mdx b/apps/web/src/content/docs/docs/next/tools/results.mdx similarity index 98% rename from apps/web/src/content/docs/docs/tools/results.mdx rename to apps/web/src/content/docs/docs/next/tools/results.mdx index 1e390e455..e60ad51e1 100644 --- a/apps/web/src/content/docs/docs/tools/results.mdx +++ b/apps/web/src/content/docs/docs/next/tools/results.mdx @@ -6,8 +6,8 @@ sidebar: --- import { Image } from 'astro:assets'; -import resultsReportOverview from '../../../../assets/screenshots/results-report-overview.png'; -import resultsReportDetails from '../../../../assets/screenshots/results-report-details.png'; +import resultsReportOverview from '../../../../../assets/screenshots/results-report-overview.png'; +import resultsReportDetails from '../../../../../assets/screenshots/results-report-details.png'; The `results` command family works on existing local AgentV run workspaces and `index.jsonl` manifests. Use it after an eval run to inspect failures, validate manifests, export artifact layouts, combine/delete local run workspaces, or generate a shareable HTML report. diff --git a/apps/web/src/content/docs/docs/tools/trend.mdx b/apps/web/src/content/docs/docs/next/tools/trend.mdx similarity index 100% rename from apps/web/src/content/docs/docs/tools/trend.mdx rename to apps/web/src/content/docs/docs/next/tools/trend.mdx diff --git a/apps/web/src/content/docs/docs/tools/validate.mdx b/apps/web/src/content/docs/docs/next/tools/validate.mdx similarity index 100% rename from apps/web/src/content/docs/docs/tools/validate.mdx rename to apps/web/src/content/docs/docs/next/tools/validate.mdx diff --git a/apps/web/src/content/docs/docs/tools/wip-checkpoints.mdx b/apps/web/src/content/docs/docs/next/tools/wip-checkpoints.mdx similarity index 100% rename from apps/web/src/content/docs/docs/tools/wip-checkpoints.mdx rename to apps/web/src/content/docs/docs/next/tools/wip-checkpoints.mdx diff --git a/apps/web/src/content/docs/docs/v4.42.4/evaluation/batch-cli.mdx b/apps/web/src/content/docs/docs/v4.42.4/evaluation/batch-cli.mdx index c121804c5..f9b204b46 100644 --- a/apps/web/src/content/docs/docs/v4.42.4/evaluation/batch-cli.mdx +++ b/apps/web/src/content/docs/docs/v4.42.4/evaluation/batch-cli.mdx @@ -6,10 +6,6 @@ sidebar: slug: docs/v4.42.4/evaluation/batch-cli editUrl: false pagefind: false -banner: - content: | - You are viewing the frozen v4.42.4 docs. Use Canary docs for the current development version. - --- Batch CLI evaluation handles tools that process multiple inputs at once — bulk classifiers, screening engines, or any runner that reads all tests and outputs results in one pass. diff --git a/apps/web/src/content/docs/docs/v4.42.4/evaluation/eval-cases.mdx b/apps/web/src/content/docs/docs/v4.42.4/evaluation/eval-cases.mdx index 9e4421159..533ebbac6 100644 --- a/apps/web/src/content/docs/docs/v4.42.4/evaluation/eval-cases.mdx +++ b/apps/web/src/content/docs/docs/v4.42.4/evaluation/eval-cases.mdx @@ -6,10 +6,6 @@ sidebar: slug: docs/v4.42.4/evaluation/eval-cases editUrl: false pagefind: false -banner: - content: | - You are viewing the frozen v4.42.4 docs. Use Canary docs for the current development version. - --- Tests are individual test entries within an evaluation file. Each test defines input messages, expected outcomes, and optional grader overrides. diff --git a/apps/web/src/content/docs/docs/v4.42.4/evaluation/eval-files.mdx b/apps/web/src/content/docs/docs/v4.42.4/evaluation/eval-files.mdx index 834a2fbf9..838a1d886 100644 --- a/apps/web/src/content/docs/docs/v4.42.4/evaluation/eval-files.mdx +++ b/apps/web/src/content/docs/docs/v4.42.4/evaluation/eval-files.mdx @@ -6,10 +6,6 @@ sidebar: slug: docs/v4.42.4/evaluation/eval-files editUrl: false pagefind: false -banner: - content: | - You are viewing the frozen v4.42.4 docs. Use Canary docs for the current development version. - --- Evaluation files define the test cases, targets, and graders for an evaluation run. AgentV supports two formats: YAML and JSONL. diff --git a/apps/web/src/content/docs/docs/v4.42.4/evaluation/examples.mdx b/apps/web/src/content/docs/docs/v4.42.4/evaluation/examples.mdx index b68e37e84..c2691b96c 100644 --- a/apps/web/src/content/docs/docs/v4.42.4/evaluation/examples.mdx +++ b/apps/web/src/content/docs/docs/v4.42.4/evaluation/examples.mdx @@ -6,10 +6,6 @@ sidebar: slug: docs/v4.42.4/evaluation/examples editUrl: false pagefind: false -banner: - content: | - You are viewing the frozen v4.42.4 docs. Use Canary docs for the current development version. - --- This page collects complete eval file examples you can copy and adapt. Each demonstrates a different AgentV pattern. diff --git a/apps/web/src/content/docs/docs/v4.42.4/evaluation/rubrics.mdx b/apps/web/src/content/docs/docs/v4.42.4/evaluation/rubrics.mdx index 3c7e8ba42..8657bc0de 100644 --- a/apps/web/src/content/docs/docs/v4.42.4/evaluation/rubrics.mdx +++ b/apps/web/src/content/docs/docs/v4.42.4/evaluation/rubrics.mdx @@ -6,10 +6,6 @@ sidebar: slug: docs/v4.42.4/evaluation/rubrics editUrl: false pagefind: false -banner: - content: | - You are viewing the frozen v4.42.4 docs. Use Canary docs for the current development version. - --- Rubrics are defined with `assertions` entries and support binary checklist grading and score-range analytic grading. diff --git a/apps/web/src/content/docs/docs/v4.42.4/evaluation/running-evals.mdx b/apps/web/src/content/docs/docs/v4.42.4/evaluation/running-evals.mdx index 7483cb9fc..6138d2fd2 100644 --- a/apps/web/src/content/docs/docs/v4.42.4/evaluation/running-evals.mdx +++ b/apps/web/src/content/docs/docs/v4.42.4/evaluation/running-evals.mdx @@ -6,10 +6,6 @@ sidebar: slug: docs/v4.42.4/evaluation/running-evals editUrl: false pagefind: false -banner: - content: | - You are viewing the frozen v4.42.4 docs. Use Canary docs for the current development version. - --- ## Run an Evaluation diff --git a/apps/web/src/content/docs/docs/v4.42.4/evaluation/sdk.mdx b/apps/web/src/content/docs/docs/v4.42.4/evaluation/sdk.mdx index debdba5f0..a0c839da8 100644 --- a/apps/web/src/content/docs/docs/v4.42.4/evaluation/sdk.mdx +++ b/apps/web/src/content/docs/docs/v4.42.4/evaluation/sdk.mdx @@ -6,10 +6,6 @@ sidebar: slug: docs/v4.42.4/evaluation/sdk editUrl: false pagefind: false -banner: - content: | - You are viewing the frozen v4.42.4 docs. Use Canary docs for the current development version. - --- YAML remains AgentV's canonical, portable eval format. The SDK surfaces below are for cases where you want to generate YAML-shaped definitions in code, embed eval runs inside another application, or write executable graders and prompt templates. For authoring helpers, `@agentv/sdk` is AgentV's public lightweight SDK package. diff --git a/apps/web/src/content/docs/docs/v4.42.4/getting-started/installation.mdx b/apps/web/src/content/docs/docs/v4.42.4/getting-started/installation.mdx index 0941b63e2..e128d6bf2 100644 --- a/apps/web/src/content/docs/docs/v4.42.4/getting-started/installation.mdx +++ b/apps/web/src/content/docs/docs/v4.42.4/getting-started/installation.mdx @@ -6,10 +6,6 @@ sidebar: slug: docs/v4.42.4/getting-started/installation editUrl: false pagefind: false -banner: - content: | - You are viewing the frozen v4.42.4 docs. Use Canary docs for the current development version. - --- ## Prerequisites diff --git a/apps/web/src/content/docs/docs/v4.42.4/getting-started/quickstart.mdx b/apps/web/src/content/docs/docs/v4.42.4/getting-started/quickstart.mdx index d70a92810..bb3a23aa9 100644 --- a/apps/web/src/content/docs/docs/v4.42.4/getting-started/quickstart.mdx +++ b/apps/web/src/content/docs/docs/v4.42.4/getting-started/quickstart.mdx @@ -6,10 +6,6 @@ sidebar: slug: docs/v4.42.4/getting-started/quickstart editUrl: false pagefind: false -banner: - content: | - You are viewing the frozen v4.42.4 docs. Use Canary docs for the current development version. - --- Follow these steps to create and run your first evaluation. diff --git a/apps/web/src/content/docs/docs/v4.42.4/graders/code-graders.mdx b/apps/web/src/content/docs/docs/v4.42.4/graders/code-graders.mdx index 290c9cddf..74af6f546 100644 --- a/apps/web/src/content/docs/docs/v4.42.4/graders/code-graders.mdx +++ b/apps/web/src/content/docs/docs/v4.42.4/graders/code-graders.mdx @@ -6,10 +6,6 @@ sidebar: slug: docs/v4.42.4/graders/code-graders editUrl: false pagefind: false -banner: - content: | - You are viewing the frozen v4.42.4 docs. Use Canary docs for the current development version. - --- Code graders are scripts that evaluate agent responses deterministically. Write them in any language — Python, TypeScript, Node, or any executable. diff --git a/apps/web/src/content/docs/docs/v4.42.4/graders/composite.mdx b/apps/web/src/content/docs/docs/v4.42.4/graders/composite.mdx index 5ec02b041..ce04aa05a 100644 --- a/apps/web/src/content/docs/docs/v4.42.4/graders/composite.mdx +++ b/apps/web/src/content/docs/docs/v4.42.4/graders/composite.mdx @@ -6,10 +6,6 @@ sidebar: slug: docs/v4.42.4/graders/composite editUrl: false pagefind: false -banner: - content: | - You are viewing the frozen v4.42.4 docs. Use Canary docs for the current development version. - --- Composite graders combine multiple graders and aggregate their results into a single score. This enables sophisticated evaluation patterns like safety gates, weighted scoring, and conflict resolution. diff --git a/apps/web/src/content/docs/docs/v4.42.4/graders/custom-assertions.mdx b/apps/web/src/content/docs/docs/v4.42.4/graders/custom-assertions.mdx index 3dd941949..755896596 100644 --- a/apps/web/src/content/docs/docs/v4.42.4/graders/custom-assertions.mdx +++ b/apps/web/src/content/docs/docs/v4.42.4/graders/custom-assertions.mdx @@ -6,10 +6,6 @@ sidebar: slug: docs/v4.42.4/graders/custom-assertions editUrl: false pagefind: false -banner: - content: | - You are viewing the frozen v4.42.4 docs. Use Canary docs for the current development version. - --- Custom assertions let you add evaluation logic that goes beyond built-in types. Define a TypeScript function, drop it in `.agentv/assertions/`, and reference it by name in your YAML eval files. diff --git a/apps/web/src/content/docs/docs/v4.42.4/graders/custom-graders.mdx b/apps/web/src/content/docs/docs/v4.42.4/graders/custom-graders.mdx index 7eaeb4506..6690791b2 100644 --- a/apps/web/src/content/docs/docs/v4.42.4/graders/custom-graders.mdx +++ b/apps/web/src/content/docs/docs/v4.42.4/graders/custom-graders.mdx @@ -6,10 +6,6 @@ sidebar: slug: docs/v4.42.4/graders/custom-graders editUrl: false pagefind: false -banner: - content: | - You are viewing the frozen v4.42.4 docs. Use Canary docs for the current development version. - --- AgentV supports multiple grader types that can be combined for comprehensive evaluation. diff --git a/apps/web/src/content/docs/docs/v4.42.4/graders/execution-metrics.mdx b/apps/web/src/content/docs/docs/v4.42.4/graders/execution-metrics.mdx index 79651f7bc..59591f8e7 100644 --- a/apps/web/src/content/docs/docs/v4.42.4/graders/execution-metrics.mdx +++ b/apps/web/src/content/docs/docs/v4.42.4/graders/execution-metrics.mdx @@ -6,10 +6,6 @@ sidebar: slug: docs/v4.42.4/graders/execution-metrics editUrl: false pagefind: false -banner: - content: | - You are viewing the frozen v4.42.4 docs. Use Canary docs for the current development version. - --- AgentV provides built-in graders for checking execution metrics against thresholds. These are useful for enforcing efficiency constraints without writing custom code. diff --git a/apps/web/src/content/docs/docs/v4.42.4/graders/llm-graders.mdx b/apps/web/src/content/docs/docs/v4.42.4/graders/llm-graders.mdx index 01639215a..91c8d68ea 100644 --- a/apps/web/src/content/docs/docs/v4.42.4/graders/llm-graders.mdx +++ b/apps/web/src/content/docs/docs/v4.42.4/graders/llm-graders.mdx @@ -6,10 +6,6 @@ sidebar: slug: docs/v4.42.4/graders/llm-graders editUrl: false pagefind: false -banner: - content: | - You are viewing the frozen v4.42.4 docs. Use Canary docs for the current development version. - --- LLM graders use a language model to evaluate agent responses against custom criteria defined in a prompt file. diff --git a/apps/web/src/content/docs/docs/v4.42.4/graders/python-helpers.mdx b/apps/web/src/content/docs/docs/v4.42.4/graders/python-helpers.mdx index 1ad5ce3c3..7f5693a6d 100644 --- a/apps/web/src/content/docs/docs/v4.42.4/graders/python-helpers.mdx +++ b/apps/web/src/content/docs/docs/v4.42.4/graders/python-helpers.mdx @@ -6,10 +6,6 @@ sidebar: slug: docs/v4.42.4/graders/python-helpers editUrl: false pagefind: false -banner: - content: | - You are viewing the frozen v4.42.4 docs. Use Canary docs for the current development version. - --- AgentV's Python surface currently starts as a repo-local helper example, not a separate runner or published package. diff --git a/apps/web/src/content/docs/docs/v4.42.4/graders/structured-data.mdx b/apps/web/src/content/docs/docs/v4.42.4/graders/structured-data.mdx index fb5e12d17..e51f8a70f 100644 --- a/apps/web/src/content/docs/docs/v4.42.4/graders/structured-data.mdx +++ b/apps/web/src/content/docs/docs/v4.42.4/graders/structured-data.mdx @@ -6,10 +6,6 @@ sidebar: slug: docs/v4.42.4/graders/structured-data editUrl: false pagefind: false -banner: - content: | - You are viewing the frozen v4.42.4 docs. Use Canary docs for the current development version. - --- Built-in graders for grading structured outputs and gating on execution metrics: diff --git a/apps/web/src/content/docs/docs/v4.42.4/graders/tool-trajectory.mdx b/apps/web/src/content/docs/docs/v4.42.4/graders/tool-trajectory.mdx index 4f68c6d54..de55e3355 100644 --- a/apps/web/src/content/docs/docs/v4.42.4/graders/tool-trajectory.mdx +++ b/apps/web/src/content/docs/docs/v4.42.4/graders/tool-trajectory.mdx @@ -6,10 +6,6 @@ sidebar: slug: docs/v4.42.4/graders/tool-trajectory editUrl: false pagefind: false -banner: - content: | - You are viewing the frozen v4.42.4 docs. Use Canary docs for the current development version. - --- Tool trajectory graders validate that an agent used the expected tools during execution. They work with trace data returned by agent providers (codex, vscode, cli with trace support). diff --git a/apps/web/src/content/docs/docs/v4.42.4/guides/agent-eval-layers.mdx b/apps/web/src/content/docs/docs/v4.42.4/guides/agent-eval-layers.mdx index 7b7752fcc..9c8adcd84 100644 --- a/apps/web/src/content/docs/docs/v4.42.4/guides/agent-eval-layers.mdx +++ b/apps/web/src/content/docs/docs/v4.42.4/guides/agent-eval-layers.mdx @@ -6,10 +6,6 @@ sidebar: slug: docs/v4.42.4/guides/agent-eval-layers editUrl: false pagefind: false -banner: - content: | - You are viewing the frozen v4.42.4 docs. Use Canary docs for the current development version. - --- A practical taxonomy for structuring agent evaluations. Each layer targets a different dimension of agent behavior, and maps directly to AgentV graders you can drop into an `EVAL.yaml`. diff --git a/apps/web/src/content/docs/docs/v4.42.4/guides/autoresearch.mdx b/apps/web/src/content/docs/docs/v4.42.4/guides/autoresearch.mdx index 9f322120b..c38755fb0 100644 --- a/apps/web/src/content/docs/docs/v4.42.4/guides/autoresearch.mdx +++ b/apps/web/src/content/docs/docs/v4.42.4/guides/autoresearch.mdx @@ -6,10 +6,6 @@ sidebar: slug: docs/v4.42.4/guides/autoresearch editUrl: false pagefind: false -banner: - content: | - You are viewing the frozen v4.42.4 docs. Use Canary docs for the current development version. - --- import { Image } from 'astro:assets'; diff --git a/apps/web/src/content/docs/docs/v4.42.4/guides/benchmark-provenance.mdx b/apps/web/src/content/docs/docs/v4.42.4/guides/benchmark-provenance.mdx index 5bc5af444..0b986c2e1 100644 --- a/apps/web/src/content/docs/docs/v4.42.4/guides/benchmark-provenance.mdx +++ b/apps/web/src/content/docs/docs/v4.42.4/guides/benchmark-provenance.mdx @@ -6,10 +6,6 @@ sidebar: slug: docs/v4.42.4/guides/benchmark-provenance editUrl: false pagefind: false -banner: - content: | - You are viewing the frozen v4.42.4 docs. Use Canary docs for the current development version. - --- Benchmark suites usually need more than a prompt and a score. They carry source diff --git a/apps/web/src/content/docs/docs/v4.42.4/guides/enterprise-governance.mdx b/apps/web/src/content/docs/docs/v4.42.4/guides/enterprise-governance.mdx index 35929bab5..6ddc0c236 100644 --- a/apps/web/src/content/docs/docs/v4.42.4/guides/enterprise-governance.mdx +++ b/apps/web/src/content/docs/docs/v4.42.4/guides/enterprise-governance.mdx @@ -6,10 +6,6 @@ sidebar: slug: docs/v4.42.4/guides/enterprise-governance editUrl: false pagefind: false -banner: - content: | - You are viewing the frozen v4.42.4 docs. Use Canary docs for the current development version. - --- This guide describes a lightweight convention for keeping a documented diff --git a/apps/web/src/content/docs/docs/v4.42.4/guides/eval-authoring.mdx b/apps/web/src/content/docs/docs/v4.42.4/guides/eval-authoring.mdx index e1f57754c..5d2405ef7 100644 --- a/apps/web/src/content/docs/docs/v4.42.4/guides/eval-authoring.mdx +++ b/apps/web/src/content/docs/docs/v4.42.4/guides/eval-authoring.mdx @@ -6,10 +6,6 @@ sidebar: slug: docs/v4.42.4/guides/eval-authoring editUrl: false pagefind: false -banner: - content: | - You are viewing the frozen v4.42.4 docs. Use Canary docs for the current development version. - --- ## Workspace Setup: Skill Discovery Paths diff --git a/apps/web/src/content/docs/docs/v4.42.4/guides/evaluation-types.mdx b/apps/web/src/content/docs/docs/v4.42.4/guides/evaluation-types.mdx index 66e5fe209..4a107a917 100644 --- a/apps/web/src/content/docs/docs/v4.42.4/guides/evaluation-types.mdx +++ b/apps/web/src/content/docs/docs/v4.42.4/guides/evaluation-types.mdx @@ -6,10 +6,6 @@ sidebar: slug: docs/v4.42.4/guides/evaluation-types editUrl: false pagefind: false -banner: - content: | - You are viewing the frozen v4.42.4 docs. Use Canary docs for the current development version. - --- Agent evaluation has two fundamentally different concerns: **execution quality** and **trigger quality**. They require different tooling, different methodologies, and different optimization surfaces. Conflating them leads to eval configs that are noisy, hard to maintain, and unreliable. diff --git a/apps/web/src/content/docs/docs/v4.42.4/guides/human-review.mdx b/apps/web/src/content/docs/docs/v4.42.4/guides/human-review.mdx index 1a58af4d4..9cb7b3f32 100644 --- a/apps/web/src/content/docs/docs/v4.42.4/guides/human-review.mdx +++ b/apps/web/src/content/docs/docs/v4.42.4/guides/human-review.mdx @@ -6,10 +6,6 @@ sidebar: slug: docs/v4.42.4/guides/human-review editUrl: false pagefind: false -banner: - content: | - You are viewing the frozen v4.42.4 docs. Use Canary docs for the current development version. - --- Human review sits between automated scoring and the next iteration. Automated graders catch regressions and enforce thresholds, but a human reviewer spots score-behavior mismatches, qualitative regressions, and cases where a grader is too strict or too lenient. diff --git a/apps/web/src/content/docs/docs/v4.42.4/guides/skill-improvement-workflow.mdx b/apps/web/src/content/docs/docs/v4.42.4/guides/skill-improvement-workflow.mdx index 331eb3ac4..ec96c9ac9 100644 --- a/apps/web/src/content/docs/docs/v4.42.4/guides/skill-improvement-workflow.mdx +++ b/apps/web/src/content/docs/docs/v4.42.4/guides/skill-improvement-workflow.mdx @@ -6,10 +6,6 @@ sidebar: slug: docs/v4.42.4/guides/skill-improvement-workflow editUrl: false pagefind: false -banner: - content: | - You are viewing the frozen v4.42.4 docs. Use Canary docs for the current development version. - --- ## Introduction diff --git a/apps/web/src/content/docs/docs/v4.42.4/guides/workspace-architecture.mdx b/apps/web/src/content/docs/docs/v4.42.4/guides/workspace-architecture.mdx index 857f4e6c5..41c6f068b 100644 --- a/apps/web/src/content/docs/docs/v4.42.4/guides/workspace-architecture.mdx +++ b/apps/web/src/content/docs/docs/v4.42.4/guides/workspace-architecture.mdx @@ -6,10 +6,6 @@ sidebar: slug: docs/v4.42.4/guides/workspace-architecture editUrl: false pagefind: false -banner: - content: | - You are viewing the frozen v4.42.4 docs. Use Canary docs for the current development version. - --- AgentV workspaces are the shared substrate an eval runs against: templates, diff --git a/apps/web/src/content/docs/docs/v4.42.4/guides/workspace-pool.mdx b/apps/web/src/content/docs/docs/v4.42.4/guides/workspace-pool.mdx index 31f3492c8..30e87cc2f 100644 --- a/apps/web/src/content/docs/docs/v4.42.4/guides/workspace-pool.mdx +++ b/apps/web/src/content/docs/docs/v4.42.4/guides/workspace-pool.mdx @@ -6,10 +6,6 @@ sidebar: slug: docs/v4.42.4/guides/workspace-pool editUrl: false pagefind: false -banner: - content: | - You are viewing the frozen v4.42.4 docs. Use Canary docs for the current development version. - --- Workspace pooling keeps materialized workspaces on disk between eval runs. Instead of cloning repos and checking out files every time, pooled workspaces reset in-place — typically reducing setup from minutes to seconds for large repositories. diff --git a/apps/web/src/content/docs/docs/v4.42.4/index.mdx b/apps/web/src/content/docs/docs/v4.42.4/index.mdx index 863dfa8dc..5dc5c7eec 100644 --- a/apps/web/src/content/docs/docs/v4.42.4/index.mdx +++ b/apps/web/src/content/docs/docs/v4.42.4/index.mdx @@ -6,10 +6,6 @@ sidebar: slug: docs/v4.42.4 editUrl: false pagefind: false -banner: - content: | - You are viewing the frozen v4.42.4 docs. Use Canary docs for the current development version. - --- AgentV is a CLI-first AI agent evaluation framework. It evaluates your agents locally with multi-objective scoring (correctness, latency, cost, safety) from YAML specifications. Deterministic code graders + customizable LLM graders, all version-controlled in Git. diff --git a/apps/web/src/content/docs/docs/v4.42.4/integrations/agent-skills-evals.mdx b/apps/web/src/content/docs/docs/v4.42.4/integrations/agent-skills-evals.mdx index 6ebec53cf..fa89874d3 100644 --- a/apps/web/src/content/docs/docs/v4.42.4/integrations/agent-skills-evals.mdx +++ b/apps/web/src/content/docs/docs/v4.42.4/integrations/agent-skills-evals.mdx @@ -6,10 +6,6 @@ sidebar: slug: docs/v4.42.4/integrations/agent-skills-evals editUrl: false pagefind: false -banner: - content: | - You are viewing the frozen v4.42.4 docs. Use Canary docs for the current development version. - --- ## Overview diff --git a/apps/web/src/content/docs/docs/v4.42.4/integrations/autoevals-integration.mdx b/apps/web/src/content/docs/docs/v4.42.4/integrations/autoevals-integration.mdx index 4a0aba7ad..368c3754d 100644 --- a/apps/web/src/content/docs/docs/v4.42.4/integrations/autoevals-integration.mdx +++ b/apps/web/src/content/docs/docs/v4.42.4/integrations/autoevals-integration.mdx @@ -6,10 +6,6 @@ sidebar: slug: docs/v4.42.4/integrations/autoevals-integration editUrl: false pagefind: false -banner: - content: | - You are viewing the frozen v4.42.4 docs. Use Canary docs for the current development version. - --- ## Overview diff --git a/apps/web/src/content/docs/docs/v4.42.4/integrations/langfuse.mdx b/apps/web/src/content/docs/docs/v4.42.4/integrations/langfuse.mdx index e1163c27d..7275bb014 100644 --- a/apps/web/src/content/docs/docs/v4.42.4/integrations/langfuse.mdx +++ b/apps/web/src/content/docs/docs/v4.42.4/integrations/langfuse.mdx @@ -6,10 +6,6 @@ sidebar: slug: docs/v4.42.4/integrations/langfuse editUrl: false pagefind: false -banner: - content: | - You are viewing the frozen v4.42.4 docs. Use Canary docs for the current development version. - --- AgentV streams evaluation traces to [Langfuse](https://langfuse.com) using standard OTLP/HTTP — no Langfuse SDK required. The `langfuse` backend resolver handles endpoint construction and authentication automatically. diff --git a/apps/web/src/content/docs/docs/v4.42.4/integrations/phoenix.mdx b/apps/web/src/content/docs/docs/v4.42.4/integrations/phoenix.mdx index 200816c6c..e24ab9967 100644 --- a/apps/web/src/content/docs/docs/v4.42.4/integrations/phoenix.mdx +++ b/apps/web/src/content/docs/docs/v4.42.4/integrations/phoenix.mdx @@ -6,10 +6,6 @@ sidebar: slug: docs/v4.42.4/integrations/phoenix editUrl: false pagefind: false -banner: - content: | - You are viewing the frozen v4.42.4 docs. Use Canary docs for the current development version. - --- The Phoenix adapter converts AgentV eval YAML suites into Phoenix dataset and diff --git a/apps/web/src/content/docs/docs/v4.42.4/reference/comparison.mdx b/apps/web/src/content/docs/docs/v4.42.4/reference/comparison.mdx index 8399da87c..a376cea82 100644 --- a/apps/web/src/content/docs/docs/v4.42.4/reference/comparison.mdx +++ b/apps/web/src/content/docs/docs/v4.42.4/reference/comparison.mdx @@ -4,10 +4,6 @@ description: How AgentV fits into the AI agent lifecycle alongside complementary slug: docs/v4.42.4/reference/comparison editUrl: false pagefind: false -banner: - content: | - You are viewing the frozen v4.42.4 docs. Use Canary docs for the current development version. - --- AgentV is the **evaluation layer** in the AI agent lifecycle. It works alongside runtime governance and observability tools — each handles a different concern with zero overlap. diff --git a/apps/web/src/content/docs/docs/v4.42.4/targets/cli-provider.mdx b/apps/web/src/content/docs/docs/v4.42.4/targets/cli-provider.mdx index 398b16760..d0c5345a9 100644 --- a/apps/web/src/content/docs/docs/v4.42.4/targets/cli-provider.mdx +++ b/apps/web/src/content/docs/docs/v4.42.4/targets/cli-provider.mdx @@ -6,10 +6,6 @@ sidebar: slug: docs/v4.42.4/targets/cli-provider editUrl: false pagefind: false -banner: - content: | - You are viewing the frozen v4.42.4 docs. Use Canary docs for the current development version. - --- The `cli` provider runs an arbitrary shell command per test case and captures its output as the target's response. It's the escape hatch that lets you evaluate *anything* that exposes a command-line entry point — your own agent, a third-party CLI, a stub that prints a fixed answer, a script that calls an in-house microservice, etc. diff --git a/apps/web/src/content/docs/docs/v4.42.4/targets/coding-agents.mdx b/apps/web/src/content/docs/docs/v4.42.4/targets/coding-agents.mdx index 757971657..f4f2e59f4 100644 --- a/apps/web/src/content/docs/docs/v4.42.4/targets/coding-agents.mdx +++ b/apps/web/src/content/docs/docs/v4.42.4/targets/coding-agents.mdx @@ -6,10 +6,6 @@ sidebar: slug: docs/v4.42.4/targets/coding-agents editUrl: false pagefind: false -banner: - content: | - You are viewing the frozen v4.42.4 docs. Use Canary docs for the current development version. - --- Coding agent targets evaluate AI coding assistants and CLI-based agents. These targets require a `grader_target` (also accepts `judge_target` for backward compatibility) to run LLM-based graders. diff --git a/apps/web/src/content/docs/docs/v4.42.4/targets/configuration.mdx b/apps/web/src/content/docs/docs/v4.42.4/targets/configuration.mdx index 2c4123f11..ba2fb4b1f 100644 --- a/apps/web/src/content/docs/docs/v4.42.4/targets/configuration.mdx +++ b/apps/web/src/content/docs/docs/v4.42.4/targets/configuration.mdx @@ -6,10 +6,6 @@ sidebar: slug: docs/v4.42.4/targets/configuration editUrl: false pagefind: false -banner: - content: | - You are viewing the frozen v4.42.4 docs. Use Canary docs for the current development version. - --- Targets define which agent or LLM provider to evaluate. They are configured in `.agentv/targets.yaml` to decouple eval files from provider details. diff --git a/apps/web/src/content/docs/docs/v4.42.4/targets/custom-providers.mdx b/apps/web/src/content/docs/docs/v4.42.4/targets/custom-providers.mdx index 0b5069310..6c5c2394e 100644 --- a/apps/web/src/content/docs/docs/v4.42.4/targets/custom-providers.mdx +++ b/apps/web/src/content/docs/docs/v4.42.4/targets/custom-providers.mdx @@ -6,10 +6,6 @@ sidebar: slug: docs/v4.42.4/targets/custom-providers editUrl: false pagefind: false -banner: - content: | - You are viewing the frozen v4.42.4 docs. Use Canary docs for the current development version. - --- Custom providers let you implement evaluation targets in TypeScript instead of shelling out to a CLI command. This is useful when you want to call an HTTP API, use an SDK, or implement custom logic that goes beyond what the CLI provider supports. diff --git a/apps/web/src/content/docs/docs/v4.42.4/targets/llm-providers.mdx b/apps/web/src/content/docs/docs/v4.42.4/targets/llm-providers.mdx index 5cb5bd0ec..db90b3c08 100644 --- a/apps/web/src/content/docs/docs/v4.42.4/targets/llm-providers.mdx +++ b/apps/web/src/content/docs/docs/v4.42.4/targets/llm-providers.mdx @@ -6,10 +6,6 @@ sidebar: slug: docs/v4.42.4/targets/llm-providers editUrl: false pagefind: false -banner: - content: | - You are viewing the frozen v4.42.4 docs. Use Canary docs for the current development version. - --- LLM provider targets call language model APIs directly. These are used both as evaluation targets and as grader targets for scoring. diff --git a/apps/web/src/content/docs/docs/v4.42.4/targets/retry.mdx b/apps/web/src/content/docs/docs/v4.42.4/targets/retry.mdx index 20ebe9093..1963b9a43 100644 --- a/apps/web/src/content/docs/docs/v4.42.4/targets/retry.mdx +++ b/apps/web/src/content/docs/docs/v4.42.4/targets/retry.mdx @@ -6,10 +6,6 @@ sidebar: slug: docs/v4.42.4/targets/retry editUrl: false pagefind: false -banner: - content: | - You are viewing the frozen v4.42.4 docs. Use Canary docs for the current development version. - --- Configure automatic retry with exponential backoff for transient failures. diff --git a/apps/web/src/content/docs/docs/v4.42.4/tools/compare.mdx b/apps/web/src/content/docs/docs/v4.42.4/tools/compare.mdx index baceac8f0..14d735493 100644 --- a/apps/web/src/content/docs/docs/v4.42.4/tools/compare.mdx +++ b/apps/web/src/content/docs/docs/v4.42.4/tools/compare.mdx @@ -6,10 +6,6 @@ sidebar: slug: docs/v4.42.4/tools/compare editUrl: false pagefind: false -banner: - content: | - You are viewing the frozen v4.42.4 docs. Use Canary docs for the current development version. - --- The `compare` command computes deltas between two evaluation runs for A/B testing. diff --git a/apps/web/src/content/docs/docs/v4.42.4/tools/convert.mdx b/apps/web/src/content/docs/docs/v4.42.4/tools/convert.mdx index a43c51e61..81d80b116 100644 --- a/apps/web/src/content/docs/docs/v4.42.4/tools/convert.mdx +++ b/apps/web/src/content/docs/docs/v4.42.4/tools/convert.mdx @@ -6,10 +6,6 @@ sidebar: slug: docs/v4.42.4/tools/convert editUrl: false pagefind: false -banner: - content: | - You are viewing the frozen v4.42.4 docs. Use Canary docs for the current development version. - --- The `convert` command converts evaluation files between formats: YAML ↔ JSONL, and Agent Skills `evals.json` → AgentV EVAL YAML. diff --git a/apps/web/src/content/docs/docs/v4.42.4/tools/dashboard.mdx b/apps/web/src/content/docs/docs/v4.42.4/tools/dashboard.mdx index a1cbb1341..02554447a 100644 --- a/apps/web/src/content/docs/docs/v4.42.4/tools/dashboard.mdx +++ b/apps/web/src/content/docs/docs/v4.42.4/tools/dashboard.mdx @@ -6,10 +6,6 @@ sidebar: slug: docs/v4.42.4/tools/dashboard editUrl: false pagefind: false -banner: - content: | - You are viewing the frozen v4.42.4 docs. Use Canary docs for the current development version. - --- import { Image } from 'astro:assets'; diff --git a/apps/web/src/content/docs/docs/v4.42.4/tools/import.mdx b/apps/web/src/content/docs/docs/v4.42.4/tools/import.mdx index 5d214bc6b..fde465dbc 100644 --- a/apps/web/src/content/docs/docs/v4.42.4/tools/import.mdx +++ b/apps/web/src/content/docs/docs/v4.42.4/tools/import.mdx @@ -6,10 +6,6 @@ sidebar: slug: docs/v4.42.4/tools/import editUrl: false pagefind: false -banner: - content: | - You are viewing the frozen v4.42.4 docs. Use Canary docs for the current development version. - --- The `import` command converts agent session transcripts and external eval configs into AgentV formats. Transcript imports let you grade past runs offline without re-running the agent. Config imports help migrate existing suites into AgentV YAML. diff --git a/apps/web/src/content/docs/docs/v4.42.4/tools/inspect.mdx b/apps/web/src/content/docs/docs/v4.42.4/tools/inspect.mdx index 571811740..59e3a5cfd 100644 --- a/apps/web/src/content/docs/docs/v4.42.4/tools/inspect.mdx +++ b/apps/web/src/content/docs/docs/v4.42.4/tools/inspect.mdx @@ -6,10 +6,6 @@ sidebar: slug: docs/v4.42.4/tools/inspect editUrl: false pagefind: false -banner: - content: | - You are viewing the frozen v4.42.4 docs. Use Canary docs for the current development version. - --- The `inspect` command provides headless trace inspection and analysis — no server or dashboard needed. diff --git a/apps/web/src/content/docs/docs/v4.42.4/tools/prepare.mdx b/apps/web/src/content/docs/docs/v4.42.4/tools/prepare.mdx index 07728c92a..6856b521b 100644 --- a/apps/web/src/content/docs/docs/v4.42.4/tools/prepare.mdx +++ b/apps/web/src/content/docs/docs/v4.42.4/tools/prepare.mdx @@ -6,10 +6,6 @@ sidebar: slug: docs/v4.42.4/tools/prepare editUrl: false pagefind: false -banner: - content: | - You are viewing the frozen v4.42.4 docs. Use Canary docs for the current development version. - --- `agentv prepare` materializes one eval case without launching the target provider. Use it when a human, a separate agent process, or another harness should attempt the task in the same workspace state AgentV would have provided immediately before target execution. diff --git a/apps/web/src/content/docs/docs/v4.42.4/tools/results.mdx b/apps/web/src/content/docs/docs/v4.42.4/tools/results.mdx index 4366c83f1..5daf29f01 100644 --- a/apps/web/src/content/docs/docs/v4.42.4/tools/results.mdx +++ b/apps/web/src/content/docs/docs/v4.42.4/tools/results.mdx @@ -6,10 +6,6 @@ sidebar: slug: docs/v4.42.4/tools/results editUrl: false pagefind: false -banner: - content: | - You are viewing the frozen v4.42.4 docs. Use Canary docs for the current development version. - --- import { Image } from 'astro:assets'; diff --git a/apps/web/src/content/docs/docs/v4.42.4/tools/trend.mdx b/apps/web/src/content/docs/docs/v4.42.4/tools/trend.mdx index c2d5655fc..7e333bab2 100644 --- a/apps/web/src/content/docs/docs/v4.42.4/tools/trend.mdx +++ b/apps/web/src/content/docs/docs/v4.42.4/tools/trend.mdx @@ -6,10 +6,6 @@ sidebar: slug: docs/v4.42.4/tools/trend editUrl: false pagefind: false -banner: - content: | - You are viewing the frozen v4.42.4 docs. Use Canary docs for the current development version. - --- The `trend` command analyzes score movement across multiple historical run manifests and reports whether quality is improving, degrading, or stable over time. diff --git a/apps/web/src/content/docs/docs/v4.42.4/tools/validate.mdx b/apps/web/src/content/docs/docs/v4.42.4/tools/validate.mdx index b52239034..61dab7ab7 100644 --- a/apps/web/src/content/docs/docs/v4.42.4/tools/validate.mdx +++ b/apps/web/src/content/docs/docs/v4.42.4/tools/validate.mdx @@ -6,10 +6,6 @@ sidebar: slug: docs/v4.42.4/tools/validate editUrl: false pagefind: false -banner: - content: | - You are viewing the frozen v4.42.4 docs. Use Canary docs for the current development version. - --- The `validate` command checks evaluation files for schema errors without running them. diff --git a/apps/web/src/content/docs/docs/v4.42.4/tools/wip-checkpoints.mdx b/apps/web/src/content/docs/docs/v4.42.4/tools/wip-checkpoints.mdx index 14ea0641e..76fdff175 100644 --- a/apps/web/src/content/docs/docs/v4.42.4/tools/wip-checkpoints.mdx +++ b/apps/web/src/content/docs/docs/v4.42.4/tools/wip-checkpoints.mdx @@ -6,10 +6,6 @@ sidebar: slug: docs/v4.42.4/tools/wip-checkpoints editUrl: false pagefind: false -banner: - content: | - You are viewing the frozen v4.42.4 docs. Use Canary docs for the current development version. - --- WIP checkpoints are best-effort snapshots of an eval run while it is still executing. They are designed for long-running evals in CI, pods, or remote agents where losing the process would otherwise lose the completed test rows that were already written locally. diff --git a/docs/adr/0011-result-output-artifact-contract.md b/docs/adr/0011-result-output-artifact-contract.md index 69685d856..7fbde0e81 100644 --- a/docs/adr/0011-result-output-artifact-contract.md +++ b/docs/adr/0011-result-output-artifact-contract.md @@ -232,4 +232,4 @@ files as the canonical contract. - Roadmap: [ROADMAP.md](../../ROADMAP.md) - Product boundary: [.agents/product-boundary.md](../../.agents/product-boundary.md) - Technical conventions: [.agents/conventions.md](../../.agents/conventions.md) -- Public docs: [Result Artifact Contract](../../apps/web/src/content/docs/docs/reference/result-artifacts.mdx) +- Public docs: [Result Artifact Contract](../../apps/web/src/content/docs/docs/next/reference/result-artifacts.mdx) diff --git a/docs/solutions/best-practices/name-portable-config-endpoints-by-user-intent.md b/docs/solutions/best-practices/name-portable-config-endpoints-by-user-intent.md index 7efb9b354..aefc2567c 100644 --- a/docs/solutions/best-practices/name-portable-config-endpoints-by-user-intent.md +++ b/docs/solutions/best-practices/name-portable-config-endpoints-by-user-intent.md @@ -80,4 +80,4 @@ Do not set `results.repo.remote` to a local alias such as `origin`. If AgentV is - `packages/core/src/evaluation/loaders/config-loader.ts` parses nested results repository config and normalizes the endpoint URL into internal runtime fields. - `packages/core/src/projects.ts` serializes project config and keeps `results.repo.remote` as the portable Git endpoint. -- `apps/web/src/content/docs/docs/tools/dashboard.mdx` documents the dashboard remote-results setup path. +- `apps/web/src/content/docs/docs/next/tools/dashboard.mdx` documents the dashboard remote-results setup path. diff --git a/evals/agentv-dev/skills/README.md b/evals/agentv-dev/skills/README.md index d0b9fac75..0abf2691e 100644 --- a/evals/agentv-dev/skills/README.md +++ b/evals/agentv-dev/skills/README.md @@ -14,7 +14,7 @@ live repo content directly: catalog and command surface - `skills-data/*/SKILL.md` for the actual bundled skill bodies shipped by the CLI -- `apps/web/src/content/docs/docs/getting-started/installation.mdx` for the +- `apps/web/src/content/docs/docs/next/getting-started/installation.mdx` for the live CLI usage examples That keeps the suite aligned with the current repo instead of stale snapshots. diff --git a/examples/features/composite/README.md b/examples/features/composite/README.md index 8991c07f5..dba6cdf50 100644 --- a/examples/features/composite/README.md +++ b/examples/features/composite/README.md @@ -22,4 +22,4 @@ bun agentv validate examples/features/composite/evals/dataset.eval.yaml - `evals/dataset.eval.yaml` - Test cases with composite grader patterns - `scripts/or-aggregator.js` - Strict OR aggregator script used by `composite` examples -- `apps/web/src/content/docs/docs/graders/composite.mdx` - Detailed AND/OR and strict-OR composition guidance +- `apps/web/src/content/docs/docs/next/graders/composite.mdx` - Detailed AND/OR and strict-OR composition guidance diff --git a/packages/sdk/README.md b/packages/sdk/README.md index 43c6ed4fa..fe77b2488 100644 --- a/packages/sdk/README.md +++ b/packages/sdk/README.md @@ -252,7 +252,7 @@ For complete documentation including: - Execution metrics usage - Best practices -See the docs site guides under `apps/web/src/content/docs/docs/graders/` or run `agentv skills get agentv-eval-writer`. +See the docs site guides under `apps/web/src/content/docs/docs/next/graders/` or run `agentv skills get agentv-eval-writer`. ## Repository diff --git a/plugins/agentv-self/skills/image-compress-and-docs/SKILL.md b/plugins/agentv-self/skills/image-compress-and-docs/SKILL.md index 29dd7ae7a..e70fe79ff 100644 --- a/plugins/agentv-self/skills/image-compress-and-docs/SKILL.md +++ b/plugins/agentv-self/skills/image-compress-and-docs/SKILL.md @@ -91,7 +91,7 @@ ls -lh "$ASSETS_DIR" ## Step 3 — Update Astro Docs -Docs live at: `apps/web/src/content/docs/docs/` +Docs live at: `apps/web/src/content/docs/docs/next/` Assets live at: `apps/web/src/assets/screenshots/` **Import pattern** (Astro `` for automatic optimization): diff --git a/scripts/snapshot-docs-version.mjs b/scripts/snapshot-docs-version.mjs index ed4e39b08..3d05638b3 100644 --- a/scripts/snapshot-docs-version.mjs +++ b/scripts/snapshot-docs-version.mjs @@ -6,11 +6,14 @@ import path from 'node:path'; import { fileURLToPath } from 'node:url'; import { promisify } from 'node:util'; +const VERSION_SLUG_PATTERN = /^v\d+\.\d+\.\d+$/; +const LIVE_SUBDIR = 'next'; + const version = process.argv[2]; const sourceRef = process.argv[3] ?? version; const execFile = promisify(execFileWithCallback); -if (!version || !/^v\d+\.\d+\.\d+$/.test(version)) { +if (!version || !VERSION_SLUG_PATTERN.test(version)) { console.error('Usage: node scripts/snapshot-docs-version.mjs vX.Y.Z [source-ref]'); process.exit(1); } @@ -20,7 +23,6 @@ const docsRoot = path.join(repoRoot, 'apps/web/src/content/docs/docs'); const snapshotRoot = path.join(docsRoot, version); const routeManifestPath = path.join(repoRoot, `apps/web/src/data/docs-${version}-routes.json`); const docsTreePath = 'apps/web/src/content/docs/docs'; -const ignoredTopLevel = new Set([version]); const tempRoot = await mkdtemp(path.join(tmpdir(), 'agentv-docs-snapshot-')); const archivePath = path.join(tempRoot, 'docs.tar'); @@ -31,8 +33,12 @@ await rm(snapshotRoot, { recursive: true, force: true }); await mkdir(snapshotRoot, { recursive: true }); await mkdir(sourceRoot, { recursive: true }); +const liveRoot = path.join(extractedDocsRoot, LIVE_SUBDIR); + try { - await execFile('git', ['cat-file', '-e', `${sourceRef}:${docsTreePath}`], { cwd: repoRoot }); + await execFile('git', ['cat-file', '-e', `${sourceRef}:${docsTreePath}/${LIVE_SUBDIR}`], { + cwd: repoRoot, + }); const { stdout } = await execFile('git', ['archive', '--format=tar', sourceRef, docsTreePath], { cwd: repoRoot, encoding: 'buffer', @@ -42,14 +48,16 @@ try { await execFile('tar', ['-xf', archivePath, '-C', sourceRoot]); } catch (error) { await rm(tempRoot, { recursive: true, force: true }); - throw error; + throw new Error( + `'${sourceRef}' has no live docs at ${docsTreePath}/${LIVE_SUBDIR}. Snapshots are cut from the live 'next' tree.`, + { cause: error }, + ); } -const docsEntries = await readdir(extractedDocsRoot, { withFileTypes: true }); -for (const entry of docsEntries) { - if (ignoredTopLevel.has(entry.name)) continue; - if (/^v\d+\.\d+\.\d+$/.test(entry.name)) continue; - await cp(path.join(extractedDocsRoot, entry.name), path.join(snapshotRoot, entry.name), { +const liveEntries = await readdir(liveRoot, { withFileTypes: true }); +for (const entry of liveEntries) { + if (VERSION_SLUG_PATTERN.test(entry.name)) continue; + await cp(path.join(liveRoot, entry.name), path.join(snapshotRoot, entry.name), { recursive: true, }); } @@ -119,20 +127,12 @@ function rewriteSnapshotContent(source, version, slug, archiveRouteSet) { .replace(/href='\/docs\/([^'#]*)(#[^']+)?'/g, (match, targetPath, hash = '') => { const archiveHref = toArchiveHref(version, targetPath, hash); return archiveRouteSet.has(stripHash(archiveHref)) ? `href='${archiveHref}'` : match; - }) - .replaceAll("from '../../../../assets/", "from '../../../../../assets/") - .replaceAll('from "../../../../assets/', 'from "../../../../../assets/') - .replaceAll('](../../../../examples/', '](../../../../../examples/'); + }); return upsertFrontmatter(rewritten, { slug: [`slug: ${slug}`], editUrl: ['editUrl: false'], pagefind: ['pagefind: false'], - banner: [ - 'banner:', - ' content: |', - ` You are viewing the frozen ${version} docs. Use Canary docs for the current development version.`, - ], }); }