HTTP API
Endpoint principali esposti dal Node Agent (Express) per gestione chat, caricamenti, coda e monitoraggio.
Thread e messaggi
/main/src/server/serverHttp.ts
app.post('/create-thread/:agentId', async (req, res) => { /* ... */ })
app.get('/thread/:threadId/messages', async (req, res) => { /* ... */ })
POST /create-thread/:agentId: crea un nuovo thread e registra la conversazione su Laravel.GET /thread/:threadId/messages: restituisce i messaggi disponibili dal checkpointer.
curl create-thread
curl -X POST \
-H "Authorization: Bearer $JWT" \
"$BASE_URL/create-thread/agent_123?type=agent"
curl get thread messages
curl -H "Authorization: Bearer $JWT" \
"$BASE_URL/thread/thread_123/messages"
Upload documenti e URL
/main/src/server/serverHttp.ts
app.post('/upload/files/:collectionName', upload.single('file'), async (req, res) => { /* ... */ })
app.post('/upload/url/:collectionName', validateParams(paramsSchema), validateBody(uploadUrlBodySchema), async (req, res) => { /* ... */ })
curl upload file
curl -X POST \
-H "Authorization: Bearer $JWT" \
-F "file=@./docs.pdf" \
"$BASE_URL/upload/files/company123_agentABC"
curl upload url
curl -X POST \
-H "Authorization: Bearer $JWT" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com/faq","type":"single","userId":1}' \
"$BASE_URL/upload/url/company123_agentABC"
Prodotti (e‑commerce)
/main/src/server/serverHttp.ts
app.post('/upload/products/:collectionName', validateParams(paramsSchema), validateBody(uploadProductsBodySchema), async (req, res) => { /* ... */ })
curl upload products
curl -X POST \
-H "Authorization: Bearer $JWT" \
-H "Content-Type: application/json" \
-d '{"websiteUrl":"https://shop.example.com","agentId":"agent_123"}' \
"$BASE_URL/upload/products/company123_agentABC"
Queue monitoring e task
/main/src/server/serverHttp.ts
app.get('/queue/monitor', (req, res) => res.sendFile(htmlPath))
app.get('/queue/tasks/:taskUuid', async (req, res) => { /* ... */ })
app.post('/queue/tasks/:taskUuid/cancel', async (req, res) => { /* ... */ })
curl get task
curl -H "Authorization: Bearer $JWT" \
"$BASE_URL/queue/tasks/$TASK_UUID"
curl cancel task
curl -X POST \
-H "Authorization: Bearer $JWT" \
"$BASE_URL/queue/tasks/$TASK_UUID/cancel"
Gestione collezioni
/main/src/server/serverHttp.ts
app.delete('/collections/:collectionName/:resourceUuid', async (req, res) => { /* ... */ })
app.delete('/collections/:collectionName', async (req, res) => { /* ... */ })
app.delete('/upload/:vectorStoreUuid', async (req, res) => { /* ... */ })
curl delete resource
curl -X DELETE \
-H "Authorization: Bearer $JWT" \
"$BASE_URL/collections/company123_agentABC/$RESOURCE_UUID"
Health
/main/src/server/serverHttp.ts
app.get('/health', async (req, res) => { /* ... */ })
app.get('/health/simple', async (req, res) => { /* ... */ })
curl health
curl "$BASE_URL/health/simple"
Sicurezza (JWT middleware)
/main/src/server/serverHttp.ts
function verifyJwtToken(req: Request, res: Response, next: NextFunction): void { /* ... */ }