- matrix-gateway: POST /internal/matrix/presence/online endpoint - usePresenceHeartbeat hook with activity tracking - Auto away after 5 min inactivity - Offline on page close/visibility change - Integrated in MatrixChatRoom component
63 lines
2.4 KiB
TypeScript
63 lines
2.4 KiB
TypeScript
/**
|
||
* Скрипт для деплою всіх агентів на НОДА2
|
||
* Запуск: npx tsx scripts/deploy-all-node2-agents.ts
|
||
*/
|
||
|
||
import { getNode2Agents } from '../src/api/node2Agents';
|
||
import { deployAgentToNode2, deployAllAgentsToNode2 } from '../src/api/node2Deployment';
|
||
|
||
async function deployAllAgents() {
|
||
console.log('🚀 Початок деплою всіх агентів на НОДА2...\n');
|
||
|
||
try {
|
||
// Отримуємо всіх агентів
|
||
console.log('📋 Отримання списку агентів...');
|
||
const agentsResponse = await getNode2Agents();
|
||
const agents = agentsResponse.items;
|
||
|
||
console.log(`✅ Знайдено ${agents.length} агентів\n`);
|
||
|
||
// Фільтруємо агентів, які не задеплоєні
|
||
const undeployedAgents = agents.filter(
|
||
agent => !agent.deployment_status?.deployed || agent.deployment_status?.health_check === 'unhealthy'
|
||
);
|
||
|
||
console.log(`📊 Статистика:`);
|
||
console.log(` - Всього агентів: ${agents.length}`);
|
||
console.log(` - Задеплоєно: ${agents.length - undeployedAgents.length}`);
|
||
console.log(` - Потрібно задеплоїти: ${undeployedAgents.length}\n`);
|
||
|
||
if (undeployedAgents.length === 0) {
|
||
console.log('✅ Всі агенти вже задеплоєні!');
|
||
return;
|
||
}
|
||
|
||
// Деплоїмо всіх агентів
|
||
console.log('🚀 Початок масового деплою...\n');
|
||
const result = await deployAllAgentsToNode2(undeployedAgents);
|
||
|
||
console.log('\n📊 Результати деплою:');
|
||
console.log(` ✅ Успішно задеплоєно: ${result.success}`);
|
||
console.log(` ❌ Помилок: ${result.failed}\n`);
|
||
|
||
// Виводимо детальні результати
|
||
if (result.results.length > 0) {
|
||
console.log('📝 Детальні результати:\n');
|
||
result.results.forEach((r, i) => {
|
||
const agent = undeployedAgents[i];
|
||
const status = r.success ? '✅' : '❌';
|
||
console.log(`${status} ${agent.name} (${agent.id}): ${r.message}`);
|
||
});
|
||
}
|
||
|
||
console.log('\n✅ Деплой завершено!');
|
||
} catch (error) {
|
||
console.error('❌ Помилка при деплої:', error);
|
||
process.exit(1);
|
||
}
|
||
}
|
||
|
||
// Запускаємо деплой
|
||
deployAllAgents();
|
||
|