n8n-nodes-puter-ai
Version:
Advanced n8n node for Puter.js AI with RAG agentic capabilities, document processing, audio transcription, Supabase integration, and cost-optimized model priorities
197 lines (196 loc) • 8.79 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.PuterAiApi = void 0;
class PuterAiApi {
constructor() {
this.name = 'puterAiApi';
this.displayName = 'Puter AI API';
this.documentationUrl = 'https://puter.com';
this.properties = [
{
displayName: 'Primary Username',
name: 'primaryUsername',
type: 'string',
default: '',
required: true,
placeholder: 'Enter your primary Puter.js username (e.g., Puterai2025)',
description: 'Your main Puter.js account username',
},
{
displayName: 'Primary Password',
name: 'primaryPassword',
type: 'string',
typeOptions: {
password: true,
},
default: '',
required: true,
placeholder: 'Enter your primary Puter.js password',
description: 'Your main Puter.js account password',
},
{
displayName: 'Primary Account Preferred Models',
name: 'primaryModels',
type: 'multiOptions',
default: ['google/gemma-2-27b-it', 'gemini-1.5-flash', 'gemini-2.0-flash', 'gpt-4o-mini'],
description: 'Select preferred models for primary account (in priority order)',
options: [
{ name: 'Gemma 2 27B ($0.10) - Most Cost-Effective', value: 'google/gemma-2-27b-it' },
{ name: 'Gemini 1.5 Flash ($0.225)', value: 'gemini-1.5-flash' },
{ name: 'Gemini 2.0 Flash ($0.30)', value: 'gemini-2.0-flash' },
{ name: 'GPT-5 Nano ($0.35)', value: 'gpt-5-nano' },
{ name: 'GPT-4o Mini ($0.375)', value: 'gpt-4o-mini' },
{ name: 'o4-mini (~$0.40)', value: 'o4-mini' },
{ name: 'GPT-4.1 Nano (~$0.45)', value: 'gpt-4.1-nano' },
{ name: 'Llama 3.1 70B ($0.88)', value: 'meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo' },
{ name: 'GPT-4o (Premium)', value: 'gpt-4o' },
{ name: 'Claude 3.5 Sonnet (Premium)', value: 'claude-3-5-sonnet-20241022' },
{ name: 'o3 (Latest Premium)', value: 'o3' },
{ name: 'o1-pro (Premium)', value: 'o1-pro' },
],
},
{
displayName: 'Fallback Username 1',
name: 'fallback1Username',
type: 'string',
default: '',
placeholder: 'Enter first fallback username (e.g., ticketapp2025)',
description: 'First fallback account username (highest priority)',
},
{
displayName: 'Fallback Password 1',
name: 'fallback1Password',
type: 'string',
typeOptions: {
password: true,
},
default: '',
placeholder: 'Enter first fallback password',
description: 'First fallback account password',
},
{
displayName: 'Fallback 1 Preferred Models',
name: 'fallback1Models',
type: 'multiOptions',
default: ['gemini-1.5-flash', 'gpt-4o-mini', 'gemini-2.0-flash'],
description: 'Select preferred models for first fallback account',
options: [
{ name: 'Gemma 2 27B ($0.10) - Most Cost-Effective', value: 'google/gemma-2-27b-it' },
{ name: 'Gemini 1.5 Flash ($0.225)', value: 'gemini-1.5-flash' },
{ name: 'Gemini 2.0 Flash ($0.30)', value: 'gemini-2.0-flash' },
{ name: 'GPT-5 Nano ($0.35)', value: 'gpt-5-nano' },
{ name: 'GPT-4o Mini ($0.375)', value: 'gpt-4o-mini' },
{ name: 'o4-mini (~$0.40)', value: 'o4-mini' },
{ name: 'GPT-4.1 Nano (~$0.45)', value: 'gpt-4.1-nano' },
{ name: 'Llama 3.1 70B ($0.88)', value: 'meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo' },
{ name: 'GPT-4o (Premium)', value: 'gpt-4o' },
{ name: 'Claude 3.5 Sonnet (Premium)', value: 'claude-3-5-sonnet-20241022' },
{ name: 'o3 (Latest Premium)', value: 'o3' },
{ name: 'o1-pro (Premium)', value: 'o1-pro' },
],
},
{
displayName: 'Fallback Username 2',
name: 'fallback2Username',
type: 'string',
default: '',
placeholder: 'Enter second fallback username (optional)',
description: 'Second fallback account username (lower priority)',
},
{
displayName: 'Fallback Password 2',
name: 'fallback2Password',
type: 'string',
typeOptions: {
password: true,
},
default: '',
placeholder: 'Enter second fallback password',
description: 'Second fallback account password',
},
{
displayName: 'Fallback 2 Preferred Models',
name: 'fallback2Models',
type: 'multiOptions',
default: ['google/gemma-2-27b-it', 'gemini-1.5-flash'],
description: 'Select preferred models for second fallback account',
options: [
{ name: 'Gemma 2 27B ($0.10) - Most Cost-Effective', value: 'google/gemma-2-27b-it' },
{ name: 'Gemini 1.5 Flash ($0.225)', value: 'gemini-1.5-flash' },
{ name: 'Gemini 2.0 Flash ($0.30)', value: 'gemini-2.0-flash' },
{ name: 'GPT-5 Nano ($0.35)', value: 'gpt-5-nano' },
{ name: 'GPT-4o Mini ($0.375)', value: 'gpt-4o-mini' },
{ name: 'o4-mini (~$0.40)', value: 'o4-mini' },
{ name: 'GPT-4.1 Nano (~$0.45)', value: 'gpt-4.1-nano' },
{ name: 'Llama 3.1 70B ($0.88)', value: 'meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo' },
{ name: 'GPT-4o (Premium)', value: 'gpt-4o' },
{ name: 'Claude 3.5 Sonnet (Premium)', value: 'claude-3-5-sonnet-20241022' },
{ name: 'o3 (Latest Premium)', value: 'o3' },
{ name: 'o1-pro (Premium)', value: 'o1-pro' },
],
},
{
displayName: 'Enable Auto Fallback',
name: 'enableAutoFallback',
type: 'boolean',
default: true,
description: 'Automatically switch to fallback accounts on errors',
},
{
displayName: 'Fallback Strategy',
name: 'fallbackStrategy',
type: 'options',
default: 'sequential',
options: [
{
name: 'Sequential',
value: 'sequential',
description: 'Try fallback accounts in priority order',
},
{
name: 'Random',
value: 'random',
description: 'Try fallback accounts in random order',
},
],
displayOptions: {
show: {
enableAutoFallback: [true],
},
},
},
{
displayName: 'Max Retry Attempts',
name: 'maxRetryAttempts',
type: 'number',
default: 3,
description: 'Maximum number of accounts to try before giving up',
typeOptions: {
minValue: 1,
maxValue: 10,
},
displayOptions: {
show: {
enableAutoFallback: [true],
},
},
},
];
this.authenticate = {
type: 'generic',
properties: {
headers: {
Authorization: '=Bearer {{$credentials.token}}',
},
},
};
this.test = {
request: {
baseURL: 'https://puter.com',
url: '/login',
method: 'POST',
},
};
}
}
exports.PuterAiApi = PuterAiApi;