33 lines
1.2 KiB
Markdown
33 lines
1.2 KiB
Markdown
# 06-01 PLAN — Schema + API Agent Defs
|
|
|
|
## Tasks
|
|
|
|
1. **Add `arcadia_agent_defs` table to `shared/schema.ts`**
|
|
- Fields: id, tenantId, userId, name, description, spec (jsonb), status, version, lastTaskId, createdAt, updatedAt
|
|
- Run migration if needed
|
|
|
|
2. **Create `server/agent-defs/service.ts`**
|
|
- `createAgentDef()`, `getAgentDef()`, `listAgentDefs()`, `updateAgentDef()`, `deleteAgentDef()`
|
|
- `updateStatus()` helper for draft → assembling → ready → deployed
|
|
- `incrementVersion()` on deploy
|
|
|
|
3. **Create `server/agent-defs/routes.ts`**
|
|
- GET `/api/agent-defs` (list by tenantId)
|
|
- POST `/api/agent-defs` (create)
|
|
- PATCH `/api/agent-defs/:id` (update spec/status)
|
|
- DELETE `/api/agent-defs/:id`
|
|
- POST `/api/agent-defs/:id/deploy` (status → deployed, version++)
|
|
- POST `/api/agent-defs/:id/run` (POST to blackboard task)
|
|
|
|
4. **Register routes in `server/routes.ts`**
|
|
- Import and registerAgentDefRoutes()
|
|
|
|
## Reuse
|
|
- DB functions from existing patterns
|
|
- Blackboard service for task creation (no modification)
|
|
|
|
## Done Criteria
|
|
- API responds 200 on all endpoints
|
|
- Status transitions work: draft → assembling → ready → deployed
|
|
- `lastTaskId` links to blackboard_tasks
|