Skip to content

docs: add Agent Endpoints page under Tools#98

Merged
s-adamantine merged 9 commits into
mainfrom
docs/agent-endpoints
Mar 6, 2026
Merged

docs: add Agent Endpoints page under Tools#98
s-adamantine merged 9 commits into
mainfrom
docs/agent-endpoints

Conversation

@holkexyz

@holkexyz holkexyz commented Mar 6, 2026

Copy link
Copy Markdown
Member

Summary

  • Adds new "Agent Endpoints" page under Tools documenting the Hyperscan agent API at hyperscan.dev/agents
  • Covers read endpoints, write guides, GraphQL API, lexicon authorities, and typical agent workflow
  • Adds navigation entry in the sidebar

Test plan

  • Verify the page renders correctly at /tools/agent-endpoints
  • Confirm sidebar navigation shows "Agent Endpoints" under Tools
  • Check all external links resolve

🤖 Generated with Claude Code

Summary by CodeRabbit

Release Notes

  • New Features

    • New Agent Endpoints documentation page providing machine-readable access to agent data, schemas, and network guides.
    • Agent Endpoints navigation link added under Tools section.
  • Documentation

    • Updated getting-started guides and FAQ to reference Agent Endpoints for machine-readable schemas and guides.

Documents the Hyperscan agent API — machine-readable markdown endpoints
for AI agents to interact with the hypercerts network (read, write guides,
lexicons, governance, GraphQL).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@vercel

vercel Bot commented Mar 6, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
hypercerts-atproto-documentation Ready Ready Preview, Comment Mar 6, 2026 11:27am
hypercerts-v0.2-documentation Ready Ready Preview, Comment Mar 6, 2026 11:27am

Request Review

@coderabbitai

coderabbitai Bot commented Mar 6, 2026

Copy link
Copy Markdown

Warning

Rate limit exceeded

@s-adamantine has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 16 minutes and 14 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: d975ba6b-487e-4fd7-9311-1d7bf000b1df

📥 Commits

Reviewing files that changed from the base of the PR and between 35bea82 and 3b95233.

📒 Files selected for processing (1)
  • pages/tools/agent-endpoints.md
📝 Walkthrough

Walkthrough

This pull request introduces Agent Endpoints documentation and navigation entry, refactors the LastUpdated component from imperative DOM manipulation to declarative JSX rendering, repositions it within the page layout, and adds cross-references to the new Agent Endpoints feature throughout existing documentation pages.

Changes

Cohort / File(s) Summary
Navigation & New Documentation
lib/navigation.js, pages/tools/agent-endpoints.md
Added "Agent Endpoints" navigation entry under Tools section and created corresponding documentation page describing machine-readable endpoints for lexicon schemas, guides, and network data.
Component Refactoring
components/LastUpdated.js, components/Layout.js
Refactored LastUpdated from useEffect-based DOM manipulation to declarative JSX rendering; repositioned component to render inside the article element after children rather than as a sibling.
Metadata Updates
lib/lastUpdated.json
Updated timestamps for two getting-started pages to reflect recent modifications.
Documentation References
pages/getting-started/building-on-hypercerts.md, pages/getting-started/working-with-evaluations.md, pages/reference/faq.md
Added cross-references to Agent Endpoints throughout documentation for discoverability of machine-readable schemas and guides.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related PRs

  • Merge quickstart and create cert #81 — Both PRs modify the navigation structure in lib/navigation.js, with this PR adding an Agent Endpoints entry while the related PR manages Get Started entries.

Poem

