diff --git a/.github/actions/sdk-drift-check/action.yml b/.github/actions/sdk-drift-check/action.yml index 827b032b..719f8f70 100644 --- a/.github/actions/sdk-drift-check/action.yml +++ b/.github/actions/sdk-drift-check/action.yml @@ -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 @@ -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 diff --git a/.github/actions/sdk-drift-check/check-sdk-drift.ts b/.github/actions/sdk-drift-check/check-sdk-drift.ts index 66e6fbeb..012ddbcc 100644 --- a/.github/actions/sdk-drift-check/check-sdk-drift.ts +++ b/.github/actions/sdk-drift-check/check-sdk-drift.ts @@ -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: @@ -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 { @@ -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; @@ -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, @@ -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( diff --git a/package.json b/package.json index 8079c377..54676f2d 100644 --- a/package.json +++ b/package.json @@ -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", diff --git a/schemas/services.ts b/schemas/services.ts index 6e1223cb..a058ef2e 100644 --- a/schemas/services.ts +++ b/schemas/services.ts @@ -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", + }, + ], + }, ];