Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .github/actions/sdk-drift-check/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ inputs:
vocs-config:
description: "Path to vocs config file"
required: false
default: "./vocs.config.tsx"
default: "./vocs.config.ts"
sdk-path-prefix:
description: "Sidebar path prefix for SDK references"
required: false
Expand Down Expand Up @@ -60,11 +60,13 @@ runs:
mkdir -p ${{ inputs.output-dir }}

# Run the check script bundled with this action
set +e
pnpm dlx tsx ${{ github.action_path }}/check-sdk-drift.ts \
--output ${{ inputs.output-dir }}/drift-report.json \
2>&1 | tee ${{ inputs.output-dir }}/drift-report.txt

EXIT_CODE=${PIPESTATUS[0]}
set -e

# Parse results for outputs
if [ -f "${{ inputs.output-dir }}/drift-report.json" ]; then
Expand Down
37 changes: 31 additions & 6 deletions .github/actions/sdk-drift-check/check-sdk-drift.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
/**
* SDK Manifest Drift Check
*
* Validates that sidebar SDK references in vocs.config.tsx match actual exports
* Validates that sidebar SDK references in the Vocs config match actual exports
* from the TypeScript SDK package. Runs daily to detect drift between docs and SDK.
*
* Usage:
Expand All @@ -11,18 +11,18 @@
*
* Configuration (via environment or defaults):
* SDK_PACKAGE: npm package name to check (default: "mpay")
* VOCS_CONFIG: path to vocs config (default: "./vocs.config.tsx")
* VOCS_CONFIG: path to vocs config (default: repo vocs.config.ts or vocs.config.tsx)
* SDK_PATH_PREFIX: sidebar path prefix for SDK refs (default: "/sdk/typescript")
*/

import { existsSync, readFileSync, writeFileSync } from "node:fs";
import { dirname, join } from "node:path";
import { dirname, isAbsolute, join } from "node:path";
import { fileURLToPath } from "node:url";

const __dirname = dirname(fileURLToPath(import.meta.url));

/**
* Find the workspace root by looking for vocs.config.tsx or package.json
* Find the workspace root by looking for a Vocs config or package.json
* Starts from cwd and walks up
*/
export function findWorkspaceRoot(): string {
Expand All @@ -41,6 +41,31 @@ export function findWorkspaceRoot(): string {

const rootDir = findWorkspaceRoot();

function resolveVocsConfigPath(configPath?: string): string {
if (configPath) {
const resolvedPath = isAbsolute(configPath)
? configPath
: join(rootDir, configPath);
if (existsSync(resolvedPath)) {
return resolvedPath;
}
}

const defaultCandidates = ["vocs.config.ts", "vocs.config.tsx"];
for (const candidate of defaultCandidates) {
const resolvedPath = join(rootDir, candidate);
if (existsSync(resolvedPath)) {
return resolvedPath;
}
}

return configPath
? isAbsolute(configPath)
? configPath
: join(rootDir, configPath)
: join(rootDir, "vocs.config.ts");
}

export interface DriftCheckConfig {
sdkPackage: string;
vocsConfigPath: string;
Expand Down Expand Up @@ -130,7 +155,7 @@ function getConfig(): DriftCheckConfig {
const args = parseArgs();
return {
sdkPackage: process.env.SDK_PACKAGE || "mpay",
vocsConfigPath: process.env.VOCS_CONFIG || join(rootDir, "vocs.config.tsx"),
vocsConfigPath: resolveVocsConfigPath(process.env.VOCS_CONFIG),
sdkPathPrefix: process.env.SDK_PATH_PREFIX || "/sdk/typescript",
pagesDir: join(rootDir, "src", "pages"),
outputPath: args.output,
Expand Down Expand Up @@ -159,7 +184,7 @@ export function extractSidebarLinksFromContent(
}

/**
* Extract sidebar links from vocs.config.tsx using regex
* Extract sidebar links from the Vocs config using regex
* (avoids needing to execute the config)
*/
export function extractSidebarLinks(
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"build": "node scripts/generate-discovery.ts && node scripts/build-diagrams.ts && node scripts/copy-vocs-theme.ts && node scripts/generate-cli-help.ts && node scripts/generate-og-descriptions.ts && vite build",
"check": "biome check --write",
"check:ci": "biome check",
"check:sdk-drift": "npx tsx .github/actions/sdk-drift-check/check-sdk-drift.ts",
"check:sdk-drift": "corepack pnpm dlx tsx .github/actions/sdk-drift-check/check-sdk-drift.ts",
"check:types": "tsc --noEmit",
"dev": "node scripts/generate-discovery.ts && vite dev",
"generate:discovery": "node scripts/generate-discovery.ts",
Expand Down
41 changes: 41 additions & 0 deletions schemas/services.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6315,4 +6315,45 @@ export const services: ServiceDef[] = [
},
],
},

// ── Agoragentic ────────────────────────────────────────────────────────
{
id: "agoragentic",
name: "Agoragentic",
url: "https://agoragentic.com",
serviceUrl: "https://agoragentic.com",
description:
"Capability router, payment stack, and trust layer for AI agents.",
categories: ["ai"],
integration: "third-party",
tags: ["router", "marketplace", "capability-discovery", "agent-to-agent"],
docs: {
homepage: "https://agoragentic.com",
llmsTxt: "https://agoragentic.com/llms-ctx.txt",
},
provider: { name: "Agoragentic", url: "https://agoragentic.com" },
realm: "agoragentic.com",
intent: "charge",
payment: TEMPO_PAYMENT,
endpoints: [
{
route: "POST /api/invoke/:id",
desc: "Invoke any marketplace capability with per-request payment",
dynamic: true,
},
{
route: "POST /api/execute",
desc: "Smart router - describe a task, routes to best provider",
dynamic: true,
},
{
route: "GET /api/capabilities",
desc: "Browse all available capabilities",
},
{
route: "GET /api/listings",
desc: "List all available services with prices",
},
],
},
];
Loading