🐰 A new endpoint hops into sight,
Navigation shines ever so bright,
DOM cleanup flows clean and pure,
Refactored with JSX, stable and sure,
Agents now guided through schemas with glee!

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately and concisely summarizes the primary change: adding a new Agent Endpoints documentation page under the Tools section with corresponding navigation updates.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch docs/agent-endpoints

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@pages/tools/agent-endpoints.md`:
- Line 8: Update the wording that claims "All endpoints return `text/markdown`"
so it only applies to the agent endpoints (explicitly mention the `/agents/*`
routes) and not to other APIs like the Hyperindex GraphQL API; search for the
same claim later (lines referencing Hyperindex GraphQL/API) and change those
instances to clarify that non-agent endpoints may use other content types (e.g.,
GraphQL JSON), making the Markdown statement scoped to `/agents/*` only.
- Line 40: Update the user-facing sentence "Hyperscan also serves step-by-step
write guides as markdown." so the proper noun is capitalized: change "markdown"
to "Markdown" wherever that exact sentence appears (e.g., the guide intro string
in pages/tools/agent-endpoints.md).

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 657f8de9-f17b-492e-ab19-53d1071541b8

📥 Commits

Reviewing files that changed from the base of the PR and between 4e902e4 and fc37398.

📒 Files selected for processing (2)
  • lib/navigation.js
  • pages/tools/agent-endpoints.md

Comment thread pages/tools/agent-endpoints.md Outdated

# Agent Endpoints

The agent endpoints provide machine-readable API access for AI agents and scripts. All endpoints return `text/markdown` for easy consumption — no HTML parsing needed.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Scope the Markdown claim to the /agents/* routes.

The page later introduces the Hyperindex GraphQL API, which is not a Markdown endpoint. As written, “All endpoints return text/markdown” is too broad and can mislead integrators about how to parse responses.

✏️ Suggested wording
-The agent endpoints provide machine-readable API access for AI agents and scripts. All endpoints return `text/markdown` for easy consumption — no HTML parsing needed.
+The `/agents/*` endpoints provide machine-readable API access for AI agents and scripts. Those routes return `text/markdown` for easy consumption — no HTML parsing needed.

Also applies to: 56-61

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pages/tools/agent-endpoints.md` at line 8, Update the wording that claims
"All endpoints return `text/markdown`" so it only applies to the agent endpoints
(explicitly mention the `/agents/*` routes) and not to other APIs like the
Hyperindex GraphQL API; search for the same claim later (lines referencing
Hyperindex GraphQL/API) and change those instances to clarify that non-agent
endpoints may use other content types (e.g., GraphQL JSON), making the Markdown
statement scoped to `/agents/*` only.

Comment thread pages/tools/agent-endpoints.md Outdated

## Write guides

Hyperscan also serves step-by-step write guides as markdown. Fetch the index or jump to a specific guide:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Capitalize “Markdown” in the guide intro.

This is user-facing copy, so the proper noun should be capitalized here.

✏️ Suggested wording
-Hyperscan also serves step-by-step write guides as markdown. Fetch the index or jump to a specific guide:
+Hyperscan also serves step-by-step write guides as Markdown. Fetch the index or jump to a specific guide:
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Hyperscan also serves step-by-step write guides as markdown. Fetch the index or jump to a specific guide:
Hyperscan also serves step-by-step write guides as Markdown. Fetch the index or jump to a specific guide:
🧰 Tools
🪛 LanguageTool

[uncategorized] ~40-~40: Did you mean the formatting language “Markdown” (= proper noun)?
Context: ...lso serves step-by-step write guides as markdown. Fetch the index or jump to a specific ...

(MARKDOWN_NNP)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pages/tools/agent-endpoints.md` at line 40, Update the user-facing sentence
"Hyperscan also serves step-by-step write guides as markdown." so the proper
noun is capitalized: change "markdown" to "Markdown" wherever that exact
sentence appears (e.g., the guide intro string in
pages/tools/agent-endpoints.md).

@s-adamantine

Copy link
Copy Markdown
Contributor

finding a couple of small things, going to fix it and then merge it afterwards

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

♻️ Duplicate comments (1)
pages/tools/agent-endpoints.md (1)

14-14: ⚠️ Potential issue | 🟡 Minor

Capitalize “Markdown” in the prose.

Keep text/markdown lowercase as the MIME type, but the noun in this sentence should be capitalized.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pages/tools/agent-endpoints.md` at line 14, Update the prose where it
currently reads "The endpoint returns a self-describing markdown document..." to
capitalize the noun "Markdown" (i.e., "self-describing Markdown document"); keep
any MIME type occurrences as `text/markdown` lowercase. Locate and change the
literal phrase "self-describing markdown document" to "self-describing Markdown
document" in the pages/tools/agent-endpoints.md content.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@components/LastUpdated.js`:
- Around line 11-18: The rendered date currently uses new
Date(date).toLocaleDateString(...) which depends on the server/runtime locale
and causes SSR hydration mismatches; update the LastUpdated component to pass an
explicit timeZone option (e.g., timeZone: 'UTC' or your chosen fixed zone) into
toLocaleDateString (or toLocaleString) so the server and client produce the same
calendar date for the ISO timestamp; locate the new
Date(date).toLocaleDateString call in LastUpdated.js and add the timeZone option
alongside year/month/day tofix the inconsistency.

---

Duplicate comments:
In `@pages/tools/agent-endpoints.md`:
- Line 14: Update the prose where it currently reads "The endpoint returns a
self-describing markdown document..." to capitalize the noun "Markdown" (i.e.,
"self-describing Markdown document"); keep any MIME type occurrences as
`text/markdown` lowercase. Locate and change the literal phrase "self-describing
markdown document" to "self-describing Markdown document" in the
pages/tools/agent-endpoints.md content.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 62040e2b-87f5-43f6-ab11-9c7c494e8977

📥 Commits

Reviewing files that changed from the base of the PR and between fc37398 and cd31a1c.

📒 Files selected for processing (9)
  • .beads/issues.jsonl
  • components/LastUpdated.js
  • components/Layout.js
  • lib/lastUpdated.json
  • pages/architecture/indexers-and-discovery.md
  • pages/getting-started/building-on-hypercerts.md
  • pages/getting-started/working-with-evaluations.md
  • pages/reference/faq.md
  • pages/tools/agent-endpoints.md
✅ Files skipped from review due to trivial changes (2)
  • lib/lastUpdated.json
  • pages/architecture/indexers-and-discovery.md

Comment thread components/LastUpdated.js
Comment on lines +11 to +18
return (
<p className="last-updated">
Last updated{' '}
{new Date(date).toLocaleDateString('en-US', {
year: 'numeric',
month: 'long',
day: 'numeric',
})}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

git ls-files components/ lib/ | head -20

Repository: hypercerts-org/documentation

Length of output: 545


🏁 Script executed:

cat -n components/LastUpdated.js

Repository: hypercerts-org/documentation

Length of output: 725


🏁 Script executed:

head -100 lib/lastUpdated.json

Repository: hypercerts-org/documentation

Length of output: 2989


🏁 Script executed:

#!/bin/bash
set -euo pipefail

node <<'NODE'
const fs = require('fs');

const data = JSON.parse(fs.readFileSync('lib/lastUpdated.json', 'utf8'));
const zones = ['UTC', 'America/Los_Angeles', 'Asia/Singapore'];

const problems = [];

for (const [route, iso] of Object.entries(data)) {
  const rendered = Object.fromEntries(
    zones.map((tz) => [
      tz,
      new Intl.DateTimeFormat('en-US', {
        timeZone: tz,
        year: 'numeric',
        month: 'long',
        day: 'numeric',
      }).format(new Date(iso)),
    ]),
  );

  if (new Set(Object.values(rendered)).size > 1) {
    problems.push({ route, iso, rendered });
  }
}

if (problems.length === 0) {
  console.log('✓ No timestamps found that format to different dates across timezones.');
} else {
  console.log(`Found ${problems.length} routes with timezone-dependent formatting:\n`);
  problems.forEach(p => {
    console.log(`Route: ${p.route}`);
    console.log(`ISO: ${p.iso}`);
    console.log(`Rendered:`, p.rendered);
    console.log('');
  });
}
NODE

Repository: hypercerts-org/documentation

Length of output: 1258


Use a fixed time zone for this rendered date.

toLocaleDateString() defaults to the runtime's local zone, causing SSR to render one calendar day while the browser hydrates to another. The timestamps in lib/lastUpdated.json have offset-bearing ISO formats, and at least 6 routes currently format to different dates across time zones (UTC vs America/Los_Angeles vs Asia/Singapore), surfacing as hydration warnings and inconsistent "Last updated" dates.

💡 Proposed fix
+const lastUpdatedFormatter = new Intl.DateTimeFormat('en-US', {
+  timeZone: 'UTC',
+  year: 'numeric',
+  month: 'long',
+  day: 'numeric',
+});
+
 export function LastUpdated() {
   const router = useRouter();
   const currentPath = router.asPath.split('#')[0].split('?')[0];
   const date = lastUpdated[currentPath];
 
   if (!date) return null;
 
   return (
     <p className="last-updated">
       Last updated{' '}
-      {new Date(date).toLocaleDateString('en-US', {
-        year: 'numeric',
-        month: 'long',
-        day: 'numeric',
-      })}
+      {lastUpdatedFormatter.format(new Date(date))}
     </p>
   );
 }
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@components/LastUpdated.js` around lines 11 - 18, The rendered date currently
uses new Date(date).toLocaleDateString(...) which depends on the server/runtime
locale and causes SSR hydration mismatches; update the LastUpdated component to
pass an explicit timeZone option (e.g., timeZone: 'UTC' or your chosen fixed
zone) into toLocaleDateString (or toLocaleString) so the server and client
produce the same calendar date for the ISO timestamp; locate the new
Date(date).toLocaleDateString call in LastUpdated.js and add the timeZone option
alongside year/month/day tofix the inconsistency.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants