From bcc4251d7cc4a651a49a95ed2360183cee3196c0 Mon Sep 17 00:00:00 2001 From: Shibu Date: Thu, 30 Apr 2026 22:50:52 +0530 Subject: [PATCH 1/7] =?UTF-8?q?fix:=20add=20redirects=20for=20/docs/prism/?= =?UTF-8?q?*=20=E2=86=92=20/docs/command-center/*?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Prism AI Gateway was renamed to Command Center (commit 6c6f22c) but no URL redirects were added, causing 16 pages to 404. Co-Authored-By: Claude Sonnet 4.6 --- src/lib/redirects.ts | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/lib/redirects.ts b/src/lib/redirects.ts index 5de99cde..46a9d940 100644 --- a/src/lib/redirects.ts +++ b/src/lib/redirects.ts @@ -1,6 +1,22 @@ // Auto-generated redirect map: old Mintlify URLs → new docs URLs // 275 redirects from futureagi.mintlify.app export const redirectMap: Record = { + '/docs/prism': '/docs/command-center', + '/docs/prism/concepts/api-reference': '/docs/command-center/concepts/api-reference', + '/docs/prism/concepts/configuration': '/docs/command-center/concepts/configuration', + '/docs/prism/concepts/core': '/docs/command-center/concepts/core', + '/docs/prism/concepts/platform-integration': '/docs/command-center/concepts/platform-integration', + '/docs/prism/deployment/self-hosted': '/docs/command-center/deployment/self-hosted', + '/docs/prism/features/caching': '/docs/command-center/features/caching', + '/docs/prism/features/cost-tracking': '/docs/command-center/features/cost-tracking', + '/docs/prism/features/guardrails': '/docs/command-center/features/guardrails', + '/docs/prism/features/mcp-a2a': '/docs/command-center/features/mcp-a2a', + '/docs/prism/features/providers': '/docs/command-center/features/providers', + '/docs/prism/features/rate-limiting': '/docs/command-center/features/rate-limiting', + '/docs/prism/features/routing': '/docs/command-center/features/routing', + '/docs/prism/features/shadow-experiments': '/docs/command-center/features/shadow-experiments', + '/docs/prism/features/streaming': '/docs/command-center/features/streaming', + '/docs/prism/quickstart': '/docs/command-center/quickstart', '/admin-settings': '/docs/admin-settings', '/api-reference/agent-definitions/create-agent-definition': '/docs/api/agent-definitions/createagentdefinition', '/api-reference/agent-versions/create-new-version-of-agent': '/docs/api/agent-versions/createagentversion', From 740341ff09852a8232dbb593ef0dac820feced25 Mon Sep 17 00:00:00 2001 From: Shibu Date: Fri, 1 May 2026 00:26:16 +0530 Subject: [PATCH 2/7] =?UTF-8?q?fix:=20resolve=20all=20404s=20=E2=80=94=20a?= =?UTF-8?q?dd=2071=20redirects,=20fix=2047=20dead=20redirect=20targets,=20?= =?UTF-8?q?update=2027=20MDX=20files?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Root causes: - Suhani Nagpal (8c7b7f8, Mar 25): deleted 116 pages in "orphan links cleanup" without adding redirects - hadarishav (6c6f22c, Apr 22): renamed /docs/prism/* → /docs/command-center/* without redirects Changes: - src/lib/redirects.ts: added 71 new redirect entries covering old prism, tracing/manual, observability, quickstart, prompt-workbench, and other deleted paths; fixed 47 existing redirect entries whose targets had themselves been deleted (chained 404s), correcting them to current valid pages - 27 MDX source files: fixed broken internal href links pointing to deleted/moved paths (evaluation/features/groups, tracing/manual/*, observe/voice/set-up, prompt-workbench, optimization/optimizers/overview, and others) Verified clean: - 0 broken nav links - 0 broken content links (313/313 unique internal hrefs resolve) - 0 dead redirect targets (all 306 redirects point to real pages) Co-Authored-By: Claude Sonnet 4.6 --- src/lib/redirects.ts | 118 +++++++++++------- src/pages/docs/admin-settings/api-keys.mdx | 2 +- .../docs/admin-settings/integrations.mdx | 2 +- .../docs/cookbook/decrease-hallucination.mdx | 2 +- .../quickstart/compare-optimizers.mdx | 2 +- .../quickstart/custom-eval-metrics.mdx | 2 +- .../quickstart/dataset-annotation.mdx | 2 +- .../cookbook/quickstart/manual-tracing.mdx | 4 +- .../quickstart/prompt-optimization.mdx | 4 +- src/pages/docs/dataset/features/create.mdx | 2 +- .../docs/dataset/features/experiments.mdx | 2 +- .../docs/evaluation/concepts/eval-types.mdx | 2 +- .../concepts/understanding-evaluation.mdx | 4 +- src/pages/docs/evaluation/features/cicd.mdx | 2 +- .../evaluation/features/custom-models.mdx | 2 +- src/pages/docs/evaluation/features/custom.mdx | 2 +- .../docs/evaluation/features/evaluate.mdx | 2 +- .../evaluation/features/futureagi-models.mdx | 2 +- src/pages/docs/evaluation/index.mdx | 2 +- src/pages/docs/integrations/index.mdx | 2 +- .../docs/observe/features/quickstart.mdx | 2 +- src/pages/docs/observe/features/session.mdx | 2 +- .../docs/prompt/features/linked-traces.mdx | 4 +- src/pages/docs/quickstart/prompts.mdx | 2 +- .../docs/quickstart/setup-observability.mdx | 6 +- src/pages/docs/sdk/annotation-queues.mdx | 2 +- src/pages/docs/sdk/tracing.mdx | 2 +- .../docs/simulation/features/voice-replay.mdx | 8 +- 28 files changed, 107 insertions(+), 83 deletions(-) diff --git a/src/lib/redirects.ts b/src/lib/redirects.ts index 46a9d940..100ced32 100644 --- a/src/lib/redirects.ts +++ b/src/lib/redirects.ts @@ -1,6 +1,30 @@ // Auto-generated redirect map: old Mintlify URLs → new docs URLs // 275 redirects from futureagi.mintlify.app export const redirectMap: Record = { + '/docs/observe/features/annotation-queue-using-sdk': '/docs/annotations/sdk/annotation-queue-using-sdk', + '/docs/observe/voice/set-up': '/docs/observe/features/voice', + '/docs/quickstart/installation': '/docs/installation', + '/docs/observability': '/docs/tracing/auto', + '/docs/tracing': '/docs/tracing/auto', + '/docs/tracing/auto-overview': '/docs/tracing/auto', + '/docs/evaluation/builtin/eval-context-retrieval': '/docs/evaluation/builtin', + '/docs/evaluation/features/groups': '/docs/evaluation', + '/docs/optimization/optimizers/overview': '/docs/optimization', + '/docs/dataset/add-annotations': '/docs/dataset/features/annotate', + '/docs/knowledge-base/concept': '/docs/knowledge-base/concepts/concept', + '/docs/prompt-workbench': '/docs/prompt', + '/docs/prompt-workbench/sdk': '/docs/prompt/features/sdk', + '/docs/tracing/manual/log-prompt-templates': '/docs/observe/features/manual-tracing/log-prompt-templates', + '/docs/tracing/manual/in-line-evals': '/docs/observe/features/manual-tracing/in-line-evals', + '/docs/simulation/set-up/scenarios': '/docs/simulation/concepts/scenarios', + '/docs/simulation/set-up/agent-definition': '/docs/simulation/concepts/agent-definition', + '/docs/tracing/concepts/components': '/docs/tracing/concepts', + '/docs/tracing/manual/add-attributes-metadata-tags': '/docs/observe/features/manual-tracing/add-attributes-metadata-tags', + '/docs/tracing/manual/add-events-exceptions-status': '/docs/observe/features/manual-tracing/add-events-exceptions-status', + '/docs/tracing/manual/advanced-tracing-examples': '/docs/observe/features/manual-tracing/advanced-tracing-examples', + '/docs/tracing/manual/langfuse-integration': '/docs/observe/features/manual-tracing/langfuse-integration', + '/docs/tracing/manual/set-session-user-id': '/docs/observe/features/manual-tracing/set-session-user-id', + '/docs/tracing/manual/set-up-tracing': '/docs/observe/features/manual-tracing/set-up-tracing', '/docs/prism': '/docs/command-center', '/docs/prism/concepts/api-reference': '/docs/command-center/concepts/api-reference', '/docs/prism/concepts/configuration': '/docs/command-center/concepts/configuration', @@ -34,7 +58,7 @@ export const redirectMap: Record = { '/cookbook/ai-evaluation/llm-judge': '/docs/cookbook', '/cookbook/ai-evaluation/local-metrics': '/docs/cookbook', '/cookbook/ai-evaluation/multimodal-judge': '/docs/cookbook', - '/cookbook/ai-evaluation/overview': '/docs/optimization/optimizers/overview', + '/cookbook/ai-evaluation/overview': '/docs/optimization', '/cookbook/ai-evaluation/rag-evaluation': '/docs/cookbook/quickstart/rag-evaluation', '/cookbook/ai-evaluation/streaming': '/docs/command-center/features/streaming', '/cookbook/cookbook1/AI-Evaluation-for-Meeting-Summarization': '/docs/cookbook/meeting-summarization', @@ -75,8 +99,8 @@ export const redirectMap: Record = { '/future-agi/get-started/evaluation/builtin-evals/chunk-utilization': '/docs/evaluation/builtin/chunk-utilization', '/future-agi/get-started/evaluation/builtin-evals/clinically-inappropriate-tone': '/docs/evaluation/builtin/clinically-inappropriate-tone', '/future-agi/get-started/evaluation/builtin-evals/completeness': '/docs/evaluation/builtin/completeness', - '/future-agi/get-started/evaluation/builtin-evals/content-moderation': '/docs/evaluation/builtin/content-moderation', - '/future-agi/get-started/evaluation/builtin-evals/content-safety-violation': '/docs/evaluation/builtin/content-safety-violation', + '/future-agi/get-started/evaluation/builtin-evals/content-moderation': '/docs/evaluation/builtin', + '/future-agi/get-started/evaluation/builtin-evals/content-safety-violation': '/docs/evaluation/builtin', '/future-agi/get-started/evaluation/builtin-evals/context-adherence': '/docs/evaluation/builtin/context-adherence', '/future-agi/get-started/evaluation/builtin-evals/context-relevance': '/docs/evaluation/builtin/context-relevance', '/future-agi/get-started/evaluation/builtin-evals/conversation-coherence': '/docs/evaluation/builtin/conversation-coherence', @@ -86,15 +110,15 @@ export const redirectMap: Record = { '/future-agi/get-started/evaluation/builtin-evals/detect-hallucination': '/docs/evaluation/builtin/detect-hallucination', '/future-agi/get-started/evaluation/builtin-evals/embedding-similarity': '/docs/evaluation/builtin/embedding-similarity', '/future-agi/get-started/evaluation/builtin-evals/eval-ranking': '/docs/evaluation/builtin/eval-ranking', - '/future-agi/get-started/evaluation/builtin-evals/factual-accuracy': '/docs/evaluation/builtin/factual-accuracy', + '/future-agi/get-started/evaluation/builtin-evals/factual-accuracy': '/docs/evaluation/builtin', '/future-agi/get-started/evaluation/builtin-evals/fuzzy-match': '/docs/evaluation/builtin/fuzzy-match', '/future-agi/get-started/evaluation/builtin-evals/groundedness': '/docs/evaluation/builtin/groundedness', '/future-agi/get-started/evaluation/builtin-evals/hit-rate': '/docs/evaluation/builtin/hit-rate', '/future-agi/get-started/evaluation/builtin-evals/instruction-adherence': '/docs/evaluation/builtin/instruction-adherence', - '/future-agi/get-started/evaluation/builtin-evals/is-compliant': '/docs/evaluation/builtin/is-compliant', + '/future-agi/get-started/evaluation/builtin-evals/is-compliant': '/docs/evaluation/builtin', '/future-agi/get-started/evaluation/builtin-evals/is-concise': '/docs/evaluation/builtin/is-concise', '/future-agi/get-started/evaluation/builtin-evals/is-email': '/docs/evaluation/builtin/is-email', - '/future-agi/get-started/evaluation/builtin-evals/is-factually-consistent': '/docs/evaluation/builtin/is-factually-consistent', + '/future-agi/get-started/evaluation/builtin-evals/is-factually-consistent': '/docs/evaluation/builtin', '/future-agi/get-started/evaluation/builtin-evals/is-good-summary': '/docs/evaluation/builtin/is-good-summary', '/future-agi/get-started/evaluation/builtin-evals/is-harmful-advice': '/docs/evaluation/builtin/is-harmful-advice', '/future-agi/get-started/evaluation/builtin-evals/is-helpful': '/docs/evaluation/builtin/is-helpful', @@ -102,7 +126,7 @@ export const redirectMap: Record = { '/future-agi/get-started/evaluation/builtin-evals/is-json': '/docs/evaluation/builtin/is-json', '/future-agi/get-started/evaluation/builtin-evals/is-polite': '/docs/evaluation/builtin/is-polite', '/future-agi/get-started/evaluation/builtin-evals/lavenshtein-similarity': '/docs/evaluation/builtin/lavenshtein-similarity', - '/future-agi/get-started/evaluation/builtin-evals/length-evals': '/docs/evaluation/builtin/length-evals', + '/future-agi/get-started/evaluation/builtin-evals/length-evals': '/docs/evaluation/builtin', '/future-agi/get-started/evaluation/builtin-evals/llm-function-calling': '/docs/evaluation/builtin/llm-function-calling', '/future-agi/get-started/evaluation/builtin-evals/mrr': '/docs/evaluation/builtin/mrr', '/future-agi/get-started/evaluation/builtin-evals/ndcg-at-k': '/docs/evaluation/builtin/ndcg-at-k', @@ -118,7 +142,7 @@ export const redirectMap: Record = { '/future-agi/get-started/evaluation/builtin-evals/precision-at-k': '/docs/evaluation/builtin/precision-at-k', '/future-agi/get-started/evaluation/builtin-evals/prompt-injection': '/docs/evaluation/builtin/prompt-injection', '/future-agi/get-started/evaluation/builtin-evals/recall-at-k': '/docs/evaluation/builtin/recall-at-k', - '/future-agi/get-started/evaluation/builtin-evals/recall-score': '/docs/evaluation/builtin/recall-score', + '/future-agi/get-started/evaluation/builtin-evals/recall-score': '/docs/evaluation/builtin', '/future-agi/get-started/evaluation/builtin-evals/rouge': '/docs/evaluation/builtin/rouge', '/future-agi/get-started/evaluation/builtin-evals/semantic-list-contains': '/docs/evaluation/builtin/semantic-list-contains', '/future-agi/get-started/evaluation/builtin-evals/sexist': '/docs/evaluation/builtin/sexist', @@ -129,44 +153,44 @@ export const redirectMap: Record = { '/future-agi/get-started/evaluation/builtin-evals/tone': '/docs/evaluation/builtin/tone', '/future-agi/get-started/evaluation/builtin-evals/toxicity': '/docs/evaluation/builtin/toxicity', '/future-agi/get-started/evaluation/builtin-evals/translation-accuracy': '/docs/evaluation/builtin/translation-accuracy', - '/future-agi/get-started/evaluation/builtin-evals/valid-links': '/docs/evaluation/builtin/valid-links', + '/future-agi/get-started/evaluation/builtin-evals/valid-links': '/docs/evaluation/builtin', '/future-agi/get-started/evaluation/create-custom-evals': '/docs/evaluation/features/custom', '/future-agi/get-started/evaluation/evaluate-ci-cd-pipeline': '/docs/evaluation/features/cicd', '/future-agi/get-started/evaluation/evaluate-patterns': '/docs/evaluation/features/evaluate', '/future-agi/get-started/evaluation/future-agi-models': '/docs/evaluation/features/futureagi-models', '/future-agi/get-started/evaluation/running-your-first-eval': '/docs/evaluation/features/evaluate', '/future-agi/get-started/evaluation/use-custom-models': '/docs/evaluation/features/custom-models', - '/future-agi/get-started/knowledge-base/concept': '/docs/prompt/concepts/concept', + '/future-agi/get-started/knowledge-base/concept': '/docs/knowledge-base/concepts/concept', '/future-agi/get-started/knowledge-base/how-to/create-kb-using-sdk': '/docs/knowledge-base/features/sdk', '/future-agi/get-started/knowledge-base/how-to/create-kb-using-ui': '/docs/knowledge-base/features/ui', '/future-agi/get-started/knowledge-base/overview': '/docs/knowledge-base', - '/future-agi/get-started/observability/manual-tracing/add-attributes-metadata-tags': '/docs/tracing/manual/add-attributes-metadata-tags', - '/future-agi/get-started/observability/manual-tracing/add-events-exceptions-status': '/docs/tracing/manual/add-events-exceptions-status', - '/future-agi/get-started/observability/manual-tracing/advanced-tracing-examples': '/docs/tracing/manual/advanced-tracing-examples', - '/future-agi/get-started/observability/manual-tracing/annotating-using-api': '/docs/tracing/manual/annotating-using-api', - '/future-agi/get-started/observability/manual-tracing/create-tool-spans': '/docs/tracing/manual/create-tool-spans', - '/future-agi/get-started/observability/manual-tracing/get-current-span-context': '/docs/tracing/manual/get-current-span-context', - '/future-agi/get-started/observability/manual-tracing/in-line-evals': '/docs/tracing/manual/in-line-evals', - '/future-agi/get-started/observability/manual-tracing/instrument-with-traceai-helpers': '/docs/tracing/manual/instrument-with-traceai-helpers', - '/future-agi/get-started/observability/manual-tracing/langfuse-intergation': '/docs/tracing/manual/langfuse-intergation', - '/future-agi/get-started/observability/manual-tracing/log-prompt-templates': '/docs/tracing/manual/log-prompt-templates', - '/future-agi/get-started/observability/manual-tracing/mask-span-attributes': '/docs/tracing/manual/mask-span-attributes', - '/future-agi/get-started/observability/manual-tracing/semantic-conventions': '/docs/tracing/manual/semantic-conventions', - '/future-agi/get-started/observability/manual-tracing/set-session-user-id': '/docs/tracing/manual/set-session-user-id', - '/future-agi/get-started/observability/manual-tracing/set-up-tracing': '/docs/tracing/manual/set-up-tracing', + '/future-agi/get-started/observability/manual-tracing/add-attributes-metadata-tags': '/docs/observe/features/manual-tracing/add-attributes-metadata-tags', + '/future-agi/get-started/observability/manual-tracing/add-events-exceptions-status': '/docs/observe/features/manual-tracing/add-events-exceptions-status', + '/future-agi/get-started/observability/manual-tracing/advanced-tracing-examples': '/docs/observe/features/manual-tracing/advanced-tracing-examples', + '/future-agi/get-started/observability/manual-tracing/annotating-using-api': '/docs/observe/features/manual-tracing/annotating-using-api', + '/future-agi/get-started/observability/manual-tracing/create-tool-spans': '/docs/observe/features/manual-tracing/create-tool-spans', + '/future-agi/get-started/observability/manual-tracing/get-current-span-context': '/docs/observe/features/manual-tracing/get-current-span-context', + '/future-agi/get-started/observability/manual-tracing/in-line-evals': '/docs/observe/features/manual-tracing/in-line-evals', + '/future-agi/get-started/observability/manual-tracing/instrument-with-traceai-helpers': '/docs/observe/features/manual-tracing/instrument-with-traceai-helpers', + '/future-agi/get-started/observability/manual-tracing/langfuse-intergation': '/docs/observe/features/manual-tracing/langfuse-integration', + '/future-agi/get-started/observability/manual-tracing/log-prompt-templates': '/docs/observe/features/manual-tracing/log-prompt-templates', + '/future-agi/get-started/observability/manual-tracing/mask-span-attributes': '/docs/observe/features/manual-tracing/mask-span-attributes', + '/future-agi/get-started/observability/manual-tracing/semantic-conventions': '/docs/observe/features/manual-tracing/semantic-conventions', + '/future-agi/get-started/observability/manual-tracing/set-session-user-id': '/docs/observe/features/manual-tracing/set-session-user-id', + '/future-agi/get-started/observability/manual-tracing/set-up-tracing': '/docs/observe/features/manual-tracing/set-up-tracing', '/future-agi/get-started/optimization/dataset-optimization': '/docs/cookbook/quickstart/dataset-optimization', '/future-agi/get-started/optimization/how-to/using-python-sdk': '/docs/optimization/features/using-python-sdk', '/future-agi/get-started/optimization/optimizers/bayesian-search': '/docs/optimization/optimizers/bayesian-search', '/future-agi/get-started/optimization/optimizers/gepa': '/docs/optimization/optimizers/gepa', '/future-agi/get-started/optimization/optimizers/meta-prompt': '/docs/optimization/optimizers/meta-prompt', - '/future-agi/get-started/optimization/optimizers/overview': '/docs/optimization/optimizers/overview', + '/future-agi/get-started/optimization/optimizers/overview': '/docs/optimization', '/future-agi/get-started/optimization/optimizers/promptwizard': '/docs/optimization/optimizers/promptwizard', '/future-agi/get-started/optimization/optimizers/protegi': '/docs/optimization/optimizers/protegi', '/future-agi/get-started/optimization/optimizers/random-search': '/docs/optimization/optimizers/random-search', '/future-agi/get-started/optimization/overview': '/docs/optimization', '/future-agi/get-started/optimization/quickstart': '/docs/optimization', - '/future-agi/get-started/protect/concept': '/docs/prompt/concepts/concept', - '/future-agi/get-started/protect/how-to': '/docs/protect/how-to', + '/future-agi/get-started/protect/concept': '/docs/protect/concepts/concept', + '/future-agi/get-started/protect/how-to': '/docs/protect/features/run-protect', '/future-agi/get-started/protect/overview': '/docs/protect', '/future-agi/get-started/prototype/evals': '/docs/prototype/features/evals', '/future-agi/get-started/prototype/overview': '/docs/prototype', @@ -179,14 +203,14 @@ export const redirectMap: Record = { '/future-agi/products/observability/concept/spans': '/docs/tracing/concepts/spans', '/future-agi/products/observability/concept/traceai': '/docs/tracing/concepts/traceai', '/future-agi/products/observability/concept/traces': '/docs/tracing/concepts/traces', - '/future-agi/products/observability/overview': '/docs/tracing', + '/future-agi/products/observability/overview': '/docs/tracing/auto', '/future-agi/products/observe/alerts-and-monitors': '/docs/observe/features/alerts', '/future-agi/products/observe/evals': '/docs/observe/features/evals', '/future-agi/products/observe/overview': '/docs/observe', '/future-agi/products/observe/quickstart': '/docs/observe/features/quickstart', '/future-agi/products/observe/session': '/docs/observe/features/session', '/future-agi/products/observe/users': '/docs/observe/features/users', - '/future-agi/products/observe/voice/overview': '/docs/optimization/optimizers/overview', + '/future-agi/products/observe/voice/overview': '/docs/observe/features/voice', '/future-agi/products/observe/voice/quickstart': '/docs/observe/features/quickstart', '/home': '/docs', '/integrations/anthropic': '/docs/integrations/traceai/anthropic', @@ -223,8 +247,8 @@ export const redirectMap: Record = { '/product/agent-compass/quickstart': '/docs/error-feed', '/product/agent-compass/taxonomy': '/docs/error-feed/concepts/taxonomy', '/docs/cookbook/quickstart/agent-compass-debug': '/docs/error-feed', - '/product/annotations/concepts/labels': '/docs/annotations/concepts/labels', - '/product/annotations/concepts/queues': '/docs/annotations/concepts/queues', + '/product/annotations/concepts/labels': '/docs/annotations/features/labels', + '/product/annotations/concepts/queues': '/docs/annotations/features/queues', '/product/annotations/concepts/scores': '/docs/annotations/concepts/scores', '/product/annotations/features/add-items': '/docs/annotations/features/add-items', '/product/annotations/features/analytics': '/docs/annotations/features/analytics', @@ -240,16 +264,16 @@ export const redirectMap: Record = { '/product/annotations/sdk/python': '/docs/annotations/sdk/python', '/product/dataset/how-to/add-rows-to-dataset': '/docs/dataset/features/add-rows', '/product/dataset/how-to/annotate-dataset': '/docs/dataset/features/annotate', - '/product/dataset/how-to/create-dynamic-column/by-executing-code': '/docs/dataset/dynamic-column/by-executing-code', - '/product/dataset/how-to/create-dynamic-column/by-extracting-entities': '/docs/dataset/dynamic-column/by-extracting-entities', - '/product/dataset/how-to/create-dynamic-column/by-extracting-json': '/docs/dataset/dynamic-column/by-extracting-json', - '/product/dataset/how-to/create-dynamic-column/using-api-calls': '/docs/dataset/dynamic-column/using-api-calls', - '/product/dataset/how-to/create-dynamic-column/using-classification': '/docs/dataset/dynamic-column/using-classification', - '/product/dataset/how-to/create-dynamic-column/using-conditional-node': '/docs/dataset/dynamic-column/using-conditional-node', - '/product/dataset/how-to/create-dynamic-column/using-run-prompt': '/docs/dataset/dynamic-column/using-run-prompt', - '/product/dataset/how-to/create-dynamic-column/using-vector-db': '/docs/dataset/dynamic-column/using-vector-db', + '/product/dataset/how-to/create-dynamic-column/by-executing-code': '/docs/dataset/features/add-columns', + '/product/dataset/how-to/create-dynamic-column/by-extracting-entities': '/docs/dataset/features/add-columns', + '/product/dataset/how-to/create-dynamic-column/by-extracting-json': '/docs/dataset/features/add-columns', + '/product/dataset/how-to/create-dynamic-column/using-api-calls': '/docs/dataset/features/add-columns', + '/product/dataset/how-to/create-dynamic-column/using-classification': '/docs/dataset/features/add-columns', + '/product/dataset/how-to/create-dynamic-column/using-conditional-node': '/docs/dataset/features/add-columns', + '/product/dataset/how-to/create-dynamic-column/using-run-prompt': '/docs/dataset/features/add-columns', + '/product/dataset/how-to/create-dynamic-column/using-vector-db': '/docs/dataset/features/add-columns', '/product/dataset/how-to/create-new-dataset': '/docs/dataset/features/create', - '/product/dataset/how-to/create-static-column': '/docs/dataset/features/create-static-column', + '/product/dataset/how-to/create-static-column': '/docs/dataset/features/add-columns', '/product/dataset/how-to/experiments-in-dataset': '/docs/dataset/features/experiments', '/product/dataset/how-to/run-prompt-in-dataset': '/docs/dataset/features/run-prompt', '/product/dataset/overview': '/docs/dataset', @@ -257,19 +281,19 @@ export const redirectMap: Record = { '/product/prompt/how-to/create-prompt-from-scratch': '/docs/prompt/features/create-from-scratch', '/product/prompt/how-to/linked-traces': '/docs/prompt/features/linked-traces', '/product/prompt/how-to/manage-folders': '/docs/prompt/features/folders', - '/product/prompt/how-to/prompt-workbench-using-sdk': '/docs/prompt-workbench/sdk', + '/product/prompt/how-to/prompt-workbench-using-sdk': '/docs/prompt/features/sdk', '/product/prompt/overview': '/docs/prompt', - '/product/simulation/agent-definition': '/docs/simulation/set-up/agent-definition', - '/product/simulation/how-to/chat-simulation-using-sdk': '/docs/simulation/how-to/chat-simulation-using-sdk', + '/product/simulation/agent-definition': '/docs/simulation/concepts/agent-definition', + '/product/simulation/how-to/chat-simulation-using-sdk': '/docs/simulation/features/simulation-using-sdk', '/product/simulation/how-to/evaluate-tool-calling': '/docs/simulation/features/evaluate-tool-calling', '/product/simulation/how-to/fix-my-agent': '/docs/simulation/features/fix-my-agent', '/product/simulation/how-to/observe-to-simulate': '/docs/simulation/features/observe-to-simulate', '/product/simulation/how-to/prompt-simulation': '/docs/simulation/features/prompt-simulation', - '/product/simulation/how-to/voice-observability': '/docs/simulation/how-to/voice-observability', + '/product/simulation/how-to/voice-observability': '/docs/simulation/features/voice-replay', '/product/simulation/overview': '/docs/simulation', - '/product/simulation/personas': '/docs/simulation/set-up/personas', - '/product/simulation/run-tests': '/docs/simulation/set-up/run-tests', - '/product/simulation/scenarios': '/docs/simulation/set-up/scenarios', + '/product/simulation/personas': '/docs/simulation/concepts/personas', + '/product/simulation/run-tests': '/docs/simulation/features/run-simulation', + '/product/simulation/scenarios': '/docs/simulation/concepts/scenarios', '/quickstart/generate-synthetic-data': '/docs/quickstart/generate-synthetic-data', '/quickstart/running-evals-in-simulation': '/docs/quickstart/running-evals-in-simulation', '/quickstart/setup-mcp-server': '/docs/quickstart/setup-mcp-server', diff --git a/src/pages/docs/admin-settings/api-keys.mdx b/src/pages/docs/admin-settings/api-keys.mdx index 59222ada..a5ca2397 100644 --- a/src/pages/docs/admin-settings/api-keys.mdx +++ b/src/pages/docs/admin-settings/api-keys.mdx @@ -56,5 +56,5 @@ Never commit API keys to version control. Use environment variables or a secret ## Next Steps -- [Installation](/docs/quickstart/installation) +- [Installation](/docs/installation) - [Roles & Permissions](/docs/roles-and-permissions) diff --git a/src/pages/docs/admin-settings/integrations.mdx b/src/pages/docs/admin-settings/integrations.mdx index 5f71b8fc..4b4a9088 100644 --- a/src/pages/docs/admin-settings/integrations.mdx +++ b/src/pages/docs/admin-settings/integrations.mdx @@ -65,4 +65,4 @@ When connecting Datadog, select your site: ## Next Steps - [Workspace Management](/docs/admin-settings/workspace-management) - Organize projects and teams -- [Observability](/docs/observability) - Monitor your AI applications +- [Observability](/docs/tracing/auto) - Monitor your AI applications diff --git a/src/pages/docs/cookbook/decrease-hallucination.mdx b/src/pages/docs/cookbook/decrease-hallucination.mdx index be89420d..a479e351 100644 --- a/src/pages/docs/cookbook/decrease-hallucination.mdx +++ b/src/pages/docs/cookbook/decrease-hallucination.mdx @@ -35,7 +35,7 @@ To systematically reduce hallucinations in RAG workflows, this cookbook adopts a - **Instrumentation:** The evaluation from Future AGI is provided through the `fi_instrumentation` SDK. This setup allows evaluation in real-time across the following metrics: - **[Groundedness:](/docs/evaluation/builtin/groundedness)** Evaluates whether a response is firmly based on the provided context. - **[Context Adherence:](/docs/evaluation/builtin/context-adherence)** Evaluates how well responses stays within the provided context. - - **[Context Retrieval Quality:](/docs/evaluation/builtin/eval-context-retrieval)** Evaluates the quality of the context retrieved for generating a response. + - **[Context Retrieval Quality:](/docs/evaluation/builtin)** Evaluates the quality of the context retrieved for generating a response. Click [here](/docs/integrations/traceai/langchain) to learn how to setup trace provider in Future AGI diff --git a/src/pages/docs/cookbook/quickstart/compare-optimizers.mdx b/src/pages/docs/cookbook/quickstart/compare-optimizers.mdx index cbd6101d..0d5b8da1 100644 --- a/src/pages/docs/cookbook/quickstart/compare-optimizers.mdx +++ b/src/pages/docs/cookbook/quickstart/compare-optimizers.mdx @@ -363,7 +363,7 @@ You can now run and compare multiple optimization strategies on the same task to Optimize via dashboard UI - + All six optimizers compared diff --git a/src/pages/docs/cookbook/quickstart/custom-eval-metrics.mdx b/src/pages/docs/cookbook/quickstart/custom-eval-metrics.mdx index f0e470d9..d1708b71 100644 --- a/src/pages/docs/cookbook/quickstart/custom-eval-metrics.mdx +++ b/src/pages/docs/cookbook/quickstart/custom-eval-metrics.mdx @@ -193,7 +193,7 @@ You can now create custom eval metrics in the FutureAGI dashboard and run them p Score RAG faithfulness - + Bundle multiple evals diff --git a/src/pages/docs/cookbook/quickstart/dataset-annotation.mdx b/src/pages/docs/cookbook/quickstart/dataset-annotation.mdx index 381f73c0..67ea8dda 100644 --- a/src/pages/docs/cookbook/quickstart/dataset-annotation.mdx +++ b/src/pages/docs/cookbook/quickstart/dataset-annotation.mdx @@ -210,7 +210,7 @@ You can now create annotation views, define labels, assign annotators, and log a ## Next steps - + Full annotation reference diff --git a/src/pages/docs/cookbook/quickstart/manual-tracing.mdx b/src/pages/docs/cookbook/quickstart/manual-tracing.mdx index be37d914..f798c94d 100644 --- a/src/pages/docs/cookbook/quickstart/manual-tracing.mdx +++ b/src/pages/docs/cookbook/quickstart/manual-tracing.mdx @@ -177,7 +177,7 @@ In Tracing, filter by tags using the **Attribute** filter: select **Attribute** ![Traces filtered by tag in the Tracing dashboard](https://fi-cookbook-assets.s3.ap-south-1.amazonaws.com/quickstart/manual-tracing/step-4-tags.png) -You can combine `using_user`, `using_session`, `using_metadata`, and `using_tags` into a single `using_attributes()` call for convenience. See the [tracing reference](/docs/tracing/manual/set-up-tracing) for details. +You can combine `using_user`, `using_session`, `using_metadata`, and `using_tags` into a single `using_attributes()` call for convenience. See the [tracing reference](/docs/observe/features/manual-tracing/set-up-tracing) for details. @@ -325,7 +325,7 @@ You can now auto-trace LLM calls, add custom spans for non-LLM steps, attach use ## Next steps - + 20+ framework integrations diff --git a/src/pages/docs/cookbook/quickstart/prompt-optimization.mdx b/src/pages/docs/cookbook/quickstart/prompt-optimization.mdx index 89609f8e..24c312be 100644 --- a/src/pages/docs/cookbook/quickstart/prompt-optimization.mdx +++ b/src/pages/docs/cookbook/quickstart/prompt-optimization.mdx @@ -294,7 +294,7 @@ This guide uses **MetaPrompt** and **Bayesian Search**, but FutureAGI offers six | [**Random Search**](/docs/optimization/optimizers/random-search) | Quick baseline comparison | Generates random prompt variants and picks the best — useful as a sanity check | -Not sure which to pick? Start with **Meta-Prompt** for instruction tuning or **Bayesian Search** for few-shot tasks. See the [Optimizers Overview](/docs/optimization/optimizers/overview) for a detailed comparison and decision tree. +Not sure which to pick? Start with **Meta-Prompt** for instruction tuning or **Bayesian Search** for few-shot tasks. See the [Optimizers Overview](/docs/optimization) for a detailed comparison and decision tree. ## What you built @@ -313,7 +313,7 @@ You can now automatically optimize any prompt using MetaPromptOptimizer or Bayes ## Next steps - + Compare all six optimizers diff --git a/src/pages/docs/dataset/features/create.mdx b/src/pages/docs/dataset/features/create.mdx index 77f7ef5c..2dc75e82 100644 --- a/src/pages/docs/dataset/features/create.mdx +++ b/src/pages/docs/dataset/features/create.mdx @@ -206,7 +206,7 @@ Synthetically generate data and perform experimentations on it. | Property | Description | | -------- | ------------------------------------- | | Name | Name of the dataset | - | Knowledge Base (optional) | Select which knowledge base you want to use. | + | Knowledge Base (optional) | Select which knowledge base you want to use. | | Description | Describe the dataset you want to generate | | Objective (optional) | Use case of the dataset | | Pattern (optional) | Style, tone or behavioral traits of the generated dataset | diff --git a/src/pages/docs/dataset/features/experiments.mdx b/src/pages/docs/dataset/features/experiments.mdx index 5d81367f..85d7fdbe 100644 --- a/src/pages/docs/dataset/features/experiments.mdx +++ b/src/pages/docs/dataset/features/experiments.mdx @@ -67,7 +67,7 @@ You pick a **base column** (the generated responses you want to compare against) Use an existing prompt template or create a new one. You can add as many prompt templates as you need. - Click [here](/docs/prompt-workbench) to learn more about prompts. + Click [here](/docs/prompt) to learn more about prompts. diff --git a/src/pages/docs/evaluation/concepts/eval-types.mdx b/src/pages/docs/evaluation/concepts/eval-types.mdx index 0b015696..425949df 100644 --- a/src/pages/docs/evaluation/concepts/eval-types.mdx +++ b/src/pages/docs/evaluation/concepts/eval-types.mdx @@ -119,4 +119,4 @@ Multimodal evals (image, audio, conversation) require a judge model that support - [Built-in evals](/docs/evaluation/builtin): Full list with evaluation method and required inputs for each template. - [Create custom evals](/docs/evaluation/features/custom): Custom evals always use LLM as Judge. - [Judge models](/docs/evaluation/concepts/judge-models): Choose the right model for LLM as Judge and LLM as Ranker evals. -- [Eval groups](/docs/evaluation/features/groups): Combine different eval types and run them together in one pass. +- [Eval groups](/docs/evaluation): Combine different eval types and run them together in one pass. diff --git a/src/pages/docs/evaluation/concepts/understanding-evaluation.mdx b/src/pages/docs/evaluation/concepts/understanding-evaluation.mdx index 191fc331..70255eda 100644 --- a/src/pages/docs/evaluation/concepts/understanding-evaluation.mdx +++ b/src/pages/docs/evaluation/concepts/understanding-evaluation.mdx @@ -46,7 +46,7 @@ Using the same template across surfaces keeps results directly comparable withou - **[Eval templates](/docs/evaluation/concepts/eval-templates)**: The definition of what to measure. Built-in or custom. - **[Judge models](/docs/evaluation/concepts/judge-models)**: The model that applies the template criteria and produces the result. - **[Eval results](/docs/evaluation/concepts/eval-results)**: The output of a run: result value, reason, and aggregates. -- **[Eval groups](/docs/evaluation/features/groups)**: Named collections of templates you run together as a single unit. +- **[Eval groups](/docs/evaluation)**: Named collections of templates you run together as a single unit. --- @@ -55,4 +55,4 @@ Using the same template across surfaces keeps results directly comparable withou - [Evaluate via Platform & SDK](/docs/evaluation/features/evaluate): Run your first eval. - [Built-in evals](/docs/evaluation/builtin): 70+ templates across quality, safety, factuality, RAG, and more. - [Create custom evals](/docs/evaluation/features/custom): Define your own criteria and rule prompts. -- [Eval groups](/docs/evaluation/features/groups): Bundle multiple evals and run them in one pass. +- [Eval groups](/docs/evaluation): Bundle multiple evals and run them in one pass. diff --git a/src/pages/docs/evaluation/features/cicd.mdx b/src/pages/docs/evaluation/features/cicd.mdx index e6cc3950..fdca737d 100644 --- a/src/pages/docs/evaluation/features/cicd.mdx +++ b/src/pages/docs/evaluation/features/cicd.mdx @@ -407,7 +407,7 @@ The workflow posts a comment on your PR with the current version identifier and Define eval templates to use in your pipeline. - + Run multiple evals together as a group. diff --git a/src/pages/docs/evaluation/features/custom-models.mdx b/src/pages/docs/evaluation/features/custom-models.mdx index 9be5244e..b67b0143 100644 --- a/src/pages/docs/evaluation/features/custom-models.mdx +++ b/src/pages/docs/evaluation/features/custom-models.mdx @@ -126,7 +126,7 @@ Fields you may see when adding a model (from a provider or custom). **Applies to Define eval rules and select your custom model. - + Run multiple evals together as a group. diff --git a/src/pages/docs/evaluation/features/custom.mdx b/src/pages/docs/evaluation/features/custom.mdx index f7e36061..ba65dd2e 100644 --- a/src/pages/docs/evaluation/features/custom.mdx +++ b/src/pages/docs/evaluation/features/custom.mdx @@ -131,7 +131,7 @@ You can create custom evals from the **UI** or via the **SDK** (by calling the R Run evals from the UI or SDK. - + Add your custom eval to a group and run it with others. diff --git a/src/pages/docs/evaluation/features/evaluate.mdx b/src/pages/docs/evaluation/features/evaluate.mdx index 43b9b195..811accf2 100644 --- a/src/pages/docs/evaluation/features/evaluate.mdx +++ b/src/pages/docs/evaluation/features/evaluate.mdx @@ -152,7 +152,7 @@ For more eval templates and Future AGI models, see [Built-in evals](/docs/evalua Define your own eval rules and criteria. - + Run multiple evals together as a group. diff --git a/src/pages/docs/evaluation/features/futureagi-models.mdx b/src/pages/docs/evaluation/features/futureagi-models.mdx index 8ebb23d1..a96e5f02 100644 --- a/src/pages/docs/evaluation/features/futureagi-models.mdx +++ b/src/pages/docs/evaluation/features/futureagi-models.mdx @@ -80,7 +80,7 @@ All models are available in the platform UI and the SDK, and work with both buil Define your own eval rules and choose a model to run them. - + Run multiple evals together as a group. diff --git a/src/pages/docs/evaluation/index.mdx b/src/pages/docs/evaluation/index.mdx index a31d911a..78f44603 100644 --- a/src/pages/docs/evaluation/index.mdx +++ b/src/pages/docs/evaluation/index.mdx @@ -33,7 +33,7 @@ Future AGI ships 70+ built-in templates covering quality, safety, factuality, RA Define your own eval rules and output types. - + Bundle multiple evals and run them together. diff --git a/src/pages/docs/integrations/index.mdx b/src/pages/docs/integrations/index.mdx index 24d731d9..5656dfeb 100644 --- a/src/pages/docs/integrations/index.mdx +++ b/src/pages/docs/integrations/index.mdx @@ -43,7 +43,7 @@ TraceAI provides pre-built auto-instrumentation for the following frameworks and - + diff --git a/src/pages/docs/observe/features/quickstart.mdx b/src/pages/docs/observe/features/quickstart.mdx index 1ceaa99b..f2e4d9a5 100644 --- a/src/pages/docs/observe/features/quickstart.mdx +++ b/src/pages/docs/observe/features/quickstart.mdx @@ -79,7 +79,7 @@ This is how you connect your application to Future AGI so LLM calls are captured Use one of two options: - **Auto Instrumentor**: For supported frameworks (e.g. OpenAI). Use Future AGI's [Auto Instrumentation](/docs/tracing/auto); recommended for most apps. - - **Manual tracing**: For custom spans, use [OpenTelemetry](/docs/tracing/concepts/otel). [Learn more →](/docs/tracing/manual/set-up-tracing) + - **Manual tracing**: For custom spans, use [OpenTelemetry](/docs/tracing/concepts/otel). [Learn more →](/docs/observe/features/manual-tracing/set-up-tracing) Example with the OpenAI instrumentor: install the package, instrument with your trace provider, then use the OpenAI client as usual. Traces appear in your [Observe dashboard](https://app.futureagi.com/dashboard/projects/observe). diff --git a/src/pages/docs/observe/features/session.mdx b/src/pages/docs/observe/features/session.mdx index faccc465..821a2d4f 100644 --- a/src/pages/docs/observe/features/session.mdx +++ b/src/pages/docs/observe/features/session.mdx @@ -100,7 +100,7 @@ Sessions group related traces together under a single identifier. A chatbot conv - For more on setting `session.id` with Trace AI helpers and context, see the [manual tracing guide](/docs/tracing/manual/set-session-user-id). + For more on setting `session.id` with Trace AI helpers and context, see the [manual tracing guide](/docs/observe/features/manual-tracing/set-session-user-id). --- diff --git a/src/pages/docs/prompt/features/linked-traces.mdx b/src/pages/docs/prompt/features/linked-traces.mdx index 902eeb9d..f5c19ef8 100644 --- a/src/pages/docs/prompt/features/linked-traces.mdx +++ b/src/pages/docs/prompt/features/linked-traces.mdx @@ -40,7 +40,7 @@ Once linked, the Prompt Workbench shows aggregated metrics per prompt version al ## How to -To link prompts to traces, you need to associate the prompt used in a generation with the corresponding trace. The process is described in the observability and manual tracing docs: [Log prompt templates](/docs/tracing/manual/log-prompt-templates). Once your application sends traces that include the prompt template (or template ID), Future AGI links those traces to the prompt in the Prompt Workbench. +To link prompts to traces, you need to associate the prompt used in a generation with the corresponding trace. The process is described in the observability and manual tracing docs: [Log prompt templates](/docs/observe/features/manual-tracing/log-prompt-templates). Once your application sends traces that include the prompt template (or template ID), Future AGI links those traces to the prompt in the Prompt Workbench. --- @@ -70,7 +70,7 @@ Compare the same metric across **prompt versions** or **time ranges** to see if Manage and fetch prompts programmatically. - + Set up the trace-to-prompt connection in your application. diff --git a/src/pages/docs/quickstart/prompts.mdx b/src/pages/docs/quickstart/prompts.mdx index 5f12ebfa..b46622e9 100644 --- a/src/pages/docs/quickstart/prompts.mdx +++ b/src/pages/docs/quickstart/prompts.mdx @@ -135,6 +135,6 @@ description: "Create and manage AI prompts in Future AGI's Prompt Workbench. Des ## Next Steps -- [Use prompts via SDK](/docs/prompt-workbench/sdk) to serve and manage prompts programmatically in your application +- [Use prompts via SDK](/docs/prompt/features/sdk) to serve and manage prompts programmatically in your application - [Optimize your prompts](/docs/optimization) to automatically improve prompt performance using evaluation-driven feedback - [Run evaluations](/docs/evaluation) to measure how well your prompts perform across different inputs diff --git a/src/pages/docs/quickstart/setup-observability.mdx b/src/pages/docs/quickstart/setup-observability.mdx index 481c109f..265c66b2 100644 --- a/src/pages/docs/quickstart/setup-observability.mdx +++ b/src/pages/docs/quickstart/setup-observability.mdx @@ -77,7 +77,7 @@ Observe supports auto-instrumentation for OpenAI, Anthropic, LangChain, LlamaInd There are 2 ways to implement tracing in your project: 1. **Auto Instrumentor**: Automatically captures all LLM calls. Recommended for most use cases. - 2. **Manual Tracing**: Gives you full control over what gets traced using OpenTelemetry. [Learn more](/docs/tracing/manual/set-up-tracing) + 2. **Manual Tracing**: Gives you full control over what gets traced using OpenTelemetry. [Learn more](/docs/observe/features/manual-tracing/set-up-tracing) Here's a complete example using auto-instrumentation with OpenAI: @@ -136,5 +136,5 @@ Observe supports auto-instrumentation for OpenAI, Anthropic, LangChain, LlamaInd ## Next Steps - [Add more integrations](/docs/integrations) for Anthropic, LangChain, LlamaIndex, and others -- [Set up manual tracing](/docs/tracing/manual/set-up-tracing) for custom spans and attributes -- [Add inline evaluations](/docs/tracing/manual/in-line-evals) to evaluate traces as they come in \ No newline at end of file +- [Set up manual tracing](/docs/observe/features/manual-tracing/set-up-tracing) for custom spans and attributes +- [Add inline evaluations](/docs/observe/features/manual-tracing/in-line-evals) to evaluate traces as they come in \ No newline at end of file diff --git a/src/pages/docs/sdk/annotation-queues.mdx b/src/pages/docs/sdk/annotation-queues.mdx index ef8f2808..66cd3047 100644 --- a/src/pages/docs/sdk/annotation-queues.mdx +++ b/src/pages/docs/sdk/annotation-queues.mdx @@ -3,7 +3,7 @@ title: "Annotation Queues" description: "Reference for the AnnotationQueue class in the Future AGI Python SDK." --- -For step-by-step examples, see the [Annotation Queue Using SDK](/docs/observe/features/annotation-queue-using-sdk) guide. +For step-by-step examples, see the [Annotation Queue Using SDK](/docs/annotations/sdk/annotation-queue-using-sdk) guide. # `AnnotationQueue` Class diff --git a/src/pages/docs/sdk/tracing.mdx b/src/pages/docs/sdk/tracing.mdx index 62d27da4..b006910d 100644 --- a/src/pages/docs/sdk/tracing.mdx +++ b/src/pages/docs/sdk/tracing.mdx @@ -13,7 +13,7 @@ description: "Set up OpenTelemetry tracing across Python, TypeScript, Java, and The pattern is the same across all four languages: call `register()` once to set up the provider, then either auto-instrument your frameworks or use `FITracer` for custom spans. LLM calls, retrieval steps, and agent actions get captured as OpenTelemetry spans and sent to your dashboard. - Requires `FI_API_KEY` and `FI_SECRET_KEY` in your environment. For conceptual background on traces, spans, and attributes, see the [Tracing guide](/docs/tracing). + Requires `FI_API_KEY` and `FI_SECRET_KEY` in your environment. For conceptual background on traces, spans, and attributes, see the [Tracing guide](/docs/tracing/auto). ## Quick Example diff --git a/src/pages/docs/simulation/features/voice-replay.mdx b/src/pages/docs/simulation/features/voice-replay.mdx index d0195f2e..e599148d 100644 --- a/src/pages/docs/simulation/features/voice-replay.mdx +++ b/src/pages/docs/simulation/features/voice-replay.mdx @@ -33,7 +33,7 @@ The flow is: **select voice traces** → **create a replay session** → **gener - With **Voice Observability** integrated, your production voice calls (via Vapi, Retell, or other supported providers) are captured as traces with conversation-type spans. Each span stores the full call data including transcripts, recordings, and call metrics. See [Set Up Voice Observability](/docs/observe/voice/set-up) for integration details. + With **Voice Observability** integrated, your production voice calls (via Vapi, Retell, or other supported providers) are captured as traces with conversation-type spans. Each span stores the full call data including transcripts, recordings, and call metrics. See [Set Up Voice Observability](/docs/observe/features/voice) for integration details. From the **Observe** experience, select the voice traces you want to replay. Create a **replay session** with: @@ -103,13 +103,13 @@ The **Compare with baseline call** button only appears for call executions that Replay text-based production sessions using chat simulation. - + Set up voice call monitoring for production calls. - + Understand scenarios and how replay creates graph scenarios from transcripts. - + Configure voice agents for simulation, including provider settings and voice config. From 6918c35d902487c3e2bb98b284795f24d8272992 Mon Sep 17 00:00:00 2001 From: Shibu Date: Fri, 1 May 2026 00:38:09 +0530 Subject: [PATCH 3/7] ci: add PR checks for broken links and missing redirects on deleted pages MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds two automated checks that run on every PR to dev/main: 1. audit-links.mjs — fails if any nav link or MDX content link points to a missing page (catches broken hrefs introduced by a PR) 2. check-deleted-pages.mjs — fails if an MDX page is deleted without a corresponding entry in src/lib/redirects.ts (prevents the pattern that caused the April 404 incident: pages deleted with no redirects) Co-Authored-By: Claude Sonnet 4.6 --- .github/workflows/pr-checks.yml | 47 ++++++++++++++++++++ scripts/check-deleted-pages.mjs | 79 +++++++++++++++++++++++++++++++++ 2 files changed, 126 insertions(+) create mode 100644 .github/workflows/pr-checks.yml create mode 100644 scripts/check-deleted-pages.mjs diff --git a/.github/workflows/pr-checks.yml b/.github/workflows/pr-checks.yml new file mode 100644 index 00000000..bf912b57 --- /dev/null +++ b/.github/workflows/pr-checks.yml @@ -0,0 +1,47 @@ +name: PR Checks + +on: + pull_request: + branches: [dev, main] + +jobs: + link-audit: + name: Link audit & redirect enforcement + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 # full history needed for git diff + + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: '20' + + - name: Fetch @futureagi/chat-widget + run: | + git clone --depth 1 \ + https://x-access-token:${{ secrets.GH_PAT }}@github.com/future-agi/landing-page.git .landing-tmp + cp -r .landing-tmp/docs-agent/packages/chat-widget ./chat-widget + rm -rf .landing-tmp + + - name: Patch chat-widget dependency + run: | + sed -i 's|"@futureagi/chat-widget": "workspace:\*"|"@futureagi/chat-widget": "file:./chat-widget"|' package.json + + - name: Cache npm dependencies + uses: actions/cache@v4 + with: + path: ~/.npm + key: ${{ runner.os }}-npm-${{ hashFiles('package-lock.json', 'package.json') }} + restore-keys: ${{ runner.os }}-npm- + + - name: Install dependencies + run: npm install + + - name: Check broken nav & content links + run: node scripts/audit-links.mjs + + - name: Check deleted pages have redirects + run: node scripts/check-deleted-pages.mjs ${{ github.base_ref }} diff --git a/scripts/check-deleted-pages.mjs b/scripts/check-deleted-pages.mjs new file mode 100644 index 00000000..897e61c8 --- /dev/null +++ b/scripts/check-deleted-pages.mjs @@ -0,0 +1,79 @@ +/** + * Checks that every MDX page deleted in this branch has a corresponding + * entry in src/lib/redirects.ts. Fails with exit code 1 if any are missing. + * + * Usage: node scripts/check-deleted-pages.mjs [base-branch] + * Default base branch: dev + */ +import { execSync } from 'child_process'; +import { readFileSync } from 'fs'; + +const baseBranch = process.argv[2] || 'dev'; + +// Get deleted MDX files compared to base branch +let deletedFiles; +try { + const output = execSync( + `git diff origin/${baseBranch}...HEAD --name-only --diff-filter=D`, + { encoding: 'utf-8' } + ); + deletedFiles = output.trim().split('\n').filter(Boolean); +} catch { + // If origin/base doesn't exist, try without origin/ + try { + const output = execSync( + `git diff ${baseBranch}...HEAD --name-only --diff-filter=D`, + { encoding: 'utf-8' } + ); + deletedFiles = output.trim().split('\n').filter(Boolean); + } catch { + console.log('Could not determine deleted files — skipping check.'); + process.exit(0); + } +} + +// Filter to only MDX pages under src/pages/ +const deletedPages = deletedFiles.filter(f => f.startsWith('src/pages/') && f.endsWith('.mdx')); + +if (deletedPages.length === 0) { + console.log('No MDX pages deleted in this branch. ✓'); + process.exit(0); +} + +// Convert file path to URL path +function fileToPath(file) { + return file + .replace(/^src\/pages/, '') + .replace(/\.mdx$/, '') + .replace(/\/index$/, '') || '/'; +} + +// Load redirects map +const redirectsRaw = readFileSync('src/lib/redirects.ts', 'utf-8'); +const redirectEntries = [...redirectsRaw.matchAll(/'([^']+)':\s*'([^']+)'/g)]; +const redirectMap = new Set(redirectEntries.map(([, from]) => from)); + +// Check each deleted page +const missing = []; +for (const file of deletedPages) { + const urlPath = fileToPath(file); + if (!redirectMap.has(urlPath)) { + missing.push({ file, urlPath }); + } +} + +if (missing.length === 0) { + console.log(`All ${deletedPages.length} deleted page(s) have redirects. ✓`); + process.exit(0); +} + +console.error(`\n✗ ${missing.length} deleted page(s) have no redirect in src/lib/redirects.ts:\n`); +for (const { file, urlPath } of missing) { + console.error(` ${urlPath}`); + console.error(` (deleted file: ${file})`); +} +console.error(` +To fix: add an entry to src/lib/redirects.ts for each path above, pointing to the closest current page. +Example: '${missing[0].urlPath}': '/docs/some-current-page', +`); +process.exit(1); From bae93085f2a50d0dab78c891ed570a19b2a2f00c Mon Sep 17 00:00:00 2001 From: Shibu Date: Sun, 3 May 2026 13:59:32 +0530 Subject: [PATCH 4/7] fix: remove heading tags from non-content UI elements for SEO MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - AiChatWidget: h3 → p for "FutureAGI AI Assistant" - TableOfContents: h4 → p for "On this page" - GiscusComments: h3 → p for "Questions & Discussion" - Card: h3 → p for all card titles - global.css: add .docs-section-title class (same styles as h2) - 171 MDX files: ## Next Steps and ## Related →
Every page H1 is now the first heading in the DOM. Co-Authored-By: Claude Sonnet 4.6 --- src/components/AiChatWidget.astro | 2 +- src/components/GiscusComments.tsx | 2 +- src/components/TableOfContents.astro | 4 ++-- src/components/docs/Card.astro | 4 ++-- src/pages/docs/admin-settings/ai-providers.mdx | 2 +- src/pages/docs/admin-settings/api-keys.mdx | 2 +- src/pages/docs/admin-settings/billing-pricing.mdx | 2 +- src/pages/docs/admin-settings/integrations.mdx | 2 +- src/pages/docs/admin-settings/organization-settings.mdx | 2 +- src/pages/docs/admin-settings/profile-security.mdx | 2 +- src/pages/docs/admin-settings/usage-summary.mdx | 2 +- src/pages/docs/admin-settings/user-management.mdx | 2 +- src/pages/docs/admin-settings/workspace-management.mdx | 2 +- .../concepts/understanding-agent-playground.mdx | 2 +- .../docs/agent-playground/concepts/versions-and-execution.mdx | 2 +- src/pages/docs/agent-playground/features/build-workflow.mdx | 2 +- src/pages/docs/agent-playground/features/create-graph.mdx | 2 +- src/pages/docs/agent-playground/features/run-and-monitor.mdx | 2 +- src/pages/docs/annotations/concepts/scores.mdx | 2 +- src/pages/docs/annotations/features/labels.mdx | 2 +- src/pages/docs/annotations/features/queues.mdx | 2 +- src/pages/docs/annotations/quickstart.mdx | 2 +- src/pages/docs/command-center/admin/organizations.mdx | 2 +- src/pages/docs/command-center/api/assistants.mdx | 2 +- src/pages/docs/command-center/api/async-batch.mdx | 2 +- src/pages/docs/command-center/api/chat.mdx | 2 +- src/pages/docs/command-center/api/embeddings.mdx | 2 +- src/pages/docs/command-center/api/endpoints.mdx | 2 +- src/pages/docs/command-center/api/files.mdx | 2 +- src/pages/docs/command-center/api/headers.mdx | 2 +- src/pages/docs/command-center/api/media.mdx | 2 +- src/pages/docs/command-center/concepts/api-reference.mdx | 2 +- src/pages/docs/command-center/concepts/configuration.mdx | 2 +- src/pages/docs/command-center/concepts/core.mdx | 2 +- .../docs/command-center/concepts/platform-integration.mdx | 2 +- src/pages/docs/command-center/concepts/virtual-keys.mdx | 2 +- src/pages/docs/command-center/deployment/self-hosted.mdx | 2 +- src/pages/docs/command-center/features/caching.mdx | 2 +- src/pages/docs/command-center/features/cost-tracking.mdx | 2 +- src/pages/docs/command-center/features/custom-properties.mdx | 2 +- src/pages/docs/command-center/features/guardrails.mdx | 2 +- src/pages/docs/command-center/features/mcp-a2a.mdx | 2 +- src/pages/docs/command-center/features/observability.mdx | 2 +- src/pages/docs/command-center/features/providers.mdx | 2 +- src/pages/docs/command-center/features/rate-limiting.mdx | 2 +- src/pages/docs/command-center/features/routing.mdx | 2 +- src/pages/docs/command-center/features/self-hosted-models.mdx | 2 +- src/pages/docs/command-center/features/shadow-experiments.mdx | 2 +- src/pages/docs/command-center/features/streaming.mdx | 2 +- src/pages/docs/command-center/features/webhooks.mdx | 2 +- src/pages/docs/command-center/guides/errors.mdx | 2 +- src/pages/docs/command-center/guides/troubleshooting.mdx | 2 +- src/pages/docs/command-center/quickstart.mdx | 2 +- src/pages/docs/cookbook/chat-simulation-fix-agent.mdx | 2 +- src/pages/docs/cookbook/crewai-research-team.mdx | 2 +- src/pages/docs/cookbook/error-feed/google-adk-multi-agent.mdx | 2 +- src/pages/docs/cookbook/observability.mdx | 2 +- src/pages/docs/cookbook/quickstart/distributed-tracing.mdx | 2 +- src/pages/docs/dataset/concept/dynamic-column.mdx | 2 +- src/pages/docs/dataset/concept/static-column.mdx | 2 +- src/pages/docs/dataset/concept/synthetic-data.mdx | 2 +- src/pages/docs/dataset/concept/understanding-dataset.mdx | 2 +- src/pages/docs/dataset/features/add-columns.mdx | 2 +- src/pages/docs/dataset/features/add-rows.mdx | 2 +- src/pages/docs/dataset/features/annotate.mdx | 2 +- src/pages/docs/dataset/features/create.mdx | 2 +- src/pages/docs/dataset/features/experiments.mdx | 2 +- src/pages/docs/dataset/features/run-prompt.mdx | 2 +- src/pages/docs/dataset/index.mdx | 2 +- src/pages/docs/error-feed/concepts/scoring.mdx | 2 +- src/pages/docs/error-feed/concepts/severity-and-status.mdx | 2 +- src/pages/docs/error-feed/concepts/taxonomy.mdx | 2 +- src/pages/docs/error-feed/features/deep-analysis.mdx | 2 +- src/pages/docs/error-feed/features/issue-overview.mdx | 2 +- src/pages/docs/error-feed/features/linear-integration.mdx | 2 +- src/pages/docs/error-feed/features/metadata-panel.mdx | 2 +- src/pages/docs/error-feed/features/sampling.mdx | 2 +- src/pages/docs/error-feed/features/state-graph.mdx | 2 +- src/pages/docs/error-feed/features/the-feed.mdx | 2 +- src/pages/docs/error-feed/features/traces.mdx | 2 +- src/pages/docs/error-feed/features/trends.mdx | 2 +- src/pages/docs/error-feed/features/triage-workflow.mdx | 2 +- src/pages/docs/evaluation/features/cicd.mdx | 2 +- src/pages/docs/evaluation/features/custom-models.mdx | 2 +- src/pages/docs/evaluation/features/custom.mdx | 2 +- src/pages/docs/evaluation/features/evaluate.mdx | 2 +- src/pages/docs/evaluation/features/futureagi-models.mdx | 2 +- src/pages/docs/falcon-ai/features/chat.mdx | 2 +- src/pages/docs/falcon-ai/features/mcp-connectors.mdx | 2 +- src/pages/docs/falcon-ai/features/skills.mdx | 2 +- src/pages/docs/falcon-ai/index.mdx | 2 +- src/pages/docs/knowledge-base/concepts/concept.mdx | 2 +- src/pages/docs/knowledge-base/features/sdk.mdx | 2 +- src/pages/docs/knowledge-base/features/ui.mdx | 2 +- src/pages/docs/knowledge-base/index.mdx | 2 +- src/pages/docs/observe/features/alerts.mdx | 2 +- src/pages/docs/observe/features/dashboard.mdx | 2 +- src/pages/docs/observe/features/evals.mdx | 2 +- .../features/manual-tracing/add-attributes-metadata-tags.mdx | 2 +- .../features/manual-tracing/add-events-exceptions-status.mdx | 2 +- .../features/manual-tracing/advanced-tracing-examples.mdx | 2 +- .../observe/features/manual-tracing/annotating-using-api.mdx | 2 +- .../observe/features/manual-tracing/create-tool-spans.mdx | 2 +- .../features/manual-tracing/get-current-span-context.mdx | 2 +- .../docs/observe/features/manual-tracing/in-line-evals.mdx | 2 +- .../manual-tracing/instrument-with-traceai-helpers.mdx | 2 +- .../observe/features/manual-tracing/langfuse-integration.mdx | 2 +- .../observe/features/manual-tracing/log-prompt-templates.mdx | 2 +- .../observe/features/manual-tracing/mask-span-attributes.mdx | 2 +- .../observe/features/manual-tracing/semantic-conventions.mdx | 2 +- .../observe/features/manual-tracing/set-session-user-id.mdx | 2 +- .../docs/observe/features/manual-tracing/set-up-tracing.mdx | 2 +- src/pages/docs/observe/features/quickstart.mdx | 2 +- src/pages/docs/observe/features/session.mdx | 2 +- src/pages/docs/observe/features/users.mdx | 2 +- src/pages/docs/observe/features/voice.mdx | 2 +- src/pages/docs/optimization/concepts/concept.mdx | 2 +- src/pages/docs/optimization/features/using-platform.mdx | 2 +- src/pages/docs/optimization/features/using-python-sdk.mdx | 2 +- src/pages/docs/prompt/concepts/understanding-prompts.mdx | 2 +- src/pages/docs/prompt/features/create-from-scratch.mdx | 2 +- src/pages/docs/prompt/features/create-from-template.mdx | 2 +- src/pages/docs/prompt/features/create-with-ai.mdx | 2 +- src/pages/docs/prompt/features/folders.mdx | 2 +- src/pages/docs/prompt/features/linked-traces.mdx | 2 +- src/pages/docs/prompt/features/sdk.mdx | 2 +- src/pages/docs/protect/features/run-protect.mdx | 2 +- src/pages/docs/prototype/features/choose-winner.mdx | 2 +- src/pages/docs/prototype/features/evals.mdx | 2 +- src/pages/docs/prototype/features/set-up-prototype.mdx | 2 +- src/pages/docs/quickstart/annotations.mdx | 2 +- src/pages/docs/quickstart/command-center-gateway.mdx | 2 +- src/pages/docs/quickstart/generate-synthetic-data.mdx | 2 +- src/pages/docs/quickstart/prompts.mdx | 2 +- src/pages/docs/quickstart/running-evals-in-simulation.mdx | 2 +- src/pages/docs/quickstart/setup-mcp-server.mdx | 2 +- src/pages/docs/quickstart/setup-observability.mdx | 2 +- src/pages/docs/sdk/datasets.mdx | 2 +- src/pages/docs/sdk/evals/autoeval.mdx | 2 +- src/pages/docs/sdk/evals/cloud-evals.mdx | 2 +- src/pages/docs/sdk/evals/code-security.mdx | 2 +- src/pages/docs/sdk/evals/distributed.mdx | 2 +- src/pages/docs/sdk/evals/evaluate.mdx | 2 +- src/pages/docs/sdk/evals/feedback.mdx | 2 +- src/pages/docs/sdk/evals/guardrails-module.mdx | 2 +- src/pages/docs/sdk/evals/llm-judge.mdx | 2 +- src/pages/docs/sdk/evals/local.mdx | 2 +- src/pages/docs/sdk/evals/metrics/agents.mdx | 2 +- src/pages/docs/sdk/evals/metrics/guardrails.mdx | 2 +- src/pages/docs/sdk/evals/metrics/hallucination.mdx | 2 +- src/pages/docs/sdk/evals/metrics/index.mdx | 2 +- src/pages/docs/sdk/evals/metrics/json.mdx | 2 +- src/pages/docs/sdk/evals/metrics/rag.mdx | 2 +- src/pages/docs/sdk/evals/metrics/string.mdx | 2 +- src/pages/docs/sdk/evals/otel.mdx | 2 +- src/pages/docs/sdk/evals/streaming.mdx | 2 +- src/pages/docs/sdk/index.mdx | 2 +- src/pages/docs/sdk/knowledgebase.mdx | 2 +- src/pages/docs/sdk/optimization.mdx | 2 +- src/pages/docs/sdk/protect.mdx | 2 +- src/pages/docs/sdk/simulate.mdx | 2 +- src/pages/docs/sdk/tracing.mdx | 2 +- src/pages/docs/self-hosting.mdx | 2 +- src/pages/docs/simulation/concepts/agent-definition.mdx | 2 +- src/pages/docs/simulation/concepts/global-nodes.mdx | 2 +- src/pages/docs/simulation/concepts/personas.mdx | 2 +- src/pages/docs/simulation/concepts/scenarios.mdx | 2 +- src/pages/docs/simulation/features/evaluate-tool-calling.mdx | 2 +- src/pages/docs/simulation/features/fix-my-agent.mdx | 2 +- src/pages/docs/simulation/features/observe-to-simulate.mdx | 2 +- src/pages/docs/simulation/features/prompt-simulation.mdx | 2 +- src/pages/docs/simulation/features/run-simulation.mdx | 2 +- src/pages/docs/simulation/features/simulation-using-sdk.mdx | 2 +- src/pages/docs/simulation/features/view-results.mdx | 2 +- src/pages/docs/tracing/concepts/index.mdx | 2 +- src/styles/global.css | 3 ++- 176 files changed, 179 insertions(+), 178 deletions(-) diff --git a/src/components/AiChatWidget.astro b/src/components/AiChatWidget.astro index 544b518a..0ca8ec5c 100644 --- a/src/components/AiChatWidget.astro +++ b/src/components/AiChatWidget.astro @@ -88,7 +88,7 @@ const turnstileSiteKey = import.meta.env.PUBLIC_TURNSTILE_SITE_KEY || '';
-

