mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-08-04 14:22:09 +03:00
- Add proper TS interfaces to CliproxyapiSettingsTab (replace any/Record) - Add HTTP status checks and error handling on all fetches - Add client-side URL validation before saving proxy URL - Add error state display for version manager service - Document localhost SSRF exception in isPrivateHost - Add ALLOWED_COLUMNS whitelist to updateVersionManagerTool
251 lines
8.4 KiB
JSON
251 lines
8.4 KiB
JSON
{
|
|
"version": "1.0.0",
|
|
"lastScanned": 1775016362438,
|
|
"projectRoot": "/home/openclaw/omniroute-src",
|
|
"techStack": {
|
|
"languages": [
|
|
{
|
|
"name": "JavaScript/TypeScript",
|
|
"version": ">=18.0.0 <24.0.0",
|
|
"confidence": "high",
|
|
"markers": ["package.json"]
|
|
},
|
|
{
|
|
"name": "TypeScript",
|
|
"version": null,
|
|
"confidence": "high",
|
|
"markers": ["tsconfig.json"]
|
|
}
|
|
],
|
|
"frameworks": [
|
|
{
|
|
"name": "express",
|
|
"version": "5.2.1",
|
|
"category": "backend"
|
|
},
|
|
{
|
|
"name": "next",
|
|
"version": "16.0.10",
|
|
"category": "fullstack"
|
|
},
|
|
{
|
|
"name": "react",
|
|
"version": "19.2.4",
|
|
"category": "frontend"
|
|
},
|
|
{
|
|
"name": "react-dom",
|
|
"version": "19.2.4",
|
|
"category": "frontend"
|
|
},
|
|
{
|
|
"name": "@playwright/test",
|
|
"version": "1.58.2",
|
|
"category": "testing"
|
|
},
|
|
{
|
|
"name": "vitest",
|
|
"version": "4.0.18",
|
|
"category": "testing"
|
|
}
|
|
],
|
|
"packageManager": "npm",
|
|
"runtime": "Node.js 18.0.024.0.0"
|
|
},
|
|
"build": {
|
|
"buildCommand": "npm run build",
|
|
"testCommand": "npm test",
|
|
"lintCommand": "npm run lint",
|
|
"devCommand": "npm run dev",
|
|
"scripts": {
|
|
"dev": "node scripts/run-next.mjs dev",
|
|
"build": "node scripts/build-next-isolated.mjs",
|
|
"build:cli": "node scripts/prepublish.mjs",
|
|
"start": "node scripts/run-next.mjs start",
|
|
"lint": "eslint .",
|
|
"electron:dev": "concurrently \"npm run dev\" \"wait-on http://localhost:20128 && cd electron && npm run dev\"",
|
|
"electron:build": "npm run build && cd electron && npm run build",
|
|
"electron:build:win": "npm run build && cd electron && npm run build:win",
|
|
"electron:build:mac": "npm run build && cd electron && npm run build:mac",
|
|
"electron:build:linux": "npm run build && cd electron && npm run build:linux",
|
|
"test": "node --import tsx/esm --test tests/unit/*.test.mjs",
|
|
"test:unit": "node --import tsx/esm --test tests/unit/*.test.mjs",
|
|
"test:plan3": "node --import tsx/esm --test tests/unit/plan3-p0.test.mjs",
|
|
"test:fixes": "node --import tsx/esm --test tests/unit/fixes-p1.test.mjs",
|
|
"test:security": "node --import tsx/esm --test tests/unit/security-fase01.test.mjs",
|
|
"check:cycles": "node scripts/check-cycles.mjs",
|
|
"check:route-validation:t06": "node scripts/check-route-validation.mjs",
|
|
"check:any-budget:t11": "node scripts/check-t11-any-budget.mjs",
|
|
"check:docs-sync": "node scripts/check-docs-sync.mjs",
|
|
"typecheck:core": "tsc --pretty false -p tsconfig.typecheck-core.json",
|
|
"typecheck:noimplicit:core": "tsc --pretty false -p tsconfig.typecheck-noimplicit-core.json",
|
|
"test:integration": "node --import tsx/esm --test tests/integration/*.test.mjs",
|
|
"test:e2e": "node scripts/run-playwright-tests.mjs test tests/e2e/*.spec.ts",
|
|
"test:protocols:e2e": "node scripts/run-protocol-clients-tests.mjs",
|
|
"test:vitest": "vitest run open-sse/mcp-server/__tests__/*.test.ts open-sse/services/autoCombo/__tests__/*.test.ts",
|
|
"test:ecosystem": "node scripts/run-ecosystem-tests.mjs",
|
|
"test:coverage": "c8 --exclude=tests/** --exclude=**/*.test.* --reporter=text-summary --reporter=html --reporter=json-summary --reporter=lcov --check-coverage --statements 55 --lines 55 --functions 55 --branches 60 node --import tsx/esm --test tests/unit/*.test.mjs",
|
|
"test:coverage:legacy": "c8 --exclude=open-sse --check-coverage --lines 50 --functions 50 --branches 50 node --import tsx/esm --test tests/unit/*.test.mjs",
|
|
"coverage:report": "c8 report --exclude=tests/** --exclude=**/*.test.* --reporter=text --reporter=text-summary --reporter=html --reporter=json-summary --reporter=lcov",
|
|
"coverage:report:legacy": "c8 report --exclude=open-sse --reporter=text --reporter=text-summary",
|
|
"test:all": "npm run test:unit && npm run test:vitest && npm run test:ecosystem && npm run test:e2e",
|
|
"check": "npm run lint && npm run test",
|
|
"prepublishOnly": "npm run build:cli",
|
|
"postinstall": "node scripts/postinstall.mjs",
|
|
"prepare": "husky",
|
|
"system-info": "node scripts/system-info.mjs"
|
|
}
|
|
},
|
|
"conventions": {
|
|
"namingStyle": "camelCase",
|
|
"importStyle": null,
|
|
"testPattern": null,
|
|
"fileOrganization": null
|
|
},
|
|
"structure": {
|
|
"isMonorepo": true,
|
|
"workspaces": ["open-sse"],
|
|
"mainDirectories": ["bin", "docs", "public", "scripts", "src", "tests"],
|
|
"gitBranches": {
|
|
"defaultBranch": "main",
|
|
"branchingStrategy": null
|
|
}
|
|
},
|
|
"customNotes": [],
|
|
"directoryMap": {
|
|
"bin": {
|
|
"path": "bin",
|
|
"purpose": "Executable scripts",
|
|
"fileCount": 3,
|
|
"lastAccessed": 1775016362426,
|
|
"keyFiles": ["mcp-server.mjs", "omniroute.mjs", "reset-password.mjs"]
|
|
},
|
|
"docs": {
|
|
"path": "docs",
|
|
"purpose": "Documentation",
|
|
"fileCount": 14,
|
|
"lastAccessed": 1775016362426,
|
|
"keyFiles": [
|
|
"A2A-SERVER.md",
|
|
"API_REFERENCE.md",
|
|
"ARCHITECTURE.md",
|
|
"AUTO-COMBO.md",
|
|
"CLI-TOOLS.md"
|
|
]
|
|
},
|
|
"electron": {
|
|
"path": "electron",
|
|
"purpose": null,
|
|
"fileCount": 5,
|
|
"lastAccessed": 1775016362431,
|
|
"keyFiles": ["README.md", "main.js", "package.json", "preload.js", "types.d.ts"]
|
|
},
|
|
"images": {
|
|
"path": "images",
|
|
"purpose": null,
|
|
"fileCount": 1,
|
|
"lastAccessed": 1775016362434,
|
|
"keyFiles": ["omniroute.png"]
|
|
},
|
|
"logs": {
|
|
"path": "logs",
|
|
"purpose": null,
|
|
"fileCount": 3,
|
|
"lastAccessed": 1775016362434,
|
|
"keyFiles": ["build_clean_tools.log", "build_debug.log", "build_force_clean.log"]
|
|
},
|
|
"open-sse": {
|
|
"path": "open-sse",
|
|
"purpose": null,
|
|
"fileCount": 5,
|
|
"lastAccessed": 1775016362434,
|
|
"keyFiles": ["index.ts", "package.json", "tsconfig.json", "types.d.ts"]
|
|
},
|
|
"public": {
|
|
"path": "public",
|
|
"purpose": "Public files",
|
|
"fileCount": 3,
|
|
"lastAccessed": 1775016362435,
|
|
"keyFiles": ["apple-touch-icon.svg", "favicon.svg", "icon-192.svg"]
|
|
},
|
|
"scripts": {
|
|
"path": "scripts",
|
|
"purpose": "Build/utility scripts",
|
|
"fileCount": 23,
|
|
"lastAccessed": 1775016362435,
|
|
"keyFiles": [
|
|
"bootstrap-env.mjs",
|
|
"build-next-isolated.mjs",
|
|
"check-cycles.mjs",
|
|
"check-docs-sync.mjs",
|
|
"check-route-validation.mjs"
|
|
]
|
|
},
|
|
"src": {
|
|
"path": "src",
|
|
"purpose": "Source code",
|
|
"fileCount": 4,
|
|
"lastAccessed": 1775016362435,
|
|
"keyFiles": ["instrumentation-node.ts", "instrumentation.ts", "proxy.ts", "server-init.ts"]
|
|
},
|
|
"tests": {
|
|
"path": "tests",
|
|
"purpose": "Test files",
|
|
"fileCount": 0,
|
|
"lastAccessed": 1775016362435,
|
|
"keyFiles": []
|
|
},
|
|
"electron/assets": {
|
|
"path": "electron/assets",
|
|
"purpose": "Static assets",
|
|
"fileCount": 4,
|
|
"lastAccessed": 1775016362436,
|
|
"keyFiles": ["icon.icns", "icon.ico", "icon.png"]
|
|
},
|
|
"open-sse/config": {
|
|
"path": "open-sse/config",
|
|
"purpose": "Configuration files",
|
|
"fileCount": 17,
|
|
"lastAccessed": 1775016362436,
|
|
"keyFiles": ["audioRegistry.ts", "cliFingerprints.ts", "codexInstructions.ts"]
|
|
},
|
|
"open-sse/services": {
|
|
"path": "open-sse/services",
|
|
"purpose": "Business logic services",
|
|
"fileCount": 35,
|
|
"lastAccessed": 1775016362437,
|
|
"keyFiles": ["accountFallback.ts", "accountSelector.ts", "apiKeyRotator.ts"]
|
|
},
|
|
"src/app": {
|
|
"path": "src/app",
|
|
"purpose": "Application code",
|
|
"fileCount": 7,
|
|
"lastAccessed": 1775016362438,
|
|
"keyFiles": ["error.tsx", "global-error.tsx", "globals.css"]
|
|
},
|
|
"src/lib": {
|
|
"path": "src/lib",
|
|
"purpose": "Library code",
|
|
"fileCount": 30,
|
|
"lastAccessed": 1775016362438,
|
|
"keyFiles": ["apiBridgeServer.ts", "apiKeyExposure.ts", "cacheControlSettings.ts"]
|
|
},
|
|
"src/middleware": {
|
|
"path": "src/middleware",
|
|
"purpose": "Middleware",
|
|
"fileCount": 1,
|
|
"lastAccessed": 1775016362438,
|
|
"keyFiles": ["promptInjectionGuard.ts"]
|
|
},
|
|
"src/models": {
|
|
"path": "src/models",
|
|
"purpose": "Data models",
|
|
"fileCount": 1,
|
|
"lastAccessed": 1775016362438,
|
|
"keyFiles": ["index.ts"]
|
|
}
|
|
},
|
|
"hotPaths": [],
|
|
"userDirectives": []
|
|
}
|