@kaia-team/n8n-nodes-kaia
Version:
n8n nodes for Kaia LLM integration
383 lines • 17.6 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Kaia = void 0;
// Import all modular API modules
const apis_1 = require("./apis");
class Kaia {
constructor() {
this.description = {
displayName: 'Kaia',
name: 'kaia',
icon: 'file:kaia.svg',
group: ['transform'],
version: 1,
description: 'Interact with Kaia LLM platform APIs',
subtitle: '={{ $parameter["operation"] + ": " + $parameter["resource"] }}',
defaults: {
name: 'Kaia',
},
inputs: ["main" /* NodeConnectionType.Main */],
outputs: ["main" /* NodeConnectionType.Main */],
credentials: [
{
name: 'kaiaApi',
required: true,
},
],
codex: {
categories: ['AI & ML'],
subcategories: {
'AI & ML': ['LLM', 'Chatbot'],
},
resources: {
primaryDocumentation: [
{
url: 'https://docs.kaia.team',
},
],
},
},
properties: [
{
displayName: 'Resource',
name: 'resource',
type: 'options',
noDataExpression: true,
options: [
{
name: 'Admin API',
value: 'admin',
description: 'Interact with the admin instance API',
},
{
name: 'Admin Token',
value: 'adminTokens',
description: 'Manage admin tokens',
},
{
name: 'Answer Rating',
value: 'answerRatings',
description: 'Manage answer ratings',
},
{
name: 'Answer Reporting',
value: 'answerReportings',
description: 'Manage answer reportings',
},
{
name: 'API Config',
value: 'apiConfigs',
description: 'Manage incoming webhooks (API configs)',
},
{
name: 'Assistant',
value: 'assistants',
description: 'Manage assistants',
},
{
name: 'Chat History',
value: 'chatHistories',
description: 'Manage chat histories',
},
{
name: 'Content',
value: 'contents',
description: 'Manage contents (news tiles)',
},
{
name: 'Crawl',
value: 'crawls',
description: 'Manage websites (crawls)',
},
{
name: 'CSV',
value: 'documentImports',
description: 'Manage CSV document imports',
},
{
name: 'Database Import',
value: 'databaseImports',
description: 'Manage database imports',
},
{
name: 'Document',
value: 'documents',
description: 'Manage documents',
},
{
name: 'Document Shard',
value: 'documentShards',
description: 'Manage document shards',
},
{
name: 'Feed',
value: 'feeds',
},
{
name: 'Function Call',
value: 'functionCalls',
description: 'Manage function calls',
},
{
name: 'Headless Widget API',
value: 'widget',
description: 'Interact with the headless widget API',
},
{
name: 'Link Package',
value: 'linkPackages',
description: 'Manage link packages',
},
{
name: 'Shop',
value: 'shop',
description: 'Manage redeem codes',
},
{
name: 'Statistic',
value: 'statistics',
description: 'Get statistics',
},
{
name: 'Summary Config',
value: 'summaryConfig',
description: 'Manage summary configuration',
},
{
name: 'System Webhook',
value: 'systemWebhook',
description: 'Manage system webhooks',
},
{
name: 'User Account',
value: 'userAccounts',
description: 'Manage user accounts',
},
{
name: 'User File',
value: 'userFiles',
description: 'Manage user files',
},
{
name: 'Vec DB',
value: 'vecDbs',
description: 'Manage vector databases',
},
{
name: 'Widget',
value: 'widgets',
description: 'Manage widget configurations',
},
],
default: 'admin',
},
{
displayName: 'Additional Fields',
name: 'additionalFields',
type: 'collection',
placeholder: 'Add Field',
default: {},
displayOptions: {
show: {
resource: ['widget', 'systemWebhook', 'widgets', 'assistants', 'statistics', 'chatHistories', 'userAccounts', 'answerRatings', 'answerReportings', 'summaryConfig', 'userFiles', 'apiConfigs', 'documents', 'documentImports', 'databaseImports', 'adminTokens', 'vecDbs', 'documentShards', 'crawls', 'feeds', 'contents', 'linkPackages', 'shop'],
},
},
options: [
{
displayName: 'Headers',
name: 'headers',
type: 'fixedCollection',
typeOptions: {
multipleValues: true,
},
placeholder: 'Add Header',
default: {},
options: [
{
name: 'headerParameters',
displayName: 'Headers',
values: [
{
displayName: 'Name',
name: 'name',
type: 'string',
default: '',
description: 'Name of the header',
},
{
displayName: 'Value',
name: 'value',
type: 'string',
default: '',
description: 'Value of the header',
},
],
},
],
},
],
},
// Admin API Properties
...apis_1.adminApiProperties,
// Statistics API Properties
...apis_1.statisticsApiProperties,
// User Files API Properties
...apis_1.userFilesApiProperties,
// Admin Tokens API Properties
...apis_1.adminTokensApiProperties,
// Chat Histories API Properties
...apis_1.chatHistoriesApiProperties,
// Answer Ratings API Properties
...apis_1.answerRatingsApiProperties,
// Answer Reportings API Properties
...apis_1.answerReportingsApiProperties,
// Summary Config API Properties
...apis_1.summaryConfigApiProperties,
// Function Calls API Properties
...apis_1.functionCallsApiProperties,
// User Accounts API Properties
...apis_1.userAccountsApiProperties,
// API Configs API Properties
...apis_1.apiConfigsApiProperties,
// Assistants API Properties
...apis_1.assistantsApiProperties,
// Widget API Properties
...apis_1.widgetApiProperties,
// System Webhook API Properties
...apis_1.systemWebhookApiProperties,
// Widgets API Properties
...apis_1.widgetsApiProperties,
// Documents API Properties
...apis_1.documentsApiProperties,
// Document Imports API Properties
...apis_1.documentImportsApiProperties,
// Vec DBs API Properties
...apis_1.vecDbsApiProperties,
// Document Shards API Properties
...apis_1.documentShardsApiProperties,
// Crawls API Properties
...apis_1.crawlsApiProperties,
// Feeds API Properties
...apis_1.feedsApiProperties,
// Contents API Properties
...apis_1.contentsApiProperties,
// Link Packages API Properties
...apis_1.linkPackagesApiProperties,
// Shop API Properties
...apis_1.shopApiProperties,
// Database Imports API Properties
...apis_1.databaseImportsApiProperties,
],
};
}
async execute() {
const items = this.getInputData();
const returnData = [];
const credentials = await this.getCredentials('kaiaApi');
const adminUrl = credentials.adminUrl;
const adminToken = credentials.adminToken;
const clientId = credentials.clientId;
for (let i = 0; i < items.length; i++) {
try {
const resource = this.getNodeParameter('resource', i);
let response;
if (resource === 'admin') {
response = await (0, apis_1.handleAdminApi)(this, i, adminUrl, adminToken);
}
else if (resource === 'widget') {
response = await (0, apis_1.handleWidgetApi)(this, i, adminUrl, adminToken, clientId);
}
else if (resource === 'systemWebhook') {
response = await (0, apis_1.handleSystemWebhook)(this, i, adminUrl, adminToken);
}
else if (resource === 'widgets') {
response = await (0, apis_1.handleWidgetsApi)(this, i, adminUrl, adminToken);
}
else if (resource === 'assistants') {
response = await (0, apis_1.handleAssistantsApi)(this, i, adminUrl, adminToken);
}
else if (resource === 'statistics') {
response = await (0, apis_1.handleStatisticsApi)(this, i, adminUrl, adminToken);
}
else if (resource === 'chatHistories') {
response = await (0, apis_1.handleChatHistoriesApi)(this, i, adminUrl, adminToken);
}
else if (resource === 'userAccounts') {
response = await (0, apis_1.handleUserAccountsApi)(this, i, adminUrl, adminToken);
}
else if (resource === 'functionCalls') {
response = await (0, apis_1.handleFunctionCallsApi)(this, i, adminUrl, adminToken);
}
else if (resource === 'answerRatings') {
response = await (0, apis_1.handleAnswerRatingsApi)(this, i, adminUrl, adminToken);
}
else if (resource === 'answerReportings') {
response = await (0, apis_1.handleAnswerReportingsApi)(this, i, adminUrl, adminToken);
}
else if (resource === 'summaryConfig') {
response = await (0, apis_1.handleSummaryConfigApi)(this, i, adminUrl, adminToken);
}
else if (resource === 'userFiles') {
response = await (0, apis_1.handleUserFilesApi)(this, i, adminUrl, adminToken);
}
else if (resource === 'apiConfigs') {
response = await (0, apis_1.handleApiConfigsApi)(this, i, adminUrl, adminToken);
}
else if (resource === 'documents') {
response = await (0, apis_1.handleDocumentsApi)(this, i, adminUrl, adminToken);
}
else if (resource === 'documentImports') {
response = await (0, apis_1.handleDocumentImportsApi)(this, i, adminUrl, adminToken);
}
else if (resource === 'adminTokens') {
response = await (0, apis_1.handleAdminTokensApi)(this, i, adminUrl, adminToken);
}
else if (resource === 'vecDbs') {
response = await (0, apis_1.handleVecDbsApi)(this, i, adminUrl, adminToken);
}
else if (resource === 'documentShards') {
response = await (0, apis_1.handleDocumentShardsApi)(this, i, adminUrl, adminToken);
}
else if (resource === 'crawls') {
response = await (0, apis_1.handleCrawlsApi)(this, i, adminUrl, adminToken);
}
else if (resource === 'feeds') {
response = await (0, apis_1.handleFeedsApi)(this, i, adminUrl, adminToken);
}
else if (resource === 'contents') {
response = await (0, apis_1.handleContentsApi)(this, i, adminUrl, adminToken);
}
else if (resource === 'linkPackages') {
response = await (0, apis_1.handleLinkPackagesApi)(this, i, adminUrl, adminToken);
}
else if (resource === 'shop') {
response = await (0, apis_1.handleShopApi)(this, i, adminUrl, adminToken);
}
else if (resource === 'databaseImports') {
response = await (0, apis_1.handleDatabaseImportsApi)(this, i, adminUrl, adminToken);
}
if (response) {
// Handle both single objects and arrays of execution data
if (Array.isArray(response)) {
// If response is already an array of INodeExecutionData, spread it
returnData.push(...response);
}
else {
// If response is a single object, wrap it in INodeExecutionData
returnData.push({ json: response });
}
}
}
catch (error) {
if (this.continueOnFail()) {
returnData.push({ json: { error: error.message } });
continue;
}
throw error;
}
}
return [returnData];
}
}
exports.Kaia = Kaia;
//# sourceMappingURL=Kaia.node.js.map