FutureAGI AI Assistant

+

FutureAGI AI Assistant

Ask me anything about the FutureAGI platform — I can search across all docs instantly.

diff --git a/src/components/GiscusComments.tsx b/src/components/GiscusComments.tsx index 2057f50a..20ec904c 100644 --- a/src/components/GiscusComments.tsx +++ b/src/components/GiscusComments.tsx @@ -28,7 +28,7 @@ export default function GiscusComments({ pagePath }: { pagePath: string }) { return (
-

Questions & Discussion

+

Questions & Discussion

); diff --git a/src/components/TableOfContents.astro b/src/components/TableOfContents.astro index 1c1cbfad..21780783 100644 --- a/src/components/TableOfContents.astro +++ b/src/components/TableOfContents.astro @@ -22,9 +22,9 @@ const feedbackUrl = `https://github.com/${GITHUB_REPO}/issues/new?title=${encode {toc.length > 0 && (
-

+

On this page -

+

diff --git a/src/pages/docs/simulation/features/prompt-simulation.mdx b/src/pages/docs/simulation/features/prompt-simulation.mdx index 62b8bb18..86bf089f 100644 --- a/src/pages/docs/simulation/features/prompt-simulation.mdx +++ b/src/pages/docs/simulation/features/prompt-simulation.mdx @@ -150,7 +150,7 @@ Before you start: have a **prompt template** with at least one saved **prompt ve --- -## Next Steps +
Next Steps
diff --git a/src/pages/docs/simulation/features/run-simulation.mdx b/src/pages/docs/simulation/features/run-simulation.mdx index e104d57b..031f75f0 100644 --- a/src/pages/docs/simulation/features/run-simulation.mdx +++ b/src/pages/docs/simulation/features/run-simulation.mdx @@ -49,7 +49,7 @@ Review the summary of your test configuration. Click **Create** to start the tes Once the test starts, you can monitor progress from the test detail page. See [View Results](/docs/simulation/features/view-results) for how to read scores, transcripts, and analytics. -## Next Steps +
Next Steps
diff --git a/src/pages/docs/simulation/features/simulation-using-sdk.mdx b/src/pages/docs/simulation/features/simulation-using-sdk.mdx index b6181391..65839261 100644 --- a/src/pages/docs/simulation/features/simulation-using-sdk.mdx +++ b/src/pages/docs/simulation/features/simulation-using-sdk.mdx @@ -133,7 +133,7 @@ You need: Python 3.10+, **FI_API_KEY** and **FI_SECRET_KEY**, a **chat simulatio --- -## Next Steps +
Next Steps
diff --git a/src/pages/docs/simulation/features/view-results.mdx b/src/pages/docs/simulation/features/view-results.mdx index 11cda9e6..62a1487e 100644 --- a/src/pages/docs/simulation/features/view-results.mdx +++ b/src/pages/docs/simulation/features/view-results.mdx @@ -106,7 +106,7 @@ Clicking on a specific call opens a detail drawer showing: --- -## Next Steps +
Next Steps
diff --git a/src/pages/docs/tracing/concepts/index.mdx b/src/pages/docs/tracing/concepts/index.mdx index c36ed2b1..70dc355c 100644 --- a/src/pages/docs/tracing/concepts/index.mdx +++ b/src/pages/docs/tracing/concepts/index.mdx @@ -42,7 +42,7 @@ Each **trace** is one request or execution. Each **span** is one operation (LLM, --- -## Next Steps +
Next Steps
diff --git a/src/styles/global.css b/src/styles/global.css index 9502c7ce..4498ae91 100644 --- a/src/styles/global.css +++ b/src/styles/global.css @@ -227,7 +227,8 @@ code:not(pre code) { line-height: 1.3; } - h2 { + h2, + .docs-section-title { font-size: 1.375rem; font-weight: 600; letter-spacing: -0.01em; From 7be3468b9a1f4da3be4c871ec16ee09b71fe1ca9 Mon Sep 17 00:00:00 2001 From: Shibu Date: Wed, 6 May 2026 20:48:19 +0530 Subject: [PATCH 5/7] fix: harden check-deleted-pages script and restore card title size - process.exit(1) on git diff failure so CI surfaces the error instead of silently passing - regex updated to match both single and double quoted redirect entries - card title p element gets explicit text-[1.125rem] to match original h3 size Co-Authored-By: Claude Sonnet 4.6 --- scripts/check-deleted-pages.mjs | 6 +++--- src/components/docs/Card.astro | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/check-deleted-pages.mjs b/scripts/check-deleted-pages.mjs index 897e61c8..5361750d 100644 --- a/scripts/check-deleted-pages.mjs +++ b/scripts/check-deleted-pages.mjs @@ -27,8 +27,8 @@ try { ); deletedFiles = output.trim().split('\n').filter(Boolean); } catch { - console.log('Could not determine deleted files — skipping check.'); - process.exit(0); + console.error('Could not determine deleted files — failing to surface the error.'); + process.exit(1); } } @@ -50,7 +50,7 @@ function fileToPath(file) { // Load redirects map const redirectsRaw = readFileSync('src/lib/redirects.ts', 'utf-8'); -const redirectEntries = [...redirectsRaw.matchAll(/'([^']+)':\s*'([^']+)'/g)]; +const redirectEntries = [...redirectsRaw.matchAll(/["']([^"']+)["']:\s*["']([^"']+)["']/g)]; const redirectMap = new Set(redirectEntries.map(([, from]) => from)); // Check each deleted page diff --git a/src/components/docs/Card.astro b/src/components/docs/Card.astro index 5e1e4e10..4210fdc1 100644 --- a/src/components/docs/Card.astro +++ b/src/components/docs/Card.astro @@ -87,7 +87,7 @@ const Tag = href ? 'a' : 'div'; )}

{title} From d896620f46b7d11838bcd7f188415fd13aaf616e Mon Sep 17 00:00:00 2001 From: Shibu Date: Thu, 7 May 2026 17:42:38 +0530 Subject: [PATCH 6/7] revert: restore ## Next Steps and ## Related as proper h2 headings Reverts the 171-file change from bae9308 that converted these sections to

. Restoring them as ## headings per team decision. Co-Authored-By: Claude Sonnet 4.6 --- src/pages/docs/admin-settings/ai-providers.mdx | 2 +- src/pages/docs/admin-settings/api-keys.mdx | 2 +- src/pages/docs/admin-settings/billing-pricing.mdx | 2 +- src/pages/docs/admin-settings/integrations.mdx | 2 +- src/pages/docs/admin-settings/organization-settings.mdx | 2 +- src/pages/docs/admin-settings/profile-security.mdx | 2 +- src/pages/docs/admin-settings/usage-summary.mdx | 2 +- src/pages/docs/admin-settings/user-management.mdx | 2 +- src/pages/docs/admin-settings/workspace-management.mdx | 2 +- .../concepts/understanding-agent-playground.mdx | 2 +- .../docs/agent-playground/concepts/versions-and-execution.mdx | 2 +- src/pages/docs/agent-playground/features/build-workflow.mdx | 2 +- src/pages/docs/agent-playground/features/create-graph.mdx | 2 +- src/pages/docs/agent-playground/features/run-and-monitor.mdx | 2 +- src/pages/docs/annotations/concepts/scores.mdx | 2 +- src/pages/docs/annotations/features/labels.mdx | 2 +- src/pages/docs/annotations/features/queues.mdx | 2 +- src/pages/docs/annotations/quickstart.mdx | 2 +- src/pages/docs/command-center/admin/organizations.mdx | 2 +- src/pages/docs/command-center/api/assistants.mdx | 2 +- src/pages/docs/command-center/api/async-batch.mdx | 2 +- src/pages/docs/command-center/api/chat.mdx | 2 +- src/pages/docs/command-center/api/embeddings.mdx | 2 +- src/pages/docs/command-center/api/endpoints.mdx | 2 +- src/pages/docs/command-center/api/files.mdx | 2 +- src/pages/docs/command-center/api/headers.mdx | 2 +- src/pages/docs/command-center/api/media.mdx | 2 +- src/pages/docs/command-center/concepts/api-reference.mdx | 2 +- src/pages/docs/command-center/concepts/configuration.mdx | 2 +- src/pages/docs/command-center/concepts/core.mdx | 2 +- src/pages/docs/command-center/concepts/platform-integration.mdx | 2 +- src/pages/docs/command-center/concepts/virtual-keys.mdx | 2 +- src/pages/docs/command-center/deployment/self-hosted.mdx | 2 +- src/pages/docs/command-center/features/caching.mdx | 2 +- src/pages/docs/command-center/features/cost-tracking.mdx | 2 +- src/pages/docs/command-center/features/custom-properties.mdx | 2 +- src/pages/docs/command-center/features/guardrails.mdx | 2 +- src/pages/docs/command-center/features/mcp-a2a.mdx | 2 +- src/pages/docs/command-center/features/observability.mdx | 2 +- src/pages/docs/command-center/features/providers.mdx | 2 +- src/pages/docs/command-center/features/rate-limiting.mdx | 2 +- src/pages/docs/command-center/features/routing.mdx | 2 +- src/pages/docs/command-center/features/self-hosted-models.mdx | 2 +- src/pages/docs/command-center/features/shadow-experiments.mdx | 2 +- src/pages/docs/command-center/features/streaming.mdx | 2 +- src/pages/docs/command-center/features/webhooks.mdx | 2 +- src/pages/docs/command-center/guides/errors.mdx | 2 +- src/pages/docs/command-center/guides/troubleshooting.mdx | 2 +- src/pages/docs/command-center/quickstart.mdx | 2 +- src/pages/docs/cookbook/chat-simulation-fix-agent.mdx | 2 +- src/pages/docs/cookbook/crewai-research-team.mdx | 2 +- src/pages/docs/cookbook/error-feed/google-adk-multi-agent.mdx | 2 +- src/pages/docs/cookbook/observability.mdx | 2 +- src/pages/docs/cookbook/quickstart/distributed-tracing.mdx | 2 +- src/pages/docs/dataset/concept/dynamic-column.mdx | 2 +- src/pages/docs/dataset/concept/static-column.mdx | 2 +- src/pages/docs/dataset/concept/synthetic-data.mdx | 2 +- src/pages/docs/dataset/concept/understanding-dataset.mdx | 2 +- src/pages/docs/dataset/features/add-columns.mdx | 2 +- src/pages/docs/dataset/features/add-rows.mdx | 2 +- src/pages/docs/dataset/features/annotate.mdx | 2 +- src/pages/docs/dataset/features/create.mdx | 2 +- src/pages/docs/dataset/features/experiments.mdx | 2 +- src/pages/docs/dataset/features/run-prompt.mdx | 2 +- src/pages/docs/dataset/index.mdx | 2 +- src/pages/docs/error-feed/concepts/scoring.mdx | 2 +- src/pages/docs/error-feed/concepts/severity-and-status.mdx | 2 +- src/pages/docs/error-feed/concepts/taxonomy.mdx | 2 +- src/pages/docs/error-feed/features/deep-analysis.mdx | 2 +- src/pages/docs/error-feed/features/issue-overview.mdx | 2 +- src/pages/docs/error-feed/features/linear-integration.mdx | 2 +- src/pages/docs/error-feed/features/metadata-panel.mdx | 2 +- src/pages/docs/error-feed/features/sampling.mdx | 2 +- src/pages/docs/error-feed/features/state-graph.mdx | 2 +- src/pages/docs/error-feed/features/the-feed.mdx | 2 +- src/pages/docs/error-feed/features/traces.mdx | 2 +- src/pages/docs/error-feed/features/trends.mdx | 2 +- src/pages/docs/error-feed/features/triage-workflow.mdx | 2 +- src/pages/docs/evaluation/features/cicd.mdx | 2 +- src/pages/docs/evaluation/features/custom-models.mdx | 2 +- src/pages/docs/evaluation/features/custom.mdx | 2 +- src/pages/docs/evaluation/features/evaluate.mdx | 2 +- src/pages/docs/evaluation/features/futureagi-models.mdx | 2 +- src/pages/docs/falcon-ai/features/chat.mdx | 2 +- src/pages/docs/falcon-ai/features/mcp-connectors.mdx | 2 +- src/pages/docs/falcon-ai/features/skills.mdx | 2 +- src/pages/docs/falcon-ai/index.mdx | 2 +- src/pages/docs/knowledge-base/concepts/concept.mdx | 2 +- src/pages/docs/knowledge-base/features/sdk.mdx | 2 +- src/pages/docs/knowledge-base/features/ui.mdx | 2 +- src/pages/docs/knowledge-base/index.mdx | 2 +- src/pages/docs/observe/features/alerts.mdx | 2 +- src/pages/docs/observe/features/dashboard.mdx | 2 +- src/pages/docs/observe/features/evals.mdx | 2 +- .../features/manual-tracing/add-attributes-metadata-tags.mdx | 2 +- .../features/manual-tracing/add-events-exceptions-status.mdx | 2 +- .../features/manual-tracing/advanced-tracing-examples.mdx | 2 +- .../observe/features/manual-tracing/annotating-using-api.mdx | 2 +- .../docs/observe/features/manual-tracing/create-tool-spans.mdx | 2 +- .../features/manual-tracing/get-current-span-context.mdx | 2 +- .../docs/observe/features/manual-tracing/in-line-evals.mdx | 2 +- .../features/manual-tracing/instrument-with-traceai-helpers.mdx | 2 +- .../observe/features/manual-tracing/langfuse-integration.mdx | 2 +- .../observe/features/manual-tracing/log-prompt-templates.mdx | 2 +- .../observe/features/manual-tracing/mask-span-attributes.mdx | 2 +- .../observe/features/manual-tracing/semantic-conventions.mdx | 2 +- .../observe/features/manual-tracing/set-session-user-id.mdx | 2 +- .../docs/observe/features/manual-tracing/set-up-tracing.mdx | 2 +- src/pages/docs/observe/features/quickstart.mdx | 2 +- src/pages/docs/observe/features/session.mdx | 2 +- src/pages/docs/observe/features/users.mdx | 2 +- src/pages/docs/observe/features/voice.mdx | 2 +- src/pages/docs/optimization/concepts/concept.mdx | 2 +- src/pages/docs/optimization/features/using-platform.mdx | 2 +- src/pages/docs/optimization/features/using-python-sdk.mdx | 2 +- src/pages/docs/prompt/concepts/understanding-prompts.mdx | 2 +- src/pages/docs/prompt/features/create-from-scratch.mdx | 2 +- src/pages/docs/prompt/features/create-from-template.mdx | 2 +- src/pages/docs/prompt/features/create-with-ai.mdx | 2 +- src/pages/docs/prompt/features/folders.mdx | 2 +- src/pages/docs/prompt/features/linked-traces.mdx | 2 +- src/pages/docs/prompt/features/sdk.mdx | 2 +- src/pages/docs/protect/features/run-protect.mdx | 2 +- src/pages/docs/prototype/features/choose-winner.mdx | 2 +- src/pages/docs/prototype/features/evals.mdx | 2 +- src/pages/docs/prototype/features/set-up-prototype.mdx | 2 +- src/pages/docs/quickstart/annotations.mdx | 2 +- src/pages/docs/quickstart/command-center-gateway.mdx | 2 +- src/pages/docs/quickstart/generate-synthetic-data.mdx | 2 +- src/pages/docs/quickstart/prompts.mdx | 2 +- src/pages/docs/quickstart/running-evals-in-simulation.mdx | 2 +- src/pages/docs/quickstart/setup-mcp-server.mdx | 2 +- src/pages/docs/quickstart/setup-observability.mdx | 2 +- src/pages/docs/sdk/datasets.mdx | 2 +- src/pages/docs/sdk/evals/autoeval.mdx | 2 +- src/pages/docs/sdk/evals/cloud-evals.mdx | 2 +- src/pages/docs/sdk/evals/code-security.mdx | 2 +- src/pages/docs/sdk/evals/distributed.mdx | 2 +- src/pages/docs/sdk/evals/evaluate.mdx | 2 +- src/pages/docs/sdk/evals/feedback.mdx | 2 +- src/pages/docs/sdk/evals/guardrails-module.mdx | 2 +- src/pages/docs/sdk/evals/llm-judge.mdx | 2 +- src/pages/docs/sdk/evals/local.mdx | 2 +- src/pages/docs/sdk/evals/metrics/agents.mdx | 2 +- src/pages/docs/sdk/evals/metrics/guardrails.mdx | 2 +- src/pages/docs/sdk/evals/metrics/hallucination.mdx | 2 +- src/pages/docs/sdk/evals/metrics/index.mdx | 2 +- src/pages/docs/sdk/evals/metrics/json.mdx | 2 +- src/pages/docs/sdk/evals/metrics/rag.mdx | 2 +- src/pages/docs/sdk/evals/metrics/string.mdx | 2 +- src/pages/docs/sdk/evals/otel.mdx | 2 +- src/pages/docs/sdk/evals/streaming.mdx | 2 +- src/pages/docs/sdk/index.mdx | 2 +- src/pages/docs/sdk/knowledgebase.mdx | 2 +- src/pages/docs/sdk/optimization.mdx | 2 +- src/pages/docs/sdk/protect.mdx | 2 +- src/pages/docs/sdk/simulate.mdx | 2 +- src/pages/docs/sdk/tracing.mdx | 2 +- src/pages/docs/self-hosting.mdx | 2 +- src/pages/docs/simulation/concepts/agent-definition.mdx | 2 +- src/pages/docs/simulation/concepts/global-nodes.mdx | 2 +- src/pages/docs/simulation/concepts/personas.mdx | 2 +- src/pages/docs/simulation/concepts/scenarios.mdx | 2 +- src/pages/docs/simulation/features/evaluate-tool-calling.mdx | 2 +- src/pages/docs/simulation/features/fix-my-agent.mdx | 2 +- src/pages/docs/simulation/features/observe-to-simulate.mdx | 2 +- src/pages/docs/simulation/features/prompt-simulation.mdx | 2 +- src/pages/docs/simulation/features/run-simulation.mdx | 2 +- src/pages/docs/simulation/features/simulation-using-sdk.mdx | 2 +- src/pages/docs/simulation/features/view-results.mdx | 2 +- src/pages/docs/tracing/concepts/index.mdx | 2 +- 171 files changed, 171 insertions(+), 171 deletions(-) diff --git a/src/pages/docs/admin-settings/ai-providers.mdx b/src/pages/docs/admin-settings/ai-providers.mdx index 1e85d451..042ddf9e 100644 --- a/src/pages/docs/admin-settings/ai-providers.mdx +++ b/src/pages/docs/admin-settings/ai-providers.mdx @@ -52,7 +52,7 @@ Use the filter buttons to narrow the view: Each workspace can have its own AI provider configuration. Go to **Settings > Workspace > [workspace name] > AI Providers** to configure workspace-specific providers. Workspace providers override organization-level providers for that workspace. -
Next Steps
+## Next Steps - [Workspace Management](/docs/admin-settings/workspace-management) - Organize projects and teams - [Integrations](/docs/admin-settings/integrations) - Connect external tools diff --git a/src/pages/docs/admin-settings/api-keys.mdx b/src/pages/docs/admin-settings/api-keys.mdx index 198c0f13..a5ca2397 100644 --- a/src/pages/docs/admin-settings/api-keys.mdx +++ b/src/pages/docs/admin-settings/api-keys.mdx @@ -54,7 +54,7 @@ Deleting a key immediately revokes access for any application using it. Make sur Never commit API keys to version control. Use environment variables or a secret manager. -
Next Steps
+## Next Steps - [Installation](/docs/installation) - [Roles & Permissions](/docs/roles-and-permissions) diff --git a/src/pages/docs/admin-settings/billing-pricing.mdx b/src/pages/docs/admin-settings/billing-pricing.mdx index f5a742d9..a0a6f5c5 100644 --- a/src/pages/docs/admin-settings/billing-pricing.mdx +++ b/src/pages/docs/admin-settings/billing-pricing.mdx @@ -53,7 +53,7 @@ Update your billing details (name, email, address) from the Billing page. Click View past invoices in the table at the bottom of the Billing page. Each invoice shows the date, amount, and status. -
Next Steps
+## Next Steps - [Usage Summary](/docs/admin-settings/usage-summary) - Track your organization's usage metrics - [API Keys](/docs/admin-settings/api-keys) - Manage your API keys diff --git a/src/pages/docs/admin-settings/integrations.mdx b/src/pages/docs/admin-settings/integrations.mdx index a9e552e5..4b4a9088 100644 --- a/src/pages/docs/admin-settings/integrations.mdx +++ b/src/pages/docs/admin-settings/integrations.mdx @@ -62,7 +62,7 @@ When connecting Datadog, select your site: | AP1 | Asia-Pacific | | US1-FED | US Government | -
Next Steps
+## Next Steps - [Workspace Management](/docs/admin-settings/workspace-management) - Organize projects and teams - [Observability](/docs/tracing/auto) - Monitor your AI applications diff --git a/src/pages/docs/admin-settings/organization-settings.mdx b/src/pages/docs/admin-settings/organization-settings.mdx index db4833d1..49c39afb 100644 --- a/src/pages/docs/admin-settings/organization-settings.mdx +++ b/src/pages/docs/admin-settings/organization-settings.mdx @@ -50,7 +50,7 @@ Access: **Owner** and **Admin** only. Enforcing 2FA is recommended for organizations handling sensitive data or operating in regulated industries. -
Next Steps
+## Next Steps - [User Management](/docs/admin-settings/user-management) - [Profile & Security](/docs/admin-settings/profile-security) diff --git a/src/pages/docs/admin-settings/profile-security.mdx b/src/pages/docs/admin-settings/profile-security.mdx index e9b9288e..5611bc91 100644 --- a/src/pages/docs/admin-settings/profile-security.mdx +++ b/src/pages/docs/admin-settings/profile-security.mdx @@ -68,7 +68,7 @@ Recovery codes are backup codes you can use if you lose access to your 2FA devic Store recovery codes in a secure location separate from your authenticator device. If you lose both, you will need to contact support. -
Next Steps
+## Next Steps - [Organization Settings](/docs/admin-settings/organization-settings) - [Roles & Permissions](/docs/roles-and-permissions) diff --git a/src/pages/docs/admin-settings/usage-summary.mdx b/src/pages/docs/admin-settings/usage-summary.mdx index af848b7a..17c78e46 100644 --- a/src/pages/docs/admin-settings/usage-summary.mdx +++ b/src/pages/docs/admin-settings/usage-summary.mdx @@ -35,7 +35,7 @@ The page displays usage metrics for the selected month and workspace. Specific m Use the workspace filter to compare usage across different teams or projects. -
Next Steps
+## Next Steps - [Billing & Pricing](/docs/admin-settings/billing-pricing) - Manage your subscription and payments - [API Keys](/docs/admin-settings/api-keys) - Manage your API keys diff --git a/src/pages/docs/admin-settings/user-management.mdx b/src/pages/docs/admin-settings/user-management.mdx index 233f9d66..3c63550d 100644 --- a/src/pages/docs/admin-settings/user-management.mdx +++ b/src/pages/docs/admin-settings/user-management.mdx @@ -51,7 +51,7 @@ When editing a user, you can assign or remove them from specific workspaces. Wor For a detailed breakdown of what each role can access, see [Roles & Permissions](/docs/roles-and-permissions). -
Next Steps
+## Next Steps - [Roles & Permissions](/docs/roles-and-permissions) - [Organization Settings](/docs/admin-settings/organization-settings) diff --git a/src/pages/docs/admin-settings/workspace-management.mdx b/src/pages/docs/admin-settings/workspace-management.mdx index abbcadbb..6d4c18bb 100644 --- a/src/pages/docs/admin-settings/workspace-management.mdx +++ b/src/pages/docs/admin-settings/workspace-management.mdx @@ -38,7 +38,7 @@ Each workspace has its own settings page with these sections: Organization-level roles and workspace-level roles are separate. A user can be a "Member" at the org level but a "workspace_admin" in a specific workspace. See [Roles & Permissions](/docs/roles-and-permissions) for how these interact. -
Next Steps
+## Next Steps - [User Management](/docs/admin-settings/user-management) - Add and manage organization members - [AI Providers](/docs/admin-settings/ai-providers) - Configure LLM providers per workspace diff --git a/src/pages/docs/agent-playground/concepts/understanding-agent-playground.mdx b/src/pages/docs/agent-playground/concepts/understanding-agent-playground.mdx index 55ffd0f2..baf8156c 100644 --- a/src/pages/docs/agent-playground/concepts/understanding-agent-playground.mdx +++ b/src/pages/docs/agent-playground/concepts/understanding-agent-playground.mdx @@ -93,7 +93,7 @@ The platform ships with built-in templates (LLM Prompt, Agent) and supports cust --- -
Next Steps
+## Next Steps - [Versions & Execution](/docs/agent-playground/concepts/versions-and-execution): How the version lifecycle and execution model work - [Create a Graph](/docs/agent-playground/features/create-graph): Create your first workflow diff --git a/src/pages/docs/agent-playground/concepts/versions-and-execution.mdx b/src/pages/docs/agent-playground/concepts/versions-and-execution.mdx index f1633cda..00a0b377 100644 --- a/src/pages/docs/agent-playground/concepts/versions-and-execution.mdx +++ b/src/pages/docs/agent-playground/concepts/versions-and-execution.mdx @@ -92,7 +92,7 @@ Each piece of data flowing through a port is validated against the port's JSON S --- -
Next Steps
+## Next Steps - [Create a Graph](/docs/agent-playground/features/create-graph): Create your first workflow and manage versions - [Build a Workflow](/docs/agent-playground/features/build-workflow): Add nodes, configure them, and connect them diff --git a/src/pages/docs/agent-playground/features/build-workflow.mdx b/src/pages/docs/agent-playground/features/build-workflow.mdx index 1d28eee6..e88aeb49 100644 --- a/src/pages/docs/agent-playground/features/build-workflow.mdx +++ b/src/pages/docs/agent-playground/features/build-workflow.mdx @@ -120,7 +120,7 @@ Use the **Global Variables** panel (accessible from the right side of the builde --- -
Next Steps
+## Next Steps - [Run & Monitor](/docs/agent-playground/features/run-and-monitor): Execute your workflow and watch results in real time - [Versions & Execution](/docs/agent-playground/concepts/versions-and-execution): Understand version lifecycle and execution model diff --git a/src/pages/docs/agent-playground/features/create-graph.mdx b/src/pages/docs/agent-playground/features/create-graph.mdx index bb733f9f..b2a3e4bd 100644 --- a/src/pages/docs/agent-playground/features/create-graph.mdx +++ b/src/pages/docs/agent-playground/features/create-graph.mdx @@ -62,7 +62,7 @@ If you try to edit a node while viewing a non-draft version, the platform prompt --- -
Next Steps
+## Next Steps - [Build a Workflow](/docs/agent-playground/features/build-workflow): Add nodes, configure them, and connect them into a pipeline - [Run & Monitor](/docs/agent-playground/features/run-and-monitor): Execute your workflow and inspect results diff --git a/src/pages/docs/agent-playground/features/run-and-monitor.mdx b/src/pages/docs/agent-playground/features/run-and-monitor.mdx index 868f6252..ab6ef0b7 100644 --- a/src/pages/docs/agent-playground/features/run-and-monitor.mdx +++ b/src/pages/docs/agent-playground/features/run-and-monitor.mdx @@ -98,7 +98,7 @@ Select any execution to see: --- -
Next Steps
+## Next Steps - [Build a Workflow](/docs/agent-playground/features/build-workflow): Modify your workflow and add more nodes - [Create a Graph](/docs/agent-playground/features/create-graph): Create another graph or manage versions diff --git a/src/pages/docs/annotations/concepts/scores.mdx b/src/pages/docs/annotations/concepts/scores.mdx index a8337364..b323a3b6 100644 --- a/src/pages/docs/annotations/concepts/scores.mdx +++ b/src/pages/docs/annotations/concepts/scores.mdx @@ -98,7 +98,7 @@ Scores created through different paths stay synchronized: This ensures a single source of truth regardless of where the annotation originated. -
Next Steps
+## Next Steps diff --git a/src/pages/docs/annotations/features/labels.mdx b/src/pages/docs/annotations/features/labels.mdx index 2dd9f6f3..9fc1931d 100644 --- a/src/pages/docs/annotations/features/labels.mdx +++ b/src/pages/docs/annotations/features/labels.mdx @@ -117,7 +117,7 @@ Start with a few simple labels (e.g. a 5-star quality rating and a categorical s --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/annotations/features/queues.mdx b/src/pages/docs/annotations/features/queues.mdx index 5b0c8b17..3d865d4d 100644 --- a/src/pages/docs/annotations/features/queues.mdx +++ b/src/pages/docs/annotations/features/queues.mdx @@ -150,7 +150,7 @@ When a completed queue receives new items, it automatically transitions back to --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/annotations/quickstart.mdx b/src/pages/docs/annotations/quickstart.mdx index 5e77e705..f6090188 100644 --- a/src/pages/docs/annotations/quickstart.mdx +++ b/src/pages/docs/annotations/quickstart.mdx @@ -79,7 +79,7 @@ In this walkthrough you will create an annotation label, set up a queue, add tra - **S** -- Skip the current item -
Next Steps
+## Next Steps diff --git a/src/pages/docs/command-center/admin/organizations.mdx b/src/pages/docs/command-center/admin/organizations.mdx index 68a71d6a..ab99f00b 100644 --- a/src/pages/docs/command-center/admin/organizations.mdx +++ b/src/pages/docs/command-center/admin/organizations.mdx @@ -159,7 +159,7 @@ For internal teams, use a single org with per-key restrictions: --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/command-center/api/assistants.mdx b/src/pages/docs/command-center/api/assistants.mdx index 14e2337d..15e1a91f 100644 --- a/src/pages/docs/command-center/api/assistants.mdx +++ b/src/pages/docs/command-center/api/assistants.mdx @@ -329,7 +329,7 @@ The `x-agentcc-*` response headers are returned on every Assistants API response --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/command-center/api/async-batch.mdx b/src/pages/docs/command-center/api/async-batch.mdx index ffb88c26..19e2e9af 100644 --- a/src/pages/docs/command-center/api/async-batch.mdx +++ b/src/pages/docs/command-center/api/async-batch.mdx @@ -244,7 +244,7 @@ if batch.output_file_id: --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/command-center/api/chat.mdx b/src/pages/docs/command-center/api/chat.mdx index d6f403fd..475168e6 100644 --- a/src/pages/docs/command-center/api/chat.mdx +++ b/src/pages/docs/command-center/api/chat.mdx @@ -676,7 +676,7 @@ Agent Command Center translates the request to each provider's native format. Yo --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/command-center/api/embeddings.mdx b/src/pages/docs/command-center/api/embeddings.mdx index e6be8453..11533322 100644 --- a/src/pages/docs/command-center/api/embeddings.mdx +++ b/src/pages/docs/command-center/api/embeddings.mdx @@ -402,7 +402,7 @@ print(response.agentcc.cost) # 0 (no provider call) --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/command-center/api/endpoints.mdx b/src/pages/docs/command-center/api/endpoints.mdx index 400e54ed..045fa143 100644 --- a/src/pages/docs/command-center/api/endpoints.mdx +++ b/src/pages/docs/command-center/api/endpoints.mdx @@ -296,7 +296,7 @@ Requires admin token. --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/command-center/api/files.mdx b/src/pages/docs/command-center/api/files.mdx index 36bb2951..5b7275e6 100644 --- a/src/pages/docs/command-center/api/files.mdx +++ b/src/pages/docs/command-center/api/files.mdx @@ -222,7 +222,7 @@ Max file size: 512 MB. Max files per vector store: 10,000. --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/command-center/api/headers.mdx b/src/pages/docs/command-center/api/headers.mdx index 3ad7a9be..f5299fde 100644 --- a/src/pages/docs/command-center/api/headers.mdx +++ b/src/pages/docs/command-center/api/headers.mdx @@ -273,7 +273,7 @@ curl -X POST https://gateway.futureagi.com/v1/chat/completions \ --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/command-center/api/media.mdx b/src/pages/docs/command-center/api/media.mdx index d9d93cd7..a6914658 100644 --- a/src/pages/docs/command-center/api/media.mdx +++ b/src/pages/docs/command-center/api/media.mdx @@ -421,7 +421,7 @@ Available models depend on which providers are configured for your organization. --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/command-center/concepts/api-reference.mdx b/src/pages/docs/command-center/concepts/api-reference.mdx index 49c55760..fe6482f1 100644 --- a/src/pages/docs/command-center/concepts/api-reference.mdx +++ b/src/pages/docs/command-center/concepts/api-reference.mdx @@ -357,7 +357,7 @@ curl -X POST https://gateway.futureagi.com/v1/audio/transcriptions \ --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/command-center/concepts/configuration.mdx b/src/pages/docs/command-center/concepts/configuration.mdx index cbfe5d14..041b9360 100644 --- a/src/pages/docs/command-center/concepts/configuration.mdx +++ b/src/pages/docs/command-center/concepts/configuration.mdx @@ -390,7 +390,7 @@ The `GatewayConfig` dataclass groups all per-request config overrides: --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/command-center/concepts/core.mdx b/src/pages/docs/command-center/concepts/core.mdx index e33faae2..2143a99f 100644 --- a/src/pages/docs/command-center/concepts/core.mdx +++ b/src/pages/docs/command-center/concepts/core.mdx @@ -172,7 +172,7 @@ Streaming requests bypass the cache entirely - both on read and write. This is b --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/command-center/concepts/platform-integration.mdx b/src/pages/docs/command-center/concepts/platform-integration.mdx index 8d2bf93f..336d3ad7 100644 --- a/src/pages/docs/command-center/concepts/platform-integration.mdx +++ b/src/pages/docs/command-center/concepts/platform-integration.mdx @@ -131,7 +131,7 @@ The `x-agentcc-metadata` header (or `metadata=` parameter in the SDK) is how you --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/command-center/concepts/virtual-keys.mdx b/src/pages/docs/command-center/concepts/virtual-keys.mdx index c113e1be..b67cf2d0 100644 --- a/src/pages/docs/command-center/concepts/virtual-keys.mdx +++ b/src/pages/docs/command-center/concepts/virtual-keys.mdx @@ -274,7 +274,7 @@ Instead of listing individual models on each key, assign access group names. Ali --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/command-center/deployment/self-hosted.mdx b/src/pages/docs/command-center/deployment/self-hosted.mdx index 4ce922af..85b27154 100644 --- a/src/pages/docs/command-center/deployment/self-hosted.mdx +++ b/src/pages/docs/command-center/deployment/self-hosted.mdx @@ -366,7 +366,7 @@ View logs from the container: docker logs -f agentcc-gateway ``` -
Next Steps
+## Next Steps diff --git a/src/pages/docs/command-center/features/caching.mdx b/src/pages/docs/command-center/features/caching.mdx index a2f57205..b5538669 100644 --- a/src/pages/docs/command-center/features/caching.mdx +++ b/src/pages/docs/command-center/features/caching.mdx @@ -207,7 +207,7 @@ Backend configuration is set at the gateway level in `config.yaml`. If you're us --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/command-center/features/cost-tracking.mdx b/src/pages/docs/command-center/features/cost-tracking.mdx index a039da41..b99c8728 100644 --- a/src/pages/docs/command-center/features/cost-tracking.mdx +++ b/src/pages/docs/command-center/features/cost-tracking.mdx @@ -248,7 +248,7 @@ Budgets are configured on the [Rate limiting & budgets](/docs/command-center/fea --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/command-center/features/custom-properties.mdx b/src/pages/docs/command-center/features/custom-properties.mdx index bfb31560..0881ac62 100644 --- a/src/pages/docs/command-center/features/custom-properties.mdx +++ b/src/pages/docs/command-center/features/custom-properties.mdx @@ -102,7 +102,7 @@ The **Log Preview** panel on the Custom Properties page shows how property value --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/command-center/features/guardrails.mdx b/src/pages/docs/command-center/features/guardrails.mdx index 6062ec4a..6837f334 100644 --- a/src/pages/docs/command-center/features/guardrails.mdx +++ b/src/pages/docs/command-center/features/guardrails.mdx @@ -614,7 +614,7 @@ client.feedback.create( --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/command-center/features/mcp-a2a.mdx b/src/pages/docs/command-center/features/mcp-a2a.mdx index fbffcf35..b6f64709 100644 --- a/src/pages/docs/command-center/features/mcp-a2a.mdx +++ b/src/pages/docs/command-center/features/mcp-a2a.mdx @@ -415,7 +415,7 @@ Agent Command Center's agent card specifies which schemes it supports. When rout --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/command-center/features/observability.mdx b/src/pages/docs/command-center/features/observability.mdx index f0f64bad..707faf7a 100644 --- a/src/pages/docs/command-center/features/observability.mdx +++ b/src/pages/docs/command-center/features/observability.mdx @@ -209,7 +209,7 @@ Configure alerts to get notified about issues. See [Cost tracking > Budget alert --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/command-center/features/providers.mdx b/src/pages/docs/command-center/features/providers.mdx index e75395dc..7f079971 100644 --- a/src/pages/docs/command-center/features/providers.mdx +++ b/src/pages/docs/command-center/features/providers.mdx @@ -327,7 +327,7 @@ See [Failover & circuit breaking](/docs/command-center/features/routing) for con --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/command-center/features/rate-limiting.mdx b/src/pages/docs/command-center/features/rate-limiting.mdx index 03f1cb31..85bfea70 100644 --- a/src/pages/docs/command-center/features/rate-limiting.mdx +++ b/src/pages/docs/command-center/features/rate-limiting.mdx @@ -333,7 +333,7 @@ The remaining balance is returned in the `x-agentcc-credits-remaining` response --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/command-center/features/routing.mdx b/src/pages/docs/command-center/features/routing.mdx index e25f50ec..ebbf1a65 100644 --- a/src/pages/docs/command-center/features/routing.mdx +++ b/src/pages/docs/command-center/features/routing.mdx @@ -551,7 +551,7 @@ You are billed by every provider that receives the request, not just the winner. --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/command-center/features/self-hosted-models.mdx b/src/pages/docs/command-center/features/self-hosted-models.mdx index dfbc15f5..328ff4d0 100644 --- a/src/pages/docs/command-center/features/self-hosted-models.mdx +++ b/src/pages/docs/command-center/features/self-hosted-models.mdx @@ -177,7 +177,7 @@ response = client.chat.completions.create( --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/command-center/features/shadow-experiments.mdx b/src/pages/docs/command-center/features/shadow-experiments.mdx index 26b8aea2..6b469ef1 100644 --- a/src/pages/docs/command-center/features/shadow-experiments.mdx +++ b/src/pages/docs/command-center/features/shadow-experiments.mdx @@ -175,7 +175,7 @@ Shadow results appear in the Future AGI dashboard after periodic sync. Direct AP - Shadow calls have a 30-second timeout. Timeouts are recorded as errors but don't affect the primary response - Shadow failures never affect the user-facing response -
Next Steps
+## Next Steps diff --git a/src/pages/docs/command-center/features/streaming.mdx b/src/pages/docs/command-center/features/streaming.mdx index 62f148c9..3bb69117 100644 --- a/src/pages/docs/command-center/features/streaming.mdx +++ b/src/pages/docs/command-center/features/streaming.mdx @@ -216,7 +216,7 @@ Your application receives identical SSE events regardless of the underlying prov --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/command-center/features/webhooks.mdx b/src/pages/docs/command-center/features/webhooks.mdx index 78536f34..614e3a8c 100644 --- a/src/pages/docs/command-center/features/webhooks.mdx +++ b/src/pages/docs/command-center/features/webhooks.mdx @@ -137,7 +137,7 @@ The **Delivery Log** tab on the Webhooks page shows the status of every webhook --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/command-center/guides/errors.mdx b/src/pages/docs/command-center/guides/errors.mdx index 0c02218c..f1cafac0 100644 --- a/src/pages/docs/command-center/guides/errors.mdx +++ b/src/pages/docs/command-center/guides/errors.mdx @@ -314,7 +314,7 @@ except APIError as e: --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/command-center/guides/troubleshooting.mdx b/src/pages/docs/command-center/guides/troubleshooting.mdx index 542cda17..5ad63d47 100644 --- a/src/pages/docs/command-center/guides/troubleshooting.mdx +++ b/src/pages/docs/command-center/guides/troubleshooting.mdx @@ -178,7 +178,7 @@ If you can't resolve the issue: --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/command-center/quickstart.mdx b/src/pages/docs/command-center/quickstart.mdx index 9ab74d81..f4e56ca7 100644 --- a/src/pages/docs/command-center/quickstart.mdx +++ b/src/pages/docs/command-center/quickstart.mdx @@ -227,7 +227,7 @@ Agent Command Center works with any OpenAI-compatible client. If you use LangCha --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/cookbook/chat-simulation-fix-agent.mdx b/src/pages/docs/cookbook/chat-simulation-fix-agent.mdx index e494abfe..219a90d6 100644 --- a/src/pages/docs/cookbook/chat-simulation-fix-agent.mdx +++ b/src/pages/docs/cookbook/chat-simulation-fix-agent.mdx @@ -389,7 +389,7 @@ Most teams see significant improvements by simply implementing the high-priority -
Next Steps
+## Next Steps Next Steps
+## Next Steps 1. **Experiment with Different Agent Configurations**: Try different team compositions for various research domains 2. **Customize Evaluations**: Create domain-specific evaluation criteria diff --git a/src/pages/docs/cookbook/error-feed/google-adk-multi-agent.mdx b/src/pages/docs/cookbook/error-feed/google-adk-multi-agent.mdx index 70dad91e..af9c261b 100644 --- a/src/pages/docs/cookbook/error-feed/google-adk-multi-agent.mdx +++ b/src/pages/docs/cookbook/error-feed/google-adk-multi-agent.mdx @@ -240,7 +240,7 @@ For details on how to read scores, insights, clusters, and recommendations, see --- -
Next Steps
+## Next Steps - [Issue Overview](/docs/error-feed/features/issue-overview): Understand scores, clusters, and recommendations - [Error Taxonomy](/docs/error-feed/concepts/taxonomy): Explore all error categories diff --git a/src/pages/docs/cookbook/observability.mdx b/src/pages/docs/cookbook/observability.mdx index e8134030..c5dcb035 100644 --- a/src/pages/docs/cookbook/observability.mdx +++ b/src/pages/docs/cookbook/observability.mdx @@ -260,7 +260,7 @@ You can monitor various metrics such as: - Cost of workflow - Evaluation Metrics -
Next Steps
+## Next Steps Ready to add observability to your app? Here are the steps: diff --git a/src/pages/docs/cookbook/quickstart/distributed-tracing.mdx b/src/pages/docs/cookbook/quickstart/distributed-tracing.mdx index 8641c825..e43e52ed 100644 --- a/src/pages/docs/cookbook/quickstart/distributed-tracing.mdx +++ b/src/pages/docs/cookbook/quickstart/distributed-tracing.mdx @@ -1019,7 +1019,7 @@ Before you ship: - [ ] Both services have `FI_API_KEY` and `FI_SECRET_KEY` set - [ ] Backend is started before gateway (or gateway handles connection errors gracefully) -
Related
+## Related diff --git a/src/pages/docs/dataset/concept/dynamic-column.mdx b/src/pages/docs/dataset/concept/dynamic-column.mdx index 25ec6daf..204538d8 100644 --- a/src/pages/docs/dataset/concept/dynamic-column.mdx +++ b/src/pages/docs/dataset/concept/dynamic-column.mdx @@ -55,7 +55,7 @@ Dynamic columns can be regenerated at any time. If you change the prompt or swit --- -
Next Steps
+## Next Steps - [Static Columns](/docs/dataset/concept/static-column): Columns with fixed data you provide directly - [Run Prompt in Dataset](/docs/dataset/features/run-prompt): The most common dynamic column method diff --git a/src/pages/docs/dataset/concept/static-column.mdx b/src/pages/docs/dataset/concept/static-column.mdx index 73224a22..653ce8eb 100644 --- a/src/pages/docs/dataset/concept/static-column.mdx +++ b/src/pages/docs/dataset/concept/static-column.mdx @@ -49,7 +49,7 @@ You can add static columns through the UI or when creating a dataset via the SDK --- -
Next Steps
+## Next Steps - [Dynamic Columns](/docs/dataset/concept/dynamic-column): Columns generated by prompts, evaluations, or models - [Add Columns](/docs/dataset/features/add-columns): Add new columns to an existing dataset diff --git a/src/pages/docs/dataset/concept/synthetic-data.mdx b/src/pages/docs/dataset/concept/synthetic-data.mdx index f5f47fbb..6573119c 100644 --- a/src/pages/docs/dataset/concept/synthetic-data.mdx +++ b/src/pages/docs/dataset/concept/synthetic-data.mdx @@ -55,7 +55,7 @@ The generated data follows the constraints you set (sentiment is always one of t --- -
Next Steps
+## Next Steps - [Generate Synthetic Data](/docs/quickstart/generate-synthetic-data): Step-by-step quickstart for creating your first synthetic dataset - [Static Columns](/docs/dataset/concept/static-column): How static columns store the data you provide diff --git a/src/pages/docs/dataset/concept/understanding-dataset.mdx b/src/pages/docs/dataset/concept/understanding-dataset.mdx index 1ed43c07..e8737946 100644 --- a/src/pages/docs/dataset/concept/understanding-dataset.mdx +++ b/src/pages/docs/dataset/concept/understanding-dataset.mdx @@ -69,7 +69,7 @@ Datasets evolve over time. You can: --- -
Next Steps
+## Next Steps - [Static Columns](/docs/dataset/concept/static-column): Data you add directly to your dataset - [Dynamic Columns](/docs/dataset/concept/dynamic-column): Data generated by prompts, evaluations, or models diff --git a/src/pages/docs/dataset/features/add-columns.mdx b/src/pages/docs/dataset/features/add-columns.mdx index 1466205a..22f05470 100644 --- a/src/pages/docs/dataset/features/add-columns.mdx +++ b/src/pages/docs/dataset/features/add-columns.mdx @@ -167,7 +167,7 @@ Open your dataset and click **+ Add Columns**. Choose **Static** for fixed value -
Next Steps
+## Next Steps diff --git a/src/pages/docs/dataset/features/add-rows.mdx b/src/pages/docs/dataset/features/add-rows.mdx index 8d3b28b7..a6676ac4 100644 --- a/src/pages/docs/dataset/features/add-rows.mdx +++ b/src/pages/docs/dataset/features/add-rows.mdx @@ -279,7 +279,7 @@ Upload a file (CSV, JSON, JSONL, or Excel) to append rows to your dataset. The number of columns will increase automatically to match the number of columns in the new dataset. And the cells will be None by default. -
Next Steps
+## Next Steps diff --git a/src/pages/docs/dataset/features/annotate.mdx b/src/pages/docs/dataset/features/annotate.mdx index 08abcea1..db6ff282 100644 --- a/src/pages/docs/dataset/features/annotate.mdx +++ b/src/pages/docs/dataset/features/annotate.mdx @@ -67,7 +67,7 @@ For structured, multi-annotator annotation campaigns with progress tracking, ass -
Next Steps
+## Next Steps diff --git a/src/pages/docs/dataset/features/create.mdx b/src/pages/docs/dataset/features/create.mdx index 124a4d9e..2dc75e82 100644 --- a/src/pages/docs/dataset/features/create.mdx +++ b/src/pages/docs/dataset/features/create.mdx @@ -294,7 +294,7 @@ You can create a subset from an existing dataset. -
Next Steps
+## Next Steps diff --git a/src/pages/docs/dataset/features/experiments.mdx b/src/pages/docs/dataset/features/experiments.mdx index 30417847..c4387b1c 100644 --- a/src/pages/docs/dataset/features/experiments.mdx +++ b/src/pages/docs/dataset/features/experiments.mdx @@ -128,7 +128,7 @@ Experiment creation is a guided three-step flow: **Basic Info → Configuration - **Mix prompts and agents**: an **LLM** experiment can contain prompts and agents side by side, scored against the same evals. Useful when you're deciding whether an agent is worth the extra complexity over a prompt. TTS, STT, and Image experiments accept prompts only. - **Failed-only rerun**: when transient failures (rate limits, network blips) leave a few cells errored, use the failed-only rerun on the column to recover them without redoing successful rows. -
Next Steps
+## Next Steps diff --git a/src/pages/docs/dataset/features/run-prompt.mdx b/src/pages/docs/dataset/features/run-prompt.mdx index 5e8666a5..44a95153 100644 --- a/src/pages/docs/dataset/features/run-prompt.mdx +++ b/src/pages/docs/dataset/features/run-prompt.mdx @@ -105,7 +105,7 @@ Run Prompt lets you add a new column to your dataset that is filled by a model ( -
Next Steps
+## Next Steps diff --git a/src/pages/docs/dataset/index.mdx b/src/pages/docs/dataset/index.mdx index a080102f..ceb0f257 100644 --- a/src/pages/docs/dataset/index.mdx +++ b/src/pages/docs/dataset/index.mdx @@ -57,7 +57,7 @@ This distinction matters because dynamic columns let you add model outputs, eval -
Next Steps
+## Next Steps - [Understanding Datasets](/docs/dataset/concept/understanding-dataset): Deeper dive into dataset concepts, column types, and best practices - [Generate Synthetic Data](/docs/quickstart/generate-synthetic-data): Create realistic datasets from scratch when real data is unavailable diff --git a/src/pages/docs/error-feed/concepts/scoring.mdx b/src/pages/docs/error-feed/concepts/scoring.mdx index be5db098..7c93faef 100644 --- a/src/pages/docs/error-feed/concepts/scoring.mdx +++ b/src/pages/docs/error-feed/concepts/scoring.mdx @@ -78,7 +78,7 @@ They're not the same thing though. The score is continuous, 0 to 5. The error cl A cluster with consistently low scores on all four dimensions is a fundamentally broken workflow, not a narrow edge case. When only one dimension is low, the problem is more targeted. -
Next Steps
+## Next Steps diff --git a/src/pages/docs/error-feed/concepts/severity-and-status.mdx b/src/pages/docs/error-feed/concepts/severity-and-status.mdx index ff40d329..76a9215d 100644 --- a/src/pages/docs/error-feed/concepts/severity-and-status.mdx +++ b/src/pages/docs/error-feed/concepts/severity-and-status.mdx @@ -68,7 +68,7 @@ The feed list is sortable and filterable by both. Typical workflow: See [Triage Workflow](/docs/error-feed/features/triage-workflow) for step-by-step guidance on working through a batch of issues. -
Next Steps
+## Next Steps diff --git a/src/pages/docs/error-feed/concepts/taxonomy.mdx b/src/pages/docs/error-feed/concepts/taxonomy.mdx index 5b6b1992..4d28c5f7 100644 --- a/src/pages/docs/error-feed/concepts/taxonomy.mdx +++ b/src/pages/docs/error-feed/concepts/taxonomy.mdx @@ -113,7 +113,7 @@ On the [Feed list](/docs/error-feed/features/the-feed), issues are tagged with t A single trace can trigger errors in multiple categories. A tool failure that causes the agent to hallucinate a fallback answer will register as both a Tool & System Failure and a Thinking & Response Issue. -
Next Steps
+## Next Steps diff --git a/src/pages/docs/error-feed/features/deep-analysis.mdx b/src/pages/docs/error-feed/features/deep-analysis.mdx index 8f064eed..e1dab9ed 100644 --- a/src/pages/docs/error-feed/features/deep-analysis.mdx +++ b/src/pages/docs/error-feed/features/deep-analysis.mdx @@ -84,7 +84,7 @@ Continuous scan runs automatically on every sampled trace. Deep Analysis runs on Neither replaces the other. Typical pattern: continuous scan surfaces the issue, Deep Analysis helps you understand it well enough to fix it confidently. -
Next Steps
+## Next Steps diff --git a/src/pages/docs/error-feed/features/issue-overview.mdx b/src/pages/docs/error-feed/features/issue-overview.mdx index 1dcb4fbe..2f277cce 100644 --- a/src/pages/docs/error-feed/features/issue-overview.mdx +++ b/src/pages/docs/error-feed/features/issue-overview.mdx @@ -95,7 +95,7 @@ Recommendations link back to the Probable Root Causes that motivated them, so yo If Probable Root Cause and Recommendations & Fixes aren't on the Overview tab, Deep Analysis hasn't run for this issue yet. Click **Run Deep Analysis** in the metadata panel to trigger it. See [Deep Analysis](/docs/error-feed/features/deep-analysis). -
Next Steps
+## Next Steps diff --git a/src/pages/docs/error-feed/features/linear-integration.mdx b/src/pages/docs/error-feed/features/linear-integration.mdx index 33b65fdb..c08e881f 100644 --- a/src/pages/docs/error-feed/features/linear-integration.mdx +++ b/src/pages/docs/error-feed/features/linear-integration.mdx @@ -63,7 +63,7 @@ If Linear isn't connected, the row shows "Not connected" with a **Connect** butt The Linear integration pairs well with the [triage workflow](/docs/error-feed/features/triage-workflow). A typical pattern: review the issue in Error Feed, acknowledge it, create a Linear ticket, assign the ticket to the engineer who owns that component. -
Next Steps
+## Next Steps diff --git a/src/pages/docs/error-feed/features/metadata-panel.mdx b/src/pages/docs/error-feed/features/metadata-panel.mdx index 9e94df7d..a8257d45 100644 --- a/src/pages/docs/error-feed/features/metadata-panel.mdx +++ b/src/pages/docs/error-feed/features/metadata-panel.mdx @@ -115,7 +115,7 @@ Connected issue-tracking tools. Currently **Linear** is supported. See [Linear Integration](/docs/error-feed/features/linear-integration) for setup and workflow details. -
Next Steps
+## Next Steps diff --git a/src/pages/docs/error-feed/features/sampling.mdx b/src/pages/docs/error-feed/features/sampling.mdx index 1136335b..1b755643 100644 --- a/src/pages/docs/error-feed/features/sampling.mdx +++ b/src/pages/docs/error-feed/features/sampling.mdx @@ -64,7 +64,7 @@ Keep the sampling rate in mind when comparing cluster sizes across projects or t Rare errors (the ones that show up in only a small fraction of traces) are more likely to be missed at low rates. If you're hunting an edge case that only triggers occasionally, temporarily bump the sampling rate up for the duration of the investigation. -
Next Steps
+## Next Steps diff --git a/src/pages/docs/error-feed/features/state-graph.mdx b/src/pages/docs/error-feed/features/state-graph.mdx index 98411e98..86124c2a 100644 --- a/src/pages/docs/error-feed/features/state-graph.mdx +++ b/src/pages/docs/error-feed/features/state-graph.mdx @@ -57,7 +57,7 @@ For small clusters or very simple agents, the [Overview tab](/docs/error-feed/fe The [Overview tab](/docs/error-feed/features/issue-overview) also has an Agent Flow section, but it's based on the representative trace and shows the narrative flow for that single trace. The State Graph is based on the whole cluster and shows the aggregate picture. Use Agent Flow to understand the specific failure; use State Graph to understand how widespread and how structural it is. -
Next Steps
+## Next Steps diff --git a/src/pages/docs/error-feed/features/the-feed.mdx b/src/pages/docs/error-feed/features/the-feed.mdx index 072a7b29..369760be 100644 --- a/src/pages/docs/error-feed/features/the-feed.mdx +++ b/src/pages/docs/error-feed/features/the-feed.mdx @@ -87,7 +87,7 @@ See the feature pages for each: The list remembers your last filter state within a session. Open an issue, hit the breadcrumb to go back, and your filters are still applied. -
Next Steps
+## Next Steps diff --git a/src/pages/docs/error-feed/features/traces.mdx b/src/pages/docs/error-feed/features/traces.mdx index 00e98036..df080221 100644 --- a/src/pages/docs/error-feed/features/traces.mdx +++ b/src/pages/docs/error-feed/features/traces.mdx @@ -47,7 +47,7 @@ The Traces tab is specific to Error Feed and only shows traces belonging to this For span-level inspection of a specific trace, copy the Trace ID and look it up directly in Observe. -
Next Steps
+## Next Steps diff --git a/src/pages/docs/error-feed/features/trends.mdx b/src/pages/docs/error-feed/features/trends.mdx index d2a9eb8a..9d769f68 100644 --- a/src/pages/docs/error-feed/features/trends.mdx +++ b/src/pages/docs/error-feed/features/trends.mdx @@ -60,7 +60,7 @@ The most useful read is all three together. A typical investigation: This combination often turns a confusing cluster into a clear, attributable pattern. -
Next Steps
+## Next Steps diff --git a/src/pages/docs/error-feed/features/triage-workflow.mdx b/src/pages/docs/error-feed/features/triage-workflow.mdx index e422bc79..f9431664 100644 --- a/src/pages/docs/error-feed/features/triage-workflow.mdx +++ b/src/pages/docs/error-feed/features/triage-workflow.mdx @@ -94,7 +94,7 @@ When you ship a fix for a resolved issue: The goal isn't an empty issue list. It's making sure nothing critical sits unreviewed and that resolved issues actually stay resolved. -
Next Steps
+## Next Steps diff --git a/src/pages/docs/evaluation/features/cicd.mdx b/src/pages/docs/evaluation/features/cicd.mdx index 3e668bb2..fdca737d 100644 --- a/src/pages/docs/evaluation/features/cicd.mdx +++ b/src/pages/docs/evaluation/features/cicd.mdx @@ -398,7 +398,7 @@ The workflow posts a comment on your PR with the current version identifier and --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/evaluation/features/custom-models.mdx b/src/pages/docs/evaluation/features/custom-models.mdx index 788491b8..b67b0143 100644 --- a/src/pages/docs/evaluation/features/custom-models.mdx +++ b/src/pages/docs/evaluation/features/custom-models.mdx @@ -117,7 +117,7 @@ Fields you may see when adding a model (from a provider or custom). **Applies to --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/evaluation/features/custom.mdx b/src/pages/docs/evaluation/features/custom.mdx index bc84d4f0..ba65dd2e 100644 --- a/src/pages/docs/evaluation/features/custom.mdx +++ b/src/pages/docs/evaluation/features/custom.mdx @@ -125,7 +125,7 @@ You can create custom evals from the **UI** or via the **SDK** (by calling the R --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/evaluation/features/evaluate.mdx b/src/pages/docs/evaluation/features/evaluate.mdx index 585bac9e..811accf2 100644 --- a/src/pages/docs/evaluation/features/evaluate.mdx +++ b/src/pages/docs/evaluation/features/evaluate.mdx @@ -146,7 +146,7 @@ For more eval templates and Future AGI models, see [Built-in evals](/docs/evalua --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/evaluation/features/futureagi-models.mdx b/src/pages/docs/evaluation/features/futureagi-models.mdx index edfcb9fe..a96e5f02 100644 --- a/src/pages/docs/evaluation/features/futureagi-models.mdx +++ b/src/pages/docs/evaluation/features/futureagi-models.mdx @@ -71,7 +71,7 @@ All models are available in the platform UI and the SDK, and work with both buil --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/falcon-ai/features/chat.mdx b/src/pages/docs/falcon-ai/features/chat.mdx index 7b485844..06d7d4ef 100644 --- a/src/pages/docs/falcon-ai/features/chat.mdx +++ b/src/pages/docs/falcon-ai/features/chat.mdx @@ -138,7 +138,7 @@ Falcon AI allows 10 messages per 60 seconds per user. If you hit the limit, wait --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/falcon-ai/features/mcp-connectors.mdx b/src/pages/docs/falcon-ai/features/mcp-connectors.mdx index d390da58..35ece8b3 100644 --- a/src/pages/docs/falcon-ai/features/mcp-connectors.mdx +++ b/src/pages/docs/falcon-ai/features/mcp-connectors.mdx @@ -109,7 +109,7 @@ Falcon AI automatically tries multiple endpoint paths (with and without `/mcp` s --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/falcon-ai/features/skills.mdx b/src/pages/docs/falcon-ai/features/skills.mdx index cccaf9ba..5fd8279b 100644 --- a/src/pages/docs/falcon-ai/features/skills.mdx +++ b/src/pages/docs/falcon-ai/features/skills.mdx @@ -121,7 +121,7 @@ Open the skill picker, click an existing custom skill to open the editor. Update --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/falcon-ai/index.mdx b/src/pages/docs/falcon-ai/index.mdx index 3932d14a..54debfb3 100644 --- a/src/pages/docs/falcon-ai/index.mdx +++ b/src/pages/docs/falcon-ai/index.mdx @@ -66,7 +66,7 @@ Both share the same tool layer. --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/knowledge-base/concepts/concept.mdx b/src/pages/docs/knowledge-base/concepts/concept.mdx index 660039f3..ed15f4c0 100644 --- a/src/pages/docs/knowledge-base/concepts/concept.mdx +++ b/src/pages/docs/knowledge-base/concepts/concept.mdx @@ -44,7 +44,7 @@ After you upload files, the platform processes them automatically. Each file goe | Processing | File is being processed | | Failed | Processing failed. You'll be notified and the file won't be usable. | -
Next Steps
+## Next Steps - [Create KB Using UI](/docs/knowledge-base/features/ui): Upload files through the dashboard - [Create KB Using SDK](/docs/knowledge-base/features/sdk): Upload and manage knowledge bases programmatically diff --git a/src/pages/docs/knowledge-base/features/sdk.mdx b/src/pages/docs/knowledge-base/features/sdk.mdx index 7e80a199..721b8983 100644 --- a/src/pages/docs/knowledge-base/features/sdk.mdx +++ b/src/pages/docs/knowledge-base/features/sdk.mdx @@ -105,7 +105,7 @@ The Knowledge Base SDK lets you create and manage Knowledge Bases from code usin Wrap SDK calls in try/except and handle `fi.utils.errors.SDKException` (and optionally `InvalidAuthError`, rate limits) in production. Keep API credentials out of version control (e.g. use environment variables). -
Next Steps
+## Next Steps diff --git a/src/pages/docs/knowledge-base/features/ui.mdx b/src/pages/docs/knowledge-base/features/ui.mdx index f5348984..ea41caff 100644 --- a/src/pages/docs/knowledge-base/features/ui.mdx +++ b/src/pages/docs/knowledge-base/features/ui.mdx @@ -79,7 +79,7 @@ The Knowledge Base UI lets you create and populate a Knowledge Base directly on --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/knowledge-base/index.mdx b/src/pages/docs/knowledge-base/index.mdx index 0952fa5f..8f8efb11 100644 --- a/src/pages/docs/knowledge-base/index.mdx +++ b/src/pages/docs/knowledge-base/index.mdx @@ -39,7 +39,7 @@ A **Knowledge Base (KB)** is a store of your organization’s content: FAQs, doc -
Next Steps
+## Next Steps - [Generate Synthetic Data](/docs/quickstart/generate-synthetic-data): Use a KB to ground synthetic data generation - [Knowledge Base Cookbook](/docs/cookbook/quickstart/knowledge-base): Upload documents and query with the SDK diff --git a/src/pages/docs/observe/features/alerts.mdx b/src/pages/docs/observe/features/alerts.mdx index ec33bac2..2913fd9e 100644 --- a/src/pages/docs/observe/features/alerts.mdx +++ b/src/pages/docs/observe/features/alerts.mdx @@ -66,7 +66,7 @@ description: "Define monitors on Observe project metrics (system or evaluation) --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/observe/features/dashboard.mdx b/src/pages/docs/observe/features/dashboard.mdx index e3e4432e..e4eb673c 100644 --- a/src/pages/docs/observe/features/dashboard.mdx +++ b/src/pages/docs/observe/features/dashboard.mdx @@ -67,7 +67,7 @@ description: "Build custom dashboards with widgets to visualize your Observe pro --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/observe/features/evals.mdx b/src/pages/docs/observe/features/evals.mdx index 26b51662..74f3e5f1 100644 --- a/src/pages/docs/observe/features/evals.mdx +++ b/src/pages/docs/observe/features/evals.mdx @@ -77,7 +77,7 @@ Evals run automated quality checks on your production traces, scoring every LLM --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/observe/features/manual-tracing/add-attributes-metadata-tags.mdx b/src/pages/docs/observe/features/manual-tracing/add-attributes-metadata-tags.mdx index 42990193..906f4659 100644 --- a/src/pages/docs/observe/features/manual-tracing/add-attributes-metadata-tags.mdx +++ b/src/pages/docs/observe/features/manual-tracing/add-attributes-metadata-tags.mdx @@ -473,7 +473,7 @@ A trace with only timing and status tells what happened, but not why. Without at --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/observe/features/manual-tracing/add-events-exceptions-status.mdx b/src/pages/docs/observe/features/manual-tracing/add-events-exceptions-status.mdx index efd06f95..2d2e0204 100644 --- a/src/pages/docs/observe/features/manual-tracing/add-events-exceptions-status.mdx +++ b/src/pages/docs/observe/features/manual-tracing/add-events-exceptions-status.mdx @@ -166,7 +166,7 @@ Spans capture timing and attributes, but they do not automatically record what h --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/observe/features/manual-tracing/advanced-tracing-examples.mdx b/src/pages/docs/observe/features/manual-tracing/advanced-tracing-examples.mdx index 4755325e..f4882666 100644 --- a/src/pages/docs/observe/features/manual-tracing/advanced-tracing-examples.mdx +++ b/src/pages/docs/observe/features/manual-tracing/advanced-tracing-examples.mdx @@ -672,7 +672,7 @@ Basic span creation works for synchronous, single-service code. But real applica --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/observe/features/manual-tracing/annotating-using-api.mdx b/src/pages/docs/observe/features/manual-tracing/annotating-using-api.mdx index 96c05e9a..d6c4723d 100644 --- a/src/pages/docs/observe/features/manual-tracing/annotating-using-api.mdx +++ b/src/pages/docs/observe/features/manual-tracing/annotating-using-api.mdx @@ -304,7 +304,7 @@ Each element in `result.errors` contains: --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/observe/features/manual-tracing/create-tool-spans.mdx b/src/pages/docs/observe/features/manual-tracing/create-tool-spans.mdx index 0f93cfc9..2cba52fa 100644 --- a/src/pages/docs/observe/features/manual-tracing/create-tool-spans.mdx +++ b/src/pages/docs/observe/features/manual-tracing/create-tool-spans.mdx @@ -238,7 +238,7 @@ LLM agents often call external tools (APIs, databases, code interpreters), but t --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/observe/features/manual-tracing/get-current-span-context.mdx b/src/pages/docs/observe/features/manual-tracing/get-current-span-context.mdx index d0668269..8ff3eb72 100644 --- a/src/pages/docs/observe/features/manual-tracing/get-current-span-context.mdx +++ b/src/pages/docs/observe/features/manual-tracing/get-current-span-context.mdx @@ -130,7 +130,7 @@ Spans and tracers are usually created at the top of a request, but the functions --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/observe/features/manual-tracing/in-line-evals.mdx b/src/pages/docs/observe/features/manual-tracing/in-line-evals.mdx index 93480c0c..c973b637 100644 --- a/src/pages/docs/observe/features/manual-tracing/in-line-evals.mdx +++ b/src/pages/docs/observe/features/manual-tracing/in-line-evals.mdx @@ -95,7 +95,7 @@ Evaluation results are most useful when they sit next to the data that produced --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/observe/features/manual-tracing/instrument-with-traceai-helpers.mdx b/src/pages/docs/observe/features/manual-tracing/instrument-with-traceai-helpers.mdx index bae7c679..9a3a6b3c 100644 --- a/src/pages/docs/observe/features/manual-tracing/instrument-with-traceai-helpers.mdx +++ b/src/pages/docs/observe/features/manual-tracing/instrument-with-traceai-helpers.mdx @@ -320,7 +320,7 @@ Manual tracing with raw OpenTelemetry means writing a lot of setup code for ever --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/observe/features/manual-tracing/langfuse-integration.mdx b/src/pages/docs/observe/features/manual-tracing/langfuse-integration.mdx index 900363e5..24555df5 100644 --- a/src/pages/docs/observe/features/manual-tracing/langfuse-integration.mdx +++ b/src/pages/docs/observe/features/manual-tracing/langfuse-integration.mdx @@ -117,7 +117,7 @@ Langfuse provides tracing but does not have a built-in evaluation engine. This i --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/observe/features/manual-tracing/log-prompt-templates.mdx b/src/pages/docs/observe/features/manual-tracing/log-prompt-templates.mdx index d96e7146..6924d3a9 100644 --- a/src/pages/docs/observe/features/manual-tracing/log-prompt-templates.mdx +++ b/src/pages/docs/observe/features/manual-tracing/log-prompt-templates.mdx @@ -109,7 +109,7 @@ LLM outputs depend entirely on the prompt, but the prompt itself is not captured --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/observe/features/manual-tracing/mask-span-attributes.mdx b/src/pages/docs/observe/features/manual-tracing/mask-span-attributes.mdx index 2226a23e..2c832160 100644 --- a/src/pages/docs/observe/features/manual-tracing/mask-span-attributes.mdx +++ b/src/pages/docs/observe/features/manual-tracing/mask-span-attributes.mdx @@ -98,7 +98,7 @@ Traces often contain sensitive data: user messages, API responses, PII, or large --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/observe/features/manual-tracing/semantic-conventions.mdx b/src/pages/docs/observe/features/manual-tracing/semantic-conventions.mdx index 46644463..f479dc59 100644 --- a/src/pages/docs/observe/features/manual-tracing/semantic-conventions.mdx +++ b/src/pages/docs/observe/features/manual-tracing/semantic-conventions.mdx @@ -865,7 +865,7 @@ Every LLM provider returns data in a different format. Without a standard set of --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/observe/features/manual-tracing/set-session-user-id.mdx b/src/pages/docs/observe/features/manual-tracing/set-session-user-id.mdx index 9cb7d381..78d775f3 100644 --- a/src/pages/docs/observe/features/manual-tracing/set-session-user-id.mdx +++ b/src/pages/docs/observe/features/manual-tracing/set-session-user-id.mdx @@ -306,7 +306,7 @@ Traces are isolated by default. Without a session or user identifier, there is n --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/observe/features/manual-tracing/set-up-tracing.mdx b/src/pages/docs/observe/features/manual-tracing/set-up-tracing.mdx index be609416..22d25e67 100644 --- a/src/pages/docs/observe/features/manual-tracing/set-up-tracing.mdx +++ b/src/pages/docs/observe/features/manual-tracing/set-up-tracing.mdx @@ -302,7 +302,7 @@ Tracing captures every LLM call, tool invocation, or custom operation in your ap --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/observe/features/quickstart.mdx b/src/pages/docs/observe/features/quickstart.mdx index 08717550..f2e4d9a5 100644 --- a/src/pages/docs/observe/features/quickstart.mdx +++ b/src/pages/docs/observe/features/quickstart.mdx @@ -136,7 +136,7 @@ For supported frameworks and more options, see the [Auto Instrumentation](/docs/ --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/observe/features/session.mdx b/src/pages/docs/observe/features/session.mdx index c557b53a..821a2d4f 100644 --- a/src/pages/docs/observe/features/session.mdx +++ b/src/pages/docs/observe/features/session.mdx @@ -105,7 +105,7 @@ Sessions group related traces together under a single identifier. A chatbot conv --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/observe/features/users.mdx b/src/pages/docs/observe/features/users.mdx index c2e03814..61ba9e06 100644 --- a/src/pages/docs/observe/features/users.mdx +++ b/src/pages/docs/observe/features/users.mdx @@ -100,7 +100,7 @@ The **user dashboard** in Observe groups all traces and sessions by end user. Ea --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/observe/features/voice.mdx b/src/pages/docs/observe/features/voice.mdx index cdf65887..32d0a24b 100644 --- a/src/pages/docs/observe/features/voice.mdx +++ b/src/pages/docs/observe/features/voice.mdx @@ -88,7 +88,7 @@ Voice agents are hard to debug. Conversations happen in real time, across multip --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/optimization/concepts/concept.mdx b/src/pages/docs/optimization/concepts/concept.mdx index 9d908978..dcee7952 100755 --- a/src/pages/docs/optimization/concepts/concept.mdx +++ b/src/pages/docs/optimization/concepts/concept.mdx @@ -129,7 +129,7 @@ final_result = bayesian_optimizer.optimize( --- -
Next Steps
+## Next Steps - [Using the Python SDK](/docs/optimization/features/using-python-sdk): Run optimization programmatically - [Using the Platform](/docs/optimization/features/using-platform): Run optimization from the UI diff --git a/src/pages/docs/optimization/features/using-platform.mdx b/src/pages/docs/optimization/features/using-platform.mdx index 9b910958..07a47e50 100755 --- a/src/pages/docs/optimization/features/using-platform.mdx +++ b/src/pages/docs/optimization/features/using-platform.mdx @@ -83,7 +83,7 @@ Runs can be **paused and resumed**. Optimizer state is persisted after each tria --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/optimization/features/using-python-sdk.mdx b/src/pages/docs/optimization/features/using-python-sdk.mdx index 4bf4900d..f37675f6 100755 --- a/src/pages/docs/optimization/features/using-python-sdk.mdx +++ b/src/pages/docs/optimization/features/using-python-sdk.mdx @@ -154,7 +154,7 @@ The library is built around four components that work together: -
Next Steps
+## Next Steps diff --git a/src/pages/docs/prompt/concepts/understanding-prompts.mdx b/src/pages/docs/prompt/concepts/understanding-prompts.mdx index e55a6b5d..3e7672ef 100644 --- a/src/pages/docs/prompt/concepts/understanding-prompts.mdx +++ b/src/pages/docs/prompt/concepts/understanding-prompts.mdx @@ -106,7 +106,7 @@ Each prompt template includes a model configuration: the model to use and the pa --- -
Next Steps
+## Next Steps - [Versions and Labels](/docs/prompt/concepts/versions-and-labels): How prompt versioning and deployment labels work. - [Create a Prompt from Scratch](/docs/prompt/features/create-from-scratch): Build your first prompt in the Workbench. diff --git a/src/pages/docs/prompt/features/create-from-scratch.mdx b/src/pages/docs/prompt/features/create-from-scratch.mdx index 5d130d0b..8b569b1d 100644 --- a/src/pages/docs/prompt/features/create-from-scratch.mdx +++ b/src/pages/docs/prompt/features/create-from-scratch.mdx @@ -100,7 +100,7 @@ Use this when you have a clear idea of what the prompt should do, need precise c --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/prompt/features/create-from-template.mdx b/src/pages/docs/prompt/features/create-from-template.mdx index e526f576..c69ef1d3 100644 --- a/src/pages/docs/prompt/features/create-from-template.mdx +++ b/src/pages/docs/prompt/features/create-from-template.mdx @@ -87,7 +87,7 @@ The Prompt Workbench includes templates for summarization, customer support, ana --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/prompt/features/create-with-ai.mdx b/src/pages/docs/prompt/features/create-with-ai.mdx index fd61d156..008c1058 100644 --- a/src/pages/docs/prompt/features/create-with-ai.mdx +++ b/src/pages/docs/prompt/features/create-with-ai.mdx @@ -61,7 +61,7 @@ The output lands directly in the Prompt Workbench editor, where you can inspect --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/prompt/features/folders.mdx b/src/pages/docs/prompt/features/folders.mdx index c5ebb91c..16946a79 100644 --- a/src/pages/docs/prompt/features/folders.mdx +++ b/src/pages/docs/prompt/features/folders.mdx @@ -45,7 +45,7 @@ You create folders in the sidebar and move prompts into them at any time, or cre --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/prompt/features/linked-traces.mdx b/src/pages/docs/prompt/features/linked-traces.mdx index 1b3292a6..f5c19ef8 100644 --- a/src/pages/docs/prompt/features/linked-traces.mdx +++ b/src/pages/docs/prompt/features/linked-traces.mdx @@ -61,7 +61,7 @@ Compare the same metric across **prompt versions** or **time ranges** to see if --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/prompt/features/sdk.mdx b/src/pages/docs/prompt/features/sdk.mdx index 2b3a7a0d..177dde74 100644 --- a/src/pages/docs/prompt/features/sdk.mdx +++ b/src/pages/docs/prompt/features/sdk.mdx @@ -366,7 +366,7 @@ If your SDK or backend returns content as a stringified list of con --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/protect/features/run-protect.mdx b/src/pages/docs/protect/features/run-protect.mdx index f8fc76af..0122eff7 100644 --- a/src/pages/docs/protect/features/run-protect.mdx +++ b/src/pages/docs/protect/features/run-protect.mdx @@ -162,7 +162,7 @@ description: "Set up and configure Protect to apply real-time safety checks to y --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/prototype/features/choose-winner.mdx b/src/pages/docs/prototype/features/choose-winner.mdx index 0889caa2..c6c0641d 100644 --- a/src/pages/docs/prototype/features/choose-winner.mdx +++ b/src/pages/docs/prototype/features/choose-winner.mdx @@ -48,7 +48,7 @@ When you have multiple versions of your application running in Prototype, you ne --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/prototype/features/evals.mdx b/src/pages/docs/prototype/features/evals.mdx index e749e83e..81cdaae7 100644 --- a/src/pages/docs/prototype/features/evals.mdx +++ b/src/pages/docs/prototype/features/evals.mdx @@ -172,7 +172,7 @@ For the full list, see [Built-in evals](/docs/evaluation/builtin). --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/prototype/features/set-up-prototype.mdx b/src/pages/docs/prototype/features/set-up-prototype.mdx index c2cb1201..096a2f4d 100644 --- a/src/pages/docs/prototype/features/set-up-prototype.mdx +++ b/src/pages/docs/prototype/features/set-up-prototype.mdx @@ -177,7 +177,7 @@ You register your project with a version name, instrument your application so it --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/quickstart/annotations.mdx b/src/pages/docs/quickstart/annotations.mdx index 5e77e705..f6090188 100644 --- a/src/pages/docs/quickstart/annotations.mdx +++ b/src/pages/docs/quickstart/annotations.mdx @@ -79,7 +79,7 @@ In this walkthrough you will create an annotation label, set up a queue, add tra - **S** -- Skip the current item -
Next Steps
+## Next Steps diff --git a/src/pages/docs/quickstart/command-center-gateway.mdx b/src/pages/docs/quickstart/command-center-gateway.mdx index 66dbd35a..cca96dd1 100644 --- a/src/pages/docs/quickstart/command-center-gateway.mdx +++ b/src/pages/docs/quickstart/command-center-gateway.mdx @@ -262,7 +262,7 @@ Agent Command Center works with any OpenAI-compatible client. If you use LangCha --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/quickstart/generate-synthetic-data.mdx b/src/pages/docs/quickstart/generate-synthetic-data.mdx index bcffc03f..cf6a854a 100644 --- a/src/pages/docs/quickstart/generate-synthetic-data.mdx +++ b/src/pages/docs/quickstart/generate-synthetic-data.mdx @@ -58,7 +58,7 @@ description: "Generate synthetic datasets with Future AGI. Define schemas, colum -
Next Steps
+## Next Steps - [Run evaluations on your dataset](/docs/evaluation) to test AI outputs against the generated data - [Use Knowledge Base](/docs/knowledge-base) to ground synthetic data generation with your own documents diff --git a/src/pages/docs/quickstart/prompts.mdx b/src/pages/docs/quickstart/prompts.mdx index d0bacd8f..b46622e9 100644 --- a/src/pages/docs/quickstart/prompts.mdx +++ b/src/pages/docs/quickstart/prompts.mdx @@ -133,7 +133,7 @@ description: "Create and manage AI prompts in Future AGI's Prompt Workbench. Des -
Next Steps
+## Next Steps - [Use prompts via SDK](/docs/prompt/features/sdk) to serve and manage prompts programmatically in your application - [Optimize your prompts](/docs/optimization) to automatically improve prompt performance using evaluation-driven feedback diff --git a/src/pages/docs/quickstart/running-evals-in-simulation.mdx b/src/pages/docs/quickstart/running-evals-in-simulation.mdx index d0c01541..b995eb67 100644 --- a/src/pages/docs/quickstart/running-evals-in-simulation.mdx +++ b/src/pages/docs/quickstart/running-evals-in-simulation.mdx @@ -102,7 +102,7 @@ If the built-in evals don't cover your use case, you can create your own. -
Next Steps
+## Next Steps - [Browse all built-in evals](/docs/evaluation/builtin) to find metrics that fit your use case - [Set up agent definitions](/docs/simulation/concepts/agent-definition) if you haven't already diff --git a/src/pages/docs/quickstart/setup-mcp-server.mdx b/src/pages/docs/quickstart/setup-mcp-server.mdx index 1be312f7..9ab4d5bc 100644 --- a/src/pages/docs/quickstart/setup-mcp-server.mdx +++ b/src/pages/docs/quickstart/setup-mcp-server.mdx @@ -51,7 +51,7 @@ With **Future AGI's MCP Server**, you can use natural language to: Check out our [blog post](https://futureagi.com/blogs/model-context-protocol-mcp-2025) on `futureagi-mcp-server` for detailed use cases. -
Next Steps
+## Next Steps - [Run your first evaluation](/docs/cookbook/quickstart/first-eval) using natural language through the MCP server - [Explore the Observe quickstart](/docs/observe/features/quickstart) to add tracing to your project diff --git a/src/pages/docs/quickstart/setup-observability.mdx b/src/pages/docs/quickstart/setup-observability.mdx index 7f0b9d10..265c66b2 100644 --- a/src/pages/docs/quickstart/setup-observability.mdx +++ b/src/pages/docs/quickstart/setup-observability.mdx @@ -133,7 +133,7 @@ Observe supports auto-instrumentation for OpenAI, Anthropic, LangChain, LlamaInd -
Next Steps
+## Next Steps - [Add more integrations](/docs/integrations) for Anthropic, LangChain, LlamaIndex, and others - [Set up manual tracing](/docs/observe/features/manual-tracing/set-up-tracing) for custom spans and attributes diff --git a/src/pages/docs/sdk/datasets.mdx b/src/pages/docs/sdk/datasets.mdx index 8839b355..deaca769 100644 --- a/src/pages/docs/sdk/datasets.mdx +++ b/src/pages/docs/sdk/datasets.mdx @@ -234,7 +234,7 @@ For one-off operations by dataset name, without creating an instance first: | `Dataset.add_dataset_columns(name, columns)` | Add columns by name | | `Dataset.add_dataset_rows(name, rows)` | Add rows by name | -
Related
+## Related diff --git a/src/pages/docs/sdk/evals/autoeval.mdx b/src/pages/docs/sdk/evals/autoeval.mdx index e0742854..48a817b9 100644 --- a/src/pages/docs/sdk/evals/autoeval.mdx +++ b/src/pages/docs/sdk/evals/autoeval.mdx @@ -175,7 +175,7 @@ print(analysis.detected_features) # ["code_generation", "code_review"] Categories: `QUESTION_ANSWERING`, `RAG_SYSTEM`, `CUSTOMER_SUPPORT`, `CODE_ASSISTANT`, `CONTENT_MODERATION`, `AGENT_WORKFLOW`, and more. -
Related
+## Related diff --git a/src/pages/docs/sdk/evals/cloud-evals.mdx b/src/pages/docs/sdk/evals/cloud-evals.mdx index abe05de2..eff40aa1 100644 --- a/src/pages/docs/sdk/evals/cloud-evals.mdx +++ b/src/pages/docs/sdk/evals/cloud-evals.mdx @@ -263,7 +263,7 @@ Grouped by category. Run `list_evaluations()` for the latest — new templates a | `image_instruction_adherence` | Generated image matches text instruction | `instruction`, `images` | | `synthetic_image_evaluator` | Detects AI-generated images | `image` | -
Related
+## Related diff --git a/src/pages/docs/sdk/evals/code-security.mdx b/src/pages/docs/sdk/evals/code-security.mdx index 92979a1c..2acbf315 100644 --- a/src/pages/docs/sdk/evals/code-security.mdx +++ b/src/pages/docs/sdk/evals/code-security.mdx @@ -602,7 +602,7 @@ Every detected vulnerability is a `SecurityFinding` with: | `suggested_fix` | str | How to fix it | | `references` | list[str] | CWE/OWASP reference URLs | -
Related
+## Related diff --git a/src/pages/docs/sdk/evals/distributed.mdx b/src/pages/docs/sdk/evals/distributed.mdx index 919b179b..98e7ed66 100644 --- a/src/pages/docs/sdk/evals/distributed.mdx +++ b/src/pages/docs/sdk/evals/distributed.mdx @@ -254,7 +254,7 @@ Returned by `evaluator.run()`. | `.get_by_name(name)` | list | Results for a specific evaluation | | `.get_failures()` | list | Only failed results | -
Related
+## Related diff --git a/src/pages/docs/sdk/evals/evaluate.mdx b/src/pages/docs/sdk/evals/evaluate.mdx index e412cbd7..d1fc83b7 100644 --- a/src/pages/docs/sdk/evals/evaluate.mdx +++ b/src/pages/docs/sdk/evals/evaluate.mdx @@ -282,7 +282,7 @@ result = evaluate( | `OPENAI_API_KEY` | OpenAI models (LLM judge) | — | | `ANTHROPIC_API_KEY` | Claude models (LLM judge) | — | -
Related
+## Related diff --git a/src/pages/docs/sdk/evals/feedback.mdx b/src/pages/docs/sdk/evals/feedback.mdx index d9edbe35..fc134ba5 100644 --- a/src/pages/docs/sdk/evals/feedback.mdx +++ b/src/pages/docs/sdk/evals/feedback.mdx @@ -147,7 +147,7 @@ result = evaluate( `feedback_store` works with `augment=True` and `engine="llm"` modes. For purely local metrics (no model), corrections don't influence scoring directly — use `calibrate()` to adjust the threshold instead. -
Related
+## Related diff --git a/src/pages/docs/sdk/evals/guardrails-module.mdx b/src/pages/docs/sdk/evals/guardrails-module.mdx index 67fc4942..0a57b8d5 100644 --- a/src/pages/docs/sdk/evals/guardrails-module.mdx +++ b/src/pages/docs/sdk/evals/guardrails-module.mdx @@ -465,7 +465,7 @@ class MyCustomBackend(BaseBackend): )] ``` -
Related
+## Related diff --git a/src/pages/docs/sdk/evals/llm-judge.mdx b/src/pages/docs/sdk/evals/llm-judge.mdx index c6036ee9..4adfcc0d 100644 --- a/src/pages/docs/sdk/evals/llm-judge.mdx +++ b/src/pages/docs/sdk/evals/llm-judge.mdx @@ -136,7 +136,7 @@ Any model string supported by [LiteLLM](https://docs.litellm.ai/docs/providers) | Claude Sonnet 4 | `claude-sonnet-4-20250514` | `ANTHROPIC_API_KEY` | | Ollama (local) | `ollama/llama3.2:3b` | None (local) | -
Related
+## Related diff --git a/src/pages/docs/sdk/evals/local.mdx b/src/pages/docs/sdk/evals/local.mdx index 35ff2fd7..fd3d824e 100644 --- a/src/pages/docs/sdk/evals/local.mdx +++ b/src/pages/docs/sdk/evals/local.mdx @@ -395,7 +395,7 @@ for r in result.results.eval_results: | Need toxicity/faithfulness | `HybridEvaluator` (routes to cloud automatically) | | Need LLM scoring offline | `HybridEvaluator` + `OllamaLLM` | -
Related
+## Related diff --git a/src/pages/docs/sdk/evals/metrics/agents.mdx b/src/pages/docs/sdk/evals/metrics/agents.mdx index ab5abadd..8d7d9aba 100644 --- a/src/pages/docs/sdk/evals/metrics/agents.mdx +++ b/src/pages/docs/sdk/evals/metrics/agents.mdx @@ -216,7 +216,7 @@ result = evaluate( print(result.metadata["engine"]) # "local+llm" ``` -
Related
+## Related diff --git a/src/pages/docs/sdk/evals/metrics/guardrails.mdx b/src/pages/docs/sdk/evals/metrics/guardrails.mdx index 66f8ece9..baa7786f 100644 --- a/src/pages/docs/sdk/evals/metrics/guardrails.mdx +++ b/src/pages/docs/sdk/evals/metrics/guardrails.mdx @@ -101,7 +101,7 @@ def is_safe(output: str) -> bool: For lowest latency, use [streaming eval](/docs/sdk/evals/streaming) to run guardrails as tokens arrive — blocking responses mid-stream when a threat is detected. -
Related
+## Related diff --git a/src/pages/docs/sdk/evals/metrics/hallucination.mdx b/src/pages/docs/sdk/evals/metrics/hallucination.mdx index 0e16dc1c..33e366f3 100644 --- a/src/pages/docs/sdk/evals/metrics/hallucination.mdx +++ b/src/pages/docs/sdk/evals/metrics/hallucination.mdx @@ -132,7 +132,7 @@ pip install ai-evaluation[nli] This enables DeBERTa-based natural language inference. Once installed, it's used automatically — no code changes. -
Related
+## Related diff --git a/src/pages/docs/sdk/evals/metrics/index.mdx b/src/pages/docs/sdk/evals/metrics/index.mdx index 4912e75a..b127d05b 100644 --- a/src/pages/docs/sdk/evals/metrics/index.mdx +++ b/src/pages/docs/sdk/evals/metrics/index.mdx @@ -124,7 +124,7 @@ Quick lookup — find any metric by name. | `tree_edit_distance` | Structured | Edit distance between output and expected structure | | `type_compliance` | Structured | Whether field types match expected types | -
Related
+## Related diff --git a/src/pages/docs/sdk/evals/metrics/json.mdx b/src/pages/docs/sdk/evals/metrics/json.mdx index 1de9231c..f0015fe1 100644 --- a/src/pages/docs/sdk/evals/metrics/json.mdx +++ b/src/pages/docs/sdk/evals/metrics/json.mdx @@ -219,7 +219,7 @@ result = evaluate( # score → 1.0 ``` -
Related
+## Related diff --git a/src/pages/docs/sdk/evals/metrics/rag.mdx b/src/pages/docs/sdk/evals/metrics/rag.mdx index b061339f..97d2ae03 100644 --- a/src/pages/docs/sdk/evals/metrics/rag.mdx +++ b/src/pages/docs/sdk/evals/metrics/rag.mdx @@ -317,7 +317,7 @@ print(result.score) # composite score print(result.metadata) # per-metric breakdown ``` -
Related
+## Related diff --git a/src/pages/docs/sdk/evals/metrics/string.mdx b/src/pages/docs/sdk/evals/metrics/string.mdx index 2e2497ae..13d259ed 100644 --- a/src/pages/docs/sdk/evals/metrics/string.mdx +++ b/src/pages/docs/sdk/evals/metrics/string.mdx @@ -299,7 +299,7 @@ result = evaluate( # similarity_threshold: float, default 0.7 — lower = more permissive ``` -
Related
+## Related diff --git a/src/pages/docs/sdk/evals/otel.mdx b/src/pages/docs/sdk/evals/otel.mdx index d9db827a..1f70a5ff 100644 --- a/src/pages/docs/sdk/evals/otel.mdx +++ b/src/pages/docs/sdk/evals/otel.mdx @@ -443,7 +443,7 @@ eval_attrs = create_evaluation_attributes( ) ``` -
Related
+## Related diff --git a/src/pages/docs/sdk/evals/streaming.mdx b/src/pages/docs/sdk/evals/streaming.mdx index 0e824e01..d6283b13 100644 --- a/src/pages/docs/sdk/evals/streaming.mdx +++ b/src/pages/docs/sdk/evals/streaming.mdx @@ -287,7 +287,7 @@ assessor = StreamingEvaluator( ) ``` -
Related
+## Related diff --git a/src/pages/docs/sdk/index.mdx b/src/pages/docs/sdk/index.mdx index 44be0fde..b08788e2 100644 --- a/src/pages/docs/sdk/index.mdx +++ b/src/pages/docs/sdk/index.mdx @@ -329,7 +329,7 @@ Python only. pip install agent-simulate ``` -
Next Steps
+## Next Steps diff --git a/src/pages/docs/sdk/knowledgebase.mdx b/src/pages/docs/sdk/knowledgebase.mdx index e8a89992..3f19406f 100644 --- a/src/pages/docs/sdk/knowledgebase.mdx +++ b/src/pages/docs/sdk/knowledgebase.mdx @@ -109,7 +109,7 @@ kb.delete_kb(kb_names=["kb-1", "kb-2"]) All methods return `self` for chaining. -
Related
+## Related diff --git a/src/pages/docs/sdk/optimization.mdx b/src/pages/docs/sdk/optimization.mdx index 878333d0..817b21d1 100644 --- a/src/pages/docs/sdk/optimization.mdx +++ b/src/pages/docs/sdk/optimization.mdx @@ -136,7 +136,7 @@ print(result.best_generator.get_prompt_template()) # winning prompt print(result.history) # score history ``` -
Related
+## Related diff --git a/src/pages/docs/sdk/protect.mdx b/src/pages/docs/sdk/protect.mdx index 89776885..57225b7e 100644 --- a/src/pages/docs/sdk/protect.mdx +++ b/src/pages/docs/sdk/protect.mdx @@ -169,7 +169,7 @@ if result["status"] == "failed": print(f"Output blocked: {result['reasons']}") ``` -
Related
+## Related diff --git a/src/pages/docs/sdk/simulate.mdx b/src/pages/docs/sdk/simulate.mdx index 5c21bfd5..4f439918 100644 --- a/src/pages/docs/sdk/simulate.mdx +++ b/src/pages/docs/sdk/simulate.mdx @@ -144,7 +144,7 @@ asyncio.run(runner.run_test( )) ``` -
Related
+## Related diff --git a/src/pages/docs/sdk/tracing.mdx b/src/pages/docs/sdk/tracing.mdx index 2c3e0ee3..b006910d 100644 --- a/src/pages/docs/sdk/tracing.mdx +++ b/src/pages/docs/sdk/tracing.mdx @@ -1233,7 +1233,7 @@ All languages read from the same set of environment variables: | `FI_BASE64_IMAGE_MAX_LENGTH` | Max base64 image chars | 32000 | | `FI_PII_REDACTION` | Auto-mask PII (Python) | False | -
Related
+## Related diff --git a/src/pages/docs/self-hosting.mdx b/src/pages/docs/self-hosting.mdx index 03d1908f..9eb7c337 100644 --- a/src/pages/docs/self-hosting.mdx +++ b/src/pages/docs/self-hosting.mdx @@ -75,7 +75,7 @@ postgres ──── PeerDB CDC ──── clickhouse (continuous replicati | Workflow | `temporal` | Durable workflow engine — shares main Postgres | | CDC | PeerDB stack | Continuous Postgres → ClickHouse replication (10 services) | -
Next Steps
+## Next Steps diff --git a/src/pages/docs/simulation/concepts/agent-definition.mdx b/src/pages/docs/simulation/concepts/agent-definition.mdx index f764b2c4..990c8b1c 100644 --- a/src/pages/docs/simulation/concepts/agent-definition.mdx +++ b/src/pages/docs/simulation/concepts/agent-definition.mdx @@ -134,7 +134,7 @@ After creating an agent, open it from the list to access the detail screen. Here -
Next Steps
+## Next Steps diff --git a/src/pages/docs/simulation/concepts/global-nodes.mdx b/src/pages/docs/simulation/concepts/global-nodes.mdx index b66017bd..c7c0e5fc 100644 --- a/src/pages/docs/simulation/concepts/global-nodes.mdx +++ b/src/pages/docs/simulation/concepts/global-nodes.mdx @@ -78,7 +78,7 @@ You turn a node into a global node from the workflow editor. A conversation node Only conversation nodes can be global. Tool nodes always follow the edges you draw. -
Next Steps
+## Next Steps diff --git a/src/pages/docs/simulation/concepts/personas.mdx b/src/pages/docs/simulation/concepts/personas.mdx index c3ec5225..adf8e7bc 100644 --- a/src/pages/docs/simulation/concepts/personas.mdx +++ b/src/pages/docs/simulation/concepts/personas.mdx @@ -111,7 +111,7 @@ From the Personas page, click **Create your own persona**. Choose **Voice** or * -
Next Steps
+## Next Steps diff --git a/src/pages/docs/simulation/concepts/scenarios.mdx b/src/pages/docs/simulation/concepts/scenarios.mdx index 129953da..a739a883 100644 --- a/src/pages/docs/simulation/concepts/scenarios.mdx +++ b/src/pages/docs/simulation/concepts/scenarios.mdx @@ -201,7 +201,7 @@ When you open a scenario from the list, you see the **scenario detail** screen. -
Next Steps
+## Next Steps diff --git a/src/pages/docs/simulation/features/evaluate-tool-calling.mdx b/src/pages/docs/simulation/features/evaluate-tool-calling.mdx index da5f6d07..8d71ff7c 100644 --- a/src/pages/docs/simulation/features/evaluate-tool-calling.mdx +++ b/src/pages/docs/simulation/features/evaluate-tool-calling.mdx @@ -55,7 +55,7 @@ You enable tool call evaluation when creating or editing a **run test** (agent-b --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/simulation/features/fix-my-agent.mdx b/src/pages/docs/simulation/features/fix-my-agent.mdx index 98f34d09..0c3122a8 100644 --- a/src/pages/docs/simulation/features/fix-my-agent.mdx +++ b/src/pages/docs/simulation/features/fix-my-agent.mdx @@ -256,7 +256,7 @@ Do you need production-grade optimization? --- -
Next Steps
+## Next Steps Next Steps
+## Next Steps diff --git a/src/pages/docs/simulation/features/prompt-simulation.mdx b/src/pages/docs/simulation/features/prompt-simulation.mdx index 86bf089f..62b8bb18 100644 --- a/src/pages/docs/simulation/features/prompt-simulation.mdx +++ b/src/pages/docs/simulation/features/prompt-simulation.mdx @@ -150,7 +150,7 @@ Before you start: have a **prompt template** with at least one saved **prompt ve --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/simulation/features/run-simulation.mdx b/src/pages/docs/simulation/features/run-simulation.mdx index 031f75f0..e104d57b 100644 --- a/src/pages/docs/simulation/features/run-simulation.mdx +++ b/src/pages/docs/simulation/features/run-simulation.mdx @@ -49,7 +49,7 @@ Review the summary of your test configuration. Click **Create** to start the tes Once the test starts, you can monitor progress from the test detail page. See [View Results](/docs/simulation/features/view-results) for how to read scores, transcripts, and analytics. -
Next Steps
+## Next Steps diff --git a/src/pages/docs/simulation/features/simulation-using-sdk.mdx b/src/pages/docs/simulation/features/simulation-using-sdk.mdx index 65839261..b6181391 100644 --- a/src/pages/docs/simulation/features/simulation-using-sdk.mdx +++ b/src/pages/docs/simulation/features/simulation-using-sdk.mdx @@ -133,7 +133,7 @@ You need: Python 3.10+, **FI_API_KEY** and **FI_SECRET_KEY**, a **chat simulatio --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/simulation/features/view-results.mdx b/src/pages/docs/simulation/features/view-results.mdx index 62a1487e..11cda9e6 100644 --- a/src/pages/docs/simulation/features/view-results.mdx +++ b/src/pages/docs/simulation/features/view-results.mdx @@ -106,7 +106,7 @@ Clicking on a specific call opens a detail drawer showing: --- -
Next Steps
+## Next Steps diff --git a/src/pages/docs/tracing/concepts/index.mdx b/src/pages/docs/tracing/concepts/index.mdx index 70dc355c..c36ed2b1 100644 --- a/src/pages/docs/tracing/concepts/index.mdx +++ b/src/pages/docs/tracing/concepts/index.mdx @@ -42,7 +42,7 @@ Each **trace** is one request or execution. Each **span** is one operation (LLM, --- -
Next Steps
+## Next Steps From ef8db3f7f116b2f9e5029616ed68e95e0f739faa Mon Sep 17 00:00:00 2001 From: Shibu Date: Thu, 7 May 2026 17:47:44 +0530 Subject: [PATCH 7/7] fix: restore Card title to h3 for correct heading hierarchy MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Card titles sit under ## Next Steps (h2) in the DOM, so they should be h3, not p. Restores the heading hierarchy: h1 → h2 (Next Steps) → h3 (card title). Co-Authored-By: Claude Sonnet 4.6 --- src/components/docs/Card.astro | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/docs/Card.astro b/src/components/docs/Card.astro index 4210fdc1..ee482b87 100644 --- a/src/components/docs/Card.astro +++ b/src/components/docs/Card.astro @@ -86,7 +86,7 @@ const Tag = href ? 'a' : 'div'; )} -

@@ -96,7 +96,7 @@ const Tag = href ? 'a' : 'div'; )} -

+