351c861777
- Migrate source to packages/client and packages/server directories - Namespace all Hermes-specific code under hermes/ subdirectories (api/hermes/, components/hermes/, views/hermes/, stores/hermes/) - Add hermes.* route names and /hermes/* path prefixes - Upgrade @koa/router to v15, adapt path-to-regexp v8 syntax - Fix proxy path rewriting: /api/hermes/v1/* → /v1/*, /api/hermes/* → /api/* - Fix frontend API paths to match backend /api/hermes/* routes - Fix WebSocket terminal path to /api/hermes/terminal - Add proxyMiddleware for reliable unmatched route proxying - Add profiles route module and hermes-cli profile commands - Update CLAUDE.md development guide with new architecture - Add Chinese README (README_zh.md) - Add Web Terminal feature to README Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
18 lines
561 B
TypeScript
18 lines
561 B
TypeScript
import Router from '@koa/router'
|
|
import type { Context, Next } from 'koa'
|
|
import { proxy } from './proxy-handler'
|
|
|
|
export const proxyRoutes = new Router()
|
|
|
|
// Proxy unmatched /api/hermes/* and /v1/* to upstream Hermes API
|
|
proxyRoutes.all('/api/hermes/{*any}', proxy)
|
|
proxyRoutes.all('/v1/{*any}', proxy)
|
|
|
|
// Also register as middleware so it works reliably with nested .use()
|
|
export async function proxyMiddleware(ctx: Context, next: Next) {
|
|
if (ctx.path.startsWith('/api/hermes/') || ctx.path.startsWith('/v1/')) {
|
|
return proxy(ctx)
|
|
}
|
|
await next()
|
|
}
|