CLAUDE.md - Orbicorp AI Agent Platform
orbicorp-full/
├── orbicorp-frontend/ # Vanilla HTML/CSS/JS
│ ├── orbicorp-api.js # API client (tüm endpoint'ler)
│ ├── orbicorp-*.html # Sayfa dosyaları
│ └── orbicorp-dark.css # Dark tema
└── orbicorp-server/ # Node.js + Fastify + TypeScript
├── src/
│ ├── app.ts # Route kayıtları
│ ├── modules/ # Feature modülleri
│ └── shared/middleware/auth.ts
└── prisma/schema.prisma # DB şeması
Backend: Node.js 18+, Fastify 4, TypeScript, Prisma 5, PostgreSQL, Zod
Frontend: Vanilla JS, iframe yapısı, CSS Variables
LLM: Anthropic, OpenAI, Google, OpenRouter
Company, User, Agent, AgentMemory, Session, Message,
Task, Workflow, CommunicationChannel, Notification,
MarketPackage, PackageInstallation, AgentPackage, PackageReview
UserRole: ADMIN | OPERATOR | VIEWER
AgentStatus: ACTIVE | PAUSED | MAINTENANCE
MemoryType: FACT | PREFERENCE | LEARNING
PackageType: SKILL | TOOL | AGENT_TEMPLATE | LANGUAGE_PACK | WORKFLOW_TEMPLATE
Backend Değişkenler & Metodlar
Auth Middleware (src/shared/middleware/auth.ts)
authMiddleware // JWT doğrulama
requireRole ( ...roles ) // Rol kontrolü
requireAdmin // ADMIN gerekli
requireOperator // ADMIN veya OPERATOR
AuthenticatedRequest < T > // Tip: request.user içerir
request . user . userId
request . user . companyId
request . user . email
request . user . role
import prisma from '../../shared/utils/prisma.js' ;
// veya
import { prisma } from '../../shared/utils/prisma.js' ;
Agent Runtime (src/modules/agent-runtime/)
// agent-runtime.service.ts
agentRuntime . chatStream ( sessionId , content , onChunk )
agentRuntime . executeAgentTool ( agent , toolName , toolInput )
// package-runtime.service.ts
packageRuntime . getToolsForAgent ( agentId )
packageRuntime . getSystemPromptAdditions ( agentId )
packageRuntime . getAgentPackageContext ( agentId )
packageRuntime . findToolPackage ( agentId , toolName )
Builtin Tools (llm-types.ts)
// Memory
remember , recall , forget
// Multi-Agent
list_agents , ask_agent , delegate_task , create_agent
// Tasks
create_task , list_tasks , update_task
// Utility
calculate
// Her modülde: index.ts, *.routes.ts, *.schema.ts, *.service.ts
import { agentsService } from './agents.service.js' ;
import { marketService } from './market.service.js' ;
Frontend Değişkenler & Metodlar
API Client (orbicorp-api.js)
window . orbicorpAPI // Global singleton
// Auth
. login ( email , password )
. logout ( )
// Agents
. getAgents ( params )
. getAgent ( id )
. createAgent ( data )
. updateAgent ( id , data )
. deleteAgent ( id )
. pauseAgent ( id )
. resumeAgent ( id )
// Sessions
. getSessions ( )
. createSession ( agentId )
. sendMessage ( sessionId , content ) // Streaming
// Market
. getMarketPackages ( params )
. installPackage ( packageId )
. uninstallPackage ( installationId )
. getInstalledPackages ( )
. assignPackageToAgent ( agentId , installationId )
. removePackageFromAgent ( agentId , apId )
. getAgentPackages ( agentId )
. updateAgentPackage ( agentId , apId , data )
// LLM
. getLLMConfig ( )
. saveLLMConfig ( provider , config )
'orbicorp_access_token'
'orbicorp_refresh_token'
// orbicorp-agents.html
let agents = [ ] ;
let currentEditAgent = null ;
let selectedIds = new Set ( ) ;
// orbicorp-market.html
let allPackages = [ ] ;
let installedPackages = [ ] ;
let categories = [ ] ;
let currentModalPackage = null ;
Auth: POST /api/v1/auth/login|register|refresh|logout
Users: GET|POST /api/v1/users, GET|PUT|DELETE /api/v1/users/:id
Agents: GET|POST /api/v1/agents, GET|PUT|DELETE /api/v1/agents/:id
GET /api/v1/agents/main, POST /api/v1/agents/:id/pause|resume
Sessions: GET|POST /api/v1/sessions, GET /api/v1/sessions/:id/messages
POST /api/v1/sessions/:id/messages (streaming)
Market: GET /api/v1/market, GET /api/v1/market/:id
POST /api/v1/market/install, DELETE /api/v1/market/uninstall/:id
GET /api/v1/market/installed
POST|GET|DELETE|PATCH /api/v1/market/agents/:agentId/packages
LLM: GET|POST /api/v1/llm/config
# Backend
cd orbicorp-server && npm run dev
# Frontend
cd orbicorp-frontend && npx http-server -p 8000
# Prisma
npx prisma generate
npx prisma migrate dev --name < name>
npx prisma migrate reset
# Seed
npx ts-node prisma/seed.ts
npx ts-node prisma/seed-market.ts
Email: [email protected]
Password: admin123
Company: NovaTech Solutions A.Ş.
Hata
Çözüm
authenticate is not defined
authMiddleware kullan
phone field not found
schema.prisma'ya phone ekle + migrate
preHandler hook undefined
Import kontrol et
Template literal içinde <script>
Fonksiyon çağrısı kullan
Tool çalışmıyor
claude-sonnet-4-20250514 modeli kullan
Dosya Düzenleme Kuralları
Route ekleme: app.ts'e import + register
Yeni modül: src/modules/<name>/ altında index.ts, routes.ts, schema.ts, service.ts
DB değişikliği: schema.prisma → npx prisma migrate dev
Frontend API: orbicorp-api.js'e metod ekle
Yeni sayfa: orbicorp-*.html formatında, iframe'de açılır