machinaos 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.template +71 -0
- package/LICENSE +21 -0
- package/README.md +87 -0
- package/bin/cli.js +159 -0
- package/client/.dockerignore +45 -0
- package/client/Dockerfile +68 -0
- package/client/eslint.config.js +29 -0
- package/client/index.html +13 -0
- package/client/nginx.conf +66 -0
- package/client/package.json +48 -0
- package/client/src/App.tsx +27 -0
- package/client/src/Dashboard.tsx +1173 -0
- package/client/src/ParameterPanel.tsx +301 -0
- package/client/src/components/AIAgentNode.tsx +321 -0
- package/client/src/components/APIKeyValidator.tsx +118 -0
- package/client/src/components/ClaudeChatModelNode.tsx +18 -0
- package/client/src/components/ConditionalEdge.tsx +189 -0
- package/client/src/components/CredentialsModal.tsx +306 -0
- package/client/src/components/EdgeConditionEditor.tsx +443 -0
- package/client/src/components/GeminiChatModelNode.tsx +18 -0
- package/client/src/components/GenericNode.tsx +357 -0
- package/client/src/components/LocationParameterPanel.tsx +154 -0
- package/client/src/components/ModelNode.tsx +286 -0
- package/client/src/components/OpenAIChatModelNode.tsx +18 -0
- package/client/src/components/OutputPanel.tsx +471 -0
- package/client/src/components/ParameterRenderer.tsx +1874 -0
- package/client/src/components/SkillEditorModal.tsx +417 -0
- package/client/src/components/SquareNode.tsx +797 -0
- package/client/src/components/StartNode.tsx +250 -0
- package/client/src/components/ToolkitNode.tsx +365 -0
- package/client/src/components/TriggerNode.tsx +463 -0
- package/client/src/components/auth/LoginPage.tsx +247 -0
- package/client/src/components/auth/ProtectedRoute.tsx +59 -0
- package/client/src/components/base/BaseChatModelNode.tsx +271 -0
- package/client/src/components/icons/AIProviderIcons.tsx +50 -0
- package/client/src/components/maps/GoogleMapsPicker.tsx +137 -0
- package/client/src/components/maps/MapsPreviewPanel.tsx +110 -0
- package/client/src/components/maps/index.ts +26 -0
- package/client/src/components/parameterPanel/InputSection.tsx +1094 -0
- package/client/src/components/parameterPanel/LocationPanelLayout.tsx +65 -0
- package/client/src/components/parameterPanel/MapsSection.tsx +92 -0
- package/client/src/components/parameterPanel/MiddleSection.tsx +571 -0
- package/client/src/components/parameterPanel/OutputSection.tsx +81 -0
- package/client/src/components/parameterPanel/ParameterPanelLayout.tsx +82 -0
- package/client/src/components/parameterPanel/ToolSchemaEditor.tsx +436 -0
- package/client/src/components/parameterPanel/index.ts +42 -0
- package/client/src/components/shared/DataPanel.tsx +142 -0
- package/client/src/components/shared/JSONTreeRenderer.tsx +106 -0
- package/client/src/components/ui/AIResultModal.tsx +204 -0
- package/client/src/components/ui/AndroidSettingsPanel.tsx +401 -0
- package/client/src/components/ui/CodeEditor.tsx +81 -0
- package/client/src/components/ui/CollapsibleSection.tsx +88 -0
- package/client/src/components/ui/ComponentItem.tsx +154 -0
- package/client/src/components/ui/ComponentPalette.tsx +321 -0
- package/client/src/components/ui/ConsolePanel.tsx +1074 -0
- package/client/src/components/ui/ErrorBoundary.tsx +196 -0
- package/client/src/components/ui/InputNodesPanel.tsx +204 -0
- package/client/src/components/ui/MapSelector.tsx +314 -0
- package/client/src/components/ui/Modal.tsx +149 -0
- package/client/src/components/ui/NodeContextMenu.tsx +192 -0
- package/client/src/components/ui/NodeOutputPanel.tsx +1150 -0
- package/client/src/components/ui/OutputDisplayPanel.tsx +381 -0
- package/client/src/components/ui/SettingsPanel.tsx +243 -0
- package/client/src/components/ui/TopToolbar.tsx +736 -0
- package/client/src/components/ui/WhatsAppSettingsPanel.tsx +345 -0
- package/client/src/components/ui/WorkflowSidebar.tsx +294 -0
- package/client/src/config/antdTheme.ts +186 -0
- package/client/src/config/api.ts +54 -0
- package/client/src/contexts/AuthContext.tsx +221 -0
- package/client/src/contexts/ThemeContext.tsx +42 -0
- package/client/src/contexts/WebSocketContext.tsx +1971 -0
- package/client/src/factories/baseChatModelFactory.ts +256 -0
- package/client/src/hooks/useAndroidOperations.ts +164 -0
- package/client/src/hooks/useApiKeyValidation.ts +107 -0
- package/client/src/hooks/useApiKeys.ts +238 -0
- package/client/src/hooks/useAppTheme.ts +17 -0
- package/client/src/hooks/useComponentPalette.ts +51 -0
- package/client/src/hooks/useCopyPaste.ts +155 -0
- package/client/src/hooks/useDragAndDrop.ts +124 -0
- package/client/src/hooks/useDragVariable.ts +88 -0
- package/client/src/hooks/useExecution.ts +313 -0
- package/client/src/hooks/useParameterPanel.ts +176 -0
- package/client/src/hooks/useReactFlowNodes.ts +189 -0
- package/client/src/hooks/useToolSchema.ts +209 -0
- package/client/src/hooks/useWhatsApp.ts +196 -0
- package/client/src/hooks/useWorkflowManagement.ts +46 -0
- package/client/src/index.css +315 -0
- package/client/src/main.tsx +19 -0
- package/client/src/nodeDefinitions/aiAgentNodes.ts +336 -0
- package/client/src/nodeDefinitions/aiModelNodes.ts +340 -0
- package/client/src/nodeDefinitions/androidDeviceNodes.ts +140 -0
- package/client/src/nodeDefinitions/androidServiceNodes.ts +383 -0
- package/client/src/nodeDefinitions/chatNodes.ts +135 -0
- package/client/src/nodeDefinitions/codeNodes.ts +54 -0
- package/client/src/nodeDefinitions/documentNodes.ts +379 -0
- package/client/src/nodeDefinitions/index.ts +15 -0
- package/client/src/nodeDefinitions/locationNodes.ts +463 -0
- package/client/src/nodeDefinitions/schedulerNodes.ts +220 -0
- package/client/src/nodeDefinitions/skillNodes.ts +211 -0
- package/client/src/nodeDefinitions/toolNodes.ts +198 -0
- package/client/src/nodeDefinitions/utilityNodes.ts +284 -0
- package/client/src/nodeDefinitions/whatsappNodes.ts +865 -0
- package/client/src/nodeDefinitions/workflowNodes.ts +41 -0
- package/client/src/nodeDefinitions.ts +104 -0
- package/client/src/schemas/workflowSchema.ts +264 -0
- package/client/src/services/dynamicParameterService.ts +96 -0
- package/client/src/services/execution/aiAgentExecutionService.ts +35 -0
- package/client/src/services/executionService.ts +232 -0
- package/client/src/services/workflowApi.ts +91 -0
- package/client/src/store/useAppStore.ts +582 -0
- package/client/src/styles/theme.ts +508 -0
- package/client/src/styles/zIndex.ts +17 -0
- package/client/src/types/ComponentTypes.ts +39 -0
- package/client/src/types/EdgeCondition.ts +231 -0
- package/client/src/types/INodeProperties.ts +288 -0
- package/client/src/types/NodeTypes.ts +28 -0
- package/client/src/utils/formatters.ts +33 -0
- package/client/src/utils/googleMapsLoader.ts +140 -0
- package/client/src/utils/locationUtils.ts +85 -0
- package/client/src/utils/nodeUtils.ts +31 -0
- package/client/src/utils/workflow.ts +30 -0
- package/client/src/utils/workflowExport.ts +120 -0
- package/client/src/vite-env.d.ts +12 -0
- package/client/tailwind.config.js +60 -0
- package/client/tsconfig.json +25 -0
- package/client/tsconfig.node.json +11 -0
- package/client/vite.config.js +35 -0
- package/docker-compose.prod.yml +107 -0
- package/docker-compose.yml +104 -0
- package/docs-MachinaOs/README.md +85 -0
- package/docs-MachinaOs/deployment/docker.mdx +228 -0
- package/docs-MachinaOs/deployment/production.mdx +345 -0
- package/docs-MachinaOs/docs.json +75 -0
- package/docs-MachinaOs/faq.mdx +309 -0
- package/docs-MachinaOs/favicon.svg +5 -0
- package/docs-MachinaOs/installation.mdx +160 -0
- package/docs-MachinaOs/introduction.mdx +114 -0
- package/docs-MachinaOs/logo/dark.svg +6 -0
- package/docs-MachinaOs/logo/light.svg +6 -0
- package/docs-MachinaOs/nodes/ai-agent.mdx +216 -0
- package/docs-MachinaOs/nodes/ai-models.mdx +240 -0
- package/docs-MachinaOs/nodes/android.mdx +411 -0
- package/docs-MachinaOs/nodes/overview.mdx +181 -0
- package/docs-MachinaOs/nodes/schedulers.mdx +316 -0
- package/docs-MachinaOs/nodes/webhooks.mdx +330 -0
- package/docs-MachinaOs/nodes/whatsapp.mdx +305 -0
- package/docs-MachinaOs/quickstart.mdx +119 -0
- package/docs-MachinaOs/tutorials/ai-agent-workflow.mdx +177 -0
- package/docs-MachinaOs/tutorials/android-automation.mdx +242 -0
- package/docs-MachinaOs/tutorials/first-workflow.mdx +134 -0
- package/docs-MachinaOs/tutorials/whatsapp-automation.mdx +185 -0
- package/nul +0 -0
- package/package.json +70 -0
- package/scripts/build.js +158 -0
- package/scripts/check-ports.ps1 +33 -0
- package/scripts/clean.js +40 -0
- package/scripts/docker.js +93 -0
- package/scripts/kill-port.ps1 +154 -0
- package/scripts/start.js +210 -0
- package/scripts/stop.js +325 -0
- package/server/.dockerignore +44 -0
- package/server/Dockerfile +45 -0
- package/server/constants.py +249 -0
- package/server/core/__init__.py +1 -0
- package/server/core/cache.py +461 -0
- package/server/core/config.py +128 -0
- package/server/core/container.py +99 -0
- package/server/core/database.py +1211 -0
- package/server/core/logging.py +314 -0
- package/server/main.py +289 -0
- package/server/middleware/__init__.py +5 -0
- package/server/middleware/auth.py +89 -0
- package/server/models/__init__.py +1 -0
- package/server/models/auth.py +52 -0
- package/server/models/cache.py +24 -0
- package/server/models/database.py +211 -0
- package/server/models/nodes.py +455 -0
- package/server/package.json +9 -0
- package/server/pyproject.toml +72 -0
- package/server/requirements.txt +83 -0
- package/server/routers/__init__.py +1 -0
- package/server/routers/android.py +294 -0
- package/server/routers/auth.py +203 -0
- package/server/routers/database.py +151 -0
- package/server/routers/maps.py +142 -0
- package/server/routers/nodejs_compat.py +289 -0
- package/server/routers/webhook.py +90 -0
- package/server/routers/websocket.py +2127 -0
- package/server/routers/whatsapp.py +761 -0
- package/server/routers/workflow.py +200 -0
- package/server/services/__init__.py +1 -0
- package/server/services/ai.py +2415 -0
- package/server/services/android/__init__.py +27 -0
- package/server/services/android/broadcaster.py +114 -0
- package/server/services/android/client.py +608 -0
- package/server/services/android/manager.py +78 -0
- package/server/services/android/protocol.py +165 -0
- package/server/services/android_service.py +588 -0
- package/server/services/auth.py +131 -0
- package/server/services/chat_client.py +160 -0
- package/server/services/deployment/__init__.py +12 -0
- package/server/services/deployment/manager.py +706 -0
- package/server/services/deployment/state.py +47 -0
- package/server/services/deployment/triggers.py +275 -0
- package/server/services/event_waiter.py +785 -0
- package/server/services/execution/__init__.py +77 -0
- package/server/services/execution/cache.py +769 -0
- package/server/services/execution/conditions.py +373 -0
- package/server/services/execution/dlq.py +132 -0
- package/server/services/execution/executor.py +1351 -0
- package/server/services/execution/models.py +531 -0
- package/server/services/execution/recovery.py +235 -0
- package/server/services/handlers/__init__.py +126 -0
- package/server/services/handlers/ai.py +355 -0
- package/server/services/handlers/android.py +260 -0
- package/server/services/handlers/code.py +278 -0
- package/server/services/handlers/document.py +598 -0
- package/server/services/handlers/http.py +193 -0
- package/server/services/handlers/polyglot.py +105 -0
- package/server/services/handlers/tools.py +845 -0
- package/server/services/handlers/triggers.py +107 -0
- package/server/services/handlers/utility.py +822 -0
- package/server/services/handlers/whatsapp.py +476 -0
- package/server/services/maps.py +289 -0
- package/server/services/memory_store.py +103 -0
- package/server/services/node_executor.py +375 -0
- package/server/services/parameter_resolver.py +218 -0
- package/server/services/polyglot_client.py +169 -0
- package/server/services/scheduler.py +155 -0
- package/server/services/skill_loader.py +417 -0
- package/server/services/status_broadcaster.py +826 -0
- package/server/services/temporal/__init__.py +23 -0
- package/server/services/temporal/activities.py +344 -0
- package/server/services/temporal/client.py +76 -0
- package/server/services/temporal/executor.py +147 -0
- package/server/services/temporal/worker.py +251 -0
- package/server/services/temporal/workflow.py +355 -0
- package/server/services/temporal/ws_client.py +236 -0
- package/server/services/text.py +111 -0
- package/server/services/user_auth.py +172 -0
- package/server/services/websocket_client.py +29 -0
- package/server/services/workflow.py +597 -0
- package/server/skills/android-skill/SKILL.md +82 -0
- package/server/skills/assistant-personality/SKILL.md +45 -0
- package/server/skills/code-skill/SKILL.md +140 -0
- package/server/skills/http-skill/SKILL.md +161 -0
- package/server/skills/maps-skill/SKILL.md +170 -0
- package/server/skills/memory-skill/SKILL.md +154 -0
- package/server/skills/scheduler-skill/SKILL.md +84 -0
- package/server/skills/whatsapp-skill/SKILL.md +283 -0
- package/server/uv.lock +2916 -0
- package/server/whatsapp-rpc/.dockerignore +30 -0
- package/server/whatsapp-rpc/Dockerfile +44 -0
- package/server/whatsapp-rpc/Dockerfile.web +17 -0
- package/server/whatsapp-rpc/README.md +139 -0
- package/server/whatsapp-rpc/cli.js +95 -0
- package/server/whatsapp-rpc/configs/config.yaml +7 -0
- package/server/whatsapp-rpc/docker-compose.yml +35 -0
- package/server/whatsapp-rpc/docs/API.md +410 -0
- package/server/whatsapp-rpc/go.mod +67 -0
- package/server/whatsapp-rpc/go.sum +203 -0
- package/server/whatsapp-rpc/package.json +30 -0
- package/server/whatsapp-rpc/schema.json +1294 -0
- package/server/whatsapp-rpc/scripts/clean.cjs +66 -0
- package/server/whatsapp-rpc/scripts/cli.js +162 -0
- package/server/whatsapp-rpc/src/go/cmd/server/main.go +91 -0
- package/server/whatsapp-rpc/src/go/config/config.go +49 -0
- package/server/whatsapp-rpc/src/go/rpc/rpc.go +446 -0
- package/server/whatsapp-rpc/src/go/rpc/server.go +112 -0
- package/server/whatsapp-rpc/src/go/whatsapp/history.go +166 -0
- package/server/whatsapp-rpc/src/go/whatsapp/messages.go +390 -0
- package/server/whatsapp-rpc/src/go/whatsapp/service.go +2130 -0
- package/server/whatsapp-rpc/src/go/whatsapp/types.go +261 -0
- package/server/whatsapp-rpc/src/python/pyproject.toml +15 -0
- package/server/whatsapp-rpc/src/python/whatsapp_rpc/__init__.py +4 -0
- package/server/whatsapp-rpc/src/python/whatsapp_rpc/client.py +427 -0
- package/server/whatsapp-rpc/web/app.py +609 -0
- package/server/whatsapp-rpc/web/requirements.txt +6 -0
- package/server/whatsapp-rpc/web/rpc_client.py +427 -0
- package/server/whatsapp-rpc/web/static/openapi.yaml +59 -0
- package/server/whatsapp-rpc/web/templates/base.html +150 -0
- package/server/whatsapp-rpc/web/templates/contacts.html +240 -0
- package/server/whatsapp-rpc/web/templates/dashboard.html +320 -0
- package/server/whatsapp-rpc/web/templates/groups.html +328 -0
- package/server/whatsapp-rpc/web/templates/messages.html +465 -0
- package/server/whatsapp-rpc/web/templates/messaging.html +681 -0
- package/server/whatsapp-rpc/web/templates/send.html +259 -0
- package/server/whatsapp-rpc/web/templates/settings.html +459 -0
|
@@ -0,0 +1,340 @@
|
|
|
1
|
+
// AI Model Node Definitions - Standardized chat model configurations using base factory
|
|
2
|
+
import { INodeTypeDescription } from '../types/INodeProperties';
|
|
3
|
+
import { createBaseChatModel, ChatModelConfig, STANDARD_PARAMETERS } from '../factories/baseChatModelFactory';
|
|
4
|
+
|
|
5
|
+
// ============================================================================
|
|
6
|
+
// CHAT MODEL CONFIGURATIONS
|
|
7
|
+
// ============================================================================
|
|
8
|
+
|
|
9
|
+
// OpenAI Chat Model Configuration
|
|
10
|
+
const openaiConfig: ChatModelConfig = {
|
|
11
|
+
providerId: 'openai',
|
|
12
|
+
displayName: 'OpenAI',
|
|
13
|
+
icon: '🤖',
|
|
14
|
+
color: '#00A67E',
|
|
15
|
+
description: 'OpenAI GPT models for chat completion and generation',
|
|
16
|
+
models: [], // Models fetched dynamically via API
|
|
17
|
+
parameters: [
|
|
18
|
+
STANDARD_PARAMETERS.frequencyPenalty,
|
|
19
|
+
{
|
|
20
|
+
...STANDARD_PARAMETERS.maxTokens,
|
|
21
|
+
default: 4096,
|
|
22
|
+
typeOptions: { minValue: 1, maxValue: 128000 },
|
|
23
|
+
description: 'Maximum tokens to generate'
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
displayName: 'Response Format',
|
|
27
|
+
name: 'responseFormat',
|
|
28
|
+
type: 'options',
|
|
29
|
+
options: [
|
|
30
|
+
{
|
|
31
|
+
name: 'Text',
|
|
32
|
+
value: 'text'
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
name: 'JSON Object',
|
|
36
|
+
value: 'json_object'
|
|
37
|
+
}
|
|
38
|
+
],
|
|
39
|
+
default: 'text',
|
|
40
|
+
description: 'Format of the response'
|
|
41
|
+
},
|
|
42
|
+
STANDARD_PARAMETERS.presencePenalty,
|
|
43
|
+
{
|
|
44
|
+
...STANDARD_PARAMETERS.temperature,
|
|
45
|
+
description: 'Controls randomness (0-2). Note: O-series models (o1, o3, o4) only support temperature=1, which is set automatically.'
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
displayName: 'Timeout',
|
|
49
|
+
name: 'timeout',
|
|
50
|
+
type: 'number',
|
|
51
|
+
default: 60000,
|
|
52
|
+
typeOptions: {
|
|
53
|
+
minValue: 1000,
|
|
54
|
+
maxValue: 180000
|
|
55
|
+
},
|
|
56
|
+
description: 'Timeout for the request in milliseconds'
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
displayName: 'Max Retries',
|
|
60
|
+
name: 'maxRetries',
|
|
61
|
+
type: 'number',
|
|
62
|
+
default: 2,
|
|
63
|
+
typeOptions: {
|
|
64
|
+
minValue: 0,
|
|
65
|
+
maxValue: 5
|
|
66
|
+
},
|
|
67
|
+
description: 'Maximum number of retries'
|
|
68
|
+
},
|
|
69
|
+
STANDARD_PARAMETERS.topP,
|
|
70
|
+
// Thinking/Reasoning for o-series models (o1, o3, o4)
|
|
71
|
+
STANDARD_PARAMETERS.thinkingEnabled,
|
|
72
|
+
STANDARD_PARAMETERS.reasoningEffort
|
|
73
|
+
]
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
// Claude Chat Model Configuration
|
|
77
|
+
const claudeConfig: ChatModelConfig = {
|
|
78
|
+
providerId: 'anthropic',
|
|
79
|
+
displayName: 'Claude',
|
|
80
|
+
icon: '🧠',
|
|
81
|
+
color: '#FF6B35',
|
|
82
|
+
description: 'Anthropic Claude models for conversation and analysis',
|
|
83
|
+
models: [], // Models fetched dynamically via API
|
|
84
|
+
parameters: [
|
|
85
|
+
{
|
|
86
|
+
...STANDARD_PARAMETERS.maxTokens,
|
|
87
|
+
default: 4096, // Higher default for Claude to accommodate thinking mode
|
|
88
|
+
typeOptions: { minValue: 1, maxValue: 64000 },
|
|
89
|
+
description: 'Maximum tokens to generate. Must be greater than Thinking Budget when thinking is enabled.'
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
...STANDARD_PARAMETERS.temperature,
|
|
93
|
+
typeOptions: { minValue: 0, maxValue: 1, numberStepSize: 0.1 },
|
|
94
|
+
description: 'Controls randomness (0-1). Note: Automatically set to 1 when thinking mode is enabled.'
|
|
95
|
+
},
|
|
96
|
+
STANDARD_PARAMETERS.topP,
|
|
97
|
+
STANDARD_PARAMETERS.topK,
|
|
98
|
+
{
|
|
99
|
+
displayName: 'Timeout',
|
|
100
|
+
name: 'timeout',
|
|
101
|
+
type: 'number',
|
|
102
|
+
default: 60000,
|
|
103
|
+
typeOptions: {
|
|
104
|
+
minValue: 1000,
|
|
105
|
+
maxValue: 180000
|
|
106
|
+
},
|
|
107
|
+
description: 'Timeout for the request in milliseconds'
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
displayName: 'Max Retries',
|
|
111
|
+
name: 'maxRetries',
|
|
112
|
+
type: 'number',
|
|
113
|
+
default: 2,
|
|
114
|
+
typeOptions: {
|
|
115
|
+
minValue: 0,
|
|
116
|
+
maxValue: 5
|
|
117
|
+
},
|
|
118
|
+
description: 'Maximum number of retries'
|
|
119
|
+
},
|
|
120
|
+
// Extended thinking for Claude models
|
|
121
|
+
STANDARD_PARAMETERS.thinkingEnabled,
|
|
122
|
+
{
|
|
123
|
+
...STANDARD_PARAMETERS.thinkingBudget,
|
|
124
|
+
description: 'Token budget for thinking (1024-16000). Must be less than Maximum Tokens.'
|
|
125
|
+
}
|
|
126
|
+
]
|
|
127
|
+
};
|
|
128
|
+
|
|
129
|
+
// Gemini Chat Model Configuration
|
|
130
|
+
const geminiConfig: ChatModelConfig = {
|
|
131
|
+
providerId: 'gemini',
|
|
132
|
+
displayName: 'Gemini',
|
|
133
|
+
icon: '⭐',
|
|
134
|
+
color: '#4285F4',
|
|
135
|
+
description: 'Google Gemini models for multimodal AI capabilities',
|
|
136
|
+
models: [], // Models fetched dynamically via API
|
|
137
|
+
parameters: [
|
|
138
|
+
{
|
|
139
|
+
...STANDARD_PARAMETERS.maxTokens,
|
|
140
|
+
default: 4096,
|
|
141
|
+
typeOptions: { minValue: 1, maxValue: 65536 },
|
|
142
|
+
description: 'Maximum tokens to generate'
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
...STANDARD_PARAMETERS.temperature,
|
|
146
|
+
default: 0.9,
|
|
147
|
+
typeOptions: { minValue: 0, maxValue: 1, numberStepSize: 0.1 }
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
...STANDARD_PARAMETERS.topP,
|
|
151
|
+
default: 0.95
|
|
152
|
+
},
|
|
153
|
+
STANDARD_PARAMETERS.topK,
|
|
154
|
+
{
|
|
155
|
+
displayName: 'Safety Settings',
|
|
156
|
+
name: 'safetySettings',
|
|
157
|
+
type: 'options',
|
|
158
|
+
options: [
|
|
159
|
+
{
|
|
160
|
+
name: 'Default',
|
|
161
|
+
value: 'default'
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
name: 'Strict',
|
|
165
|
+
value: 'strict'
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
name: 'Permissive',
|
|
169
|
+
value: 'permissive'
|
|
170
|
+
}
|
|
171
|
+
],
|
|
172
|
+
default: 'default',
|
|
173
|
+
description: 'Content safety filtering level'
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
displayName: 'Timeout',
|
|
177
|
+
name: 'timeout',
|
|
178
|
+
type: 'number',
|
|
179
|
+
default: 60000,
|
|
180
|
+
typeOptions: {
|
|
181
|
+
minValue: 1000,
|
|
182
|
+
maxValue: 180000
|
|
183
|
+
},
|
|
184
|
+
description: 'Timeout for the request in milliseconds'
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
displayName: 'Max Retries',
|
|
188
|
+
name: 'maxRetries',
|
|
189
|
+
type: 'number',
|
|
190
|
+
default: 2,
|
|
191
|
+
typeOptions: {
|
|
192
|
+
minValue: 0,
|
|
193
|
+
maxValue: 5
|
|
194
|
+
},
|
|
195
|
+
description: 'Maximum number of retries'
|
|
196
|
+
},
|
|
197
|
+
// Thinking for Gemini models - uses thinking_budget (token count)
|
|
198
|
+
STANDARD_PARAMETERS.thinkingEnabled,
|
|
199
|
+
{
|
|
200
|
+
...STANDARD_PARAMETERS.thinkingBudget,
|
|
201
|
+
description: 'Token budget for thinking. Works with Gemini 2.5 Flash/Pro and Flash Thinking models.'
|
|
202
|
+
}
|
|
203
|
+
]
|
|
204
|
+
};
|
|
205
|
+
|
|
206
|
+
// OpenRouter Chat Model Configuration
|
|
207
|
+
const openrouterConfig: ChatModelConfig = {
|
|
208
|
+
providerId: 'openrouter',
|
|
209
|
+
displayName: 'OpenRouter',
|
|
210
|
+
icon: '🔀',
|
|
211
|
+
color: '#6366F1',
|
|
212
|
+
description: 'OpenRouter unified API - access OpenAI, Claude, Gemini, Llama, and more through one API',
|
|
213
|
+
models: [], // Models fetched dynamically via API
|
|
214
|
+
parameters: [
|
|
215
|
+
STANDARD_PARAMETERS.temperature,
|
|
216
|
+
STANDARD_PARAMETERS.maxTokens,
|
|
217
|
+
STANDARD_PARAMETERS.topP,
|
|
218
|
+
STANDARD_PARAMETERS.frequencyPenalty,
|
|
219
|
+
STANDARD_PARAMETERS.presencePenalty,
|
|
220
|
+
{
|
|
221
|
+
displayName: 'Timeout',
|
|
222
|
+
name: 'timeout',
|
|
223
|
+
type: 'number',
|
|
224
|
+
default: 60000,
|
|
225
|
+
typeOptions: {
|
|
226
|
+
minValue: 1000,
|
|
227
|
+
maxValue: 180000
|
|
228
|
+
},
|
|
229
|
+
description: 'Timeout for the request in milliseconds'
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
displayName: 'Max Retries',
|
|
233
|
+
name: 'maxRetries',
|
|
234
|
+
type: 'number',
|
|
235
|
+
default: 2,
|
|
236
|
+
typeOptions: {
|
|
237
|
+
minValue: 0,
|
|
238
|
+
maxValue: 5
|
|
239
|
+
},
|
|
240
|
+
description: 'Maximum number of retries'
|
|
241
|
+
}
|
|
242
|
+
]
|
|
243
|
+
};
|
|
244
|
+
|
|
245
|
+
// Groq Chat Model Configuration
|
|
246
|
+
const groqConfig: ChatModelConfig = {
|
|
247
|
+
providerId: 'groq',
|
|
248
|
+
displayName: 'Groq',
|
|
249
|
+
icon: '⚡',
|
|
250
|
+
color: '#F55036',
|
|
251
|
+
description: 'Groq - Ultra-fast LLM inference with Llama, Mixtral, and Gemma models',
|
|
252
|
+
models: [], // Models fetched dynamically via API
|
|
253
|
+
parameters: [
|
|
254
|
+
STANDARD_PARAMETERS.temperature,
|
|
255
|
+
STANDARD_PARAMETERS.maxTokens,
|
|
256
|
+
STANDARD_PARAMETERS.topP,
|
|
257
|
+
{
|
|
258
|
+
displayName: 'Timeout',
|
|
259
|
+
name: 'timeout',
|
|
260
|
+
type: 'number',
|
|
261
|
+
default: 60000,
|
|
262
|
+
typeOptions: {
|
|
263
|
+
minValue: 1000,
|
|
264
|
+
maxValue: 180000
|
|
265
|
+
},
|
|
266
|
+
description: 'Timeout for the request in milliseconds'
|
|
267
|
+
},
|
|
268
|
+
{
|
|
269
|
+
displayName: 'Max Retries',
|
|
270
|
+
name: 'maxRetries',
|
|
271
|
+
type: 'number',
|
|
272
|
+
default: 2,
|
|
273
|
+
typeOptions: {
|
|
274
|
+
minValue: 0,
|
|
275
|
+
maxValue: 5
|
|
276
|
+
},
|
|
277
|
+
description: 'Maximum number of retries'
|
|
278
|
+
},
|
|
279
|
+
// Reasoning for Groq models (Qwen3, QwQ)
|
|
280
|
+
STANDARD_PARAMETERS.thinkingEnabled,
|
|
281
|
+
STANDARD_PARAMETERS.reasoningFormat
|
|
282
|
+
]
|
|
283
|
+
};
|
|
284
|
+
|
|
285
|
+
// Cerebras Chat Model Configuration
|
|
286
|
+
const cerebrasConfig: ChatModelConfig = {
|
|
287
|
+
providerId: 'cerebras',
|
|
288
|
+
displayName: 'Cerebras',
|
|
289
|
+
icon: '🧬',
|
|
290
|
+
color: '#FF6600',
|
|
291
|
+
description: 'Cerebras - Ultra-fast inference with Llama and Qwen models on custom AI hardware',
|
|
292
|
+
models: [], // Models fetched dynamically via API
|
|
293
|
+
parameters: [
|
|
294
|
+
STANDARD_PARAMETERS.temperature,
|
|
295
|
+
STANDARD_PARAMETERS.maxTokens,
|
|
296
|
+
STANDARD_PARAMETERS.topP,
|
|
297
|
+
{
|
|
298
|
+
displayName: 'Timeout',
|
|
299
|
+
name: 'timeout',
|
|
300
|
+
type: 'number',
|
|
301
|
+
default: 60000,
|
|
302
|
+
typeOptions: {
|
|
303
|
+
minValue: 1000,
|
|
304
|
+
maxValue: 180000
|
|
305
|
+
},
|
|
306
|
+
description: 'Timeout for the request in milliseconds'
|
|
307
|
+
},
|
|
308
|
+
{
|
|
309
|
+
displayName: 'Max Retries',
|
|
310
|
+
name: 'maxRetries',
|
|
311
|
+
type: 'number',
|
|
312
|
+
default: 2,
|
|
313
|
+
typeOptions: {
|
|
314
|
+
minValue: 0,
|
|
315
|
+
maxValue: 5
|
|
316
|
+
},
|
|
317
|
+
description: 'Maximum number of retries'
|
|
318
|
+
},
|
|
319
|
+
// Thinking for Cerebras models (Qwen, Llama)
|
|
320
|
+
STANDARD_PARAMETERS.thinkingEnabled,
|
|
321
|
+
STANDARD_PARAMETERS.thinkingBudget
|
|
322
|
+
]
|
|
323
|
+
};
|
|
324
|
+
|
|
325
|
+
// ============================================================================
|
|
326
|
+
// GENERATED CHAT MODEL NODES
|
|
327
|
+
// ============================================================================
|
|
328
|
+
|
|
329
|
+
export const aiModelNodes: Record<string, INodeTypeDescription> = {
|
|
330
|
+
openaiChatModel: createBaseChatModel(openaiConfig),
|
|
331
|
+
anthropicChatModel: createBaseChatModel(claudeConfig),
|
|
332
|
+
geminiChatModel: createBaseChatModel(geminiConfig),
|
|
333
|
+
openrouterChatModel: createBaseChatModel(openrouterConfig),
|
|
334
|
+
groqChatModel: createBaseChatModel(groqConfig),
|
|
335
|
+
cerebrasChatModel: createBaseChatModel(cerebrasConfig)
|
|
336
|
+
};
|
|
337
|
+
|
|
338
|
+
// Export configurations and factory for external use
|
|
339
|
+
export { openaiConfig, claudeConfig, geminiConfig, openrouterConfig, groqConfig, cerebrasConfig, createBaseChatModel };
|
|
340
|
+
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
// Android Device Management Nodes
|
|
2
|
+
import {
|
|
3
|
+
INodeTypeDescription,
|
|
4
|
+
NodeConnectionType
|
|
5
|
+
} from '../types/INodeProperties';
|
|
6
|
+
import { API_CONFIG } from '../config/api';
|
|
7
|
+
|
|
8
|
+
export const androidDeviceNodes: Record<string, INodeTypeDescription> = {
|
|
9
|
+
androidDeviceSetup: {
|
|
10
|
+
displayName: 'Android Device Setup',
|
|
11
|
+
name: 'androidDeviceSetup',
|
|
12
|
+
icon: '🔌',
|
|
13
|
+
group: ['android', 'setup'],
|
|
14
|
+
version: 1,
|
|
15
|
+
subtitle: 'Connect Android Device',
|
|
16
|
+
description: 'Setup Android device connection via local ADB or remote relay with QR code pairing',
|
|
17
|
+
defaults: { name: 'Android Device Setup', color: '#3DDC84' },
|
|
18
|
+
inputs: [{
|
|
19
|
+
name: 'main',
|
|
20
|
+
displayName: 'Input',
|
|
21
|
+
type: 'main' as NodeConnectionType,
|
|
22
|
+
description: 'Trigger device setup',
|
|
23
|
+
required: false
|
|
24
|
+
}],
|
|
25
|
+
outputs: [{
|
|
26
|
+
name: 'main',
|
|
27
|
+
displayName: 'Output',
|
|
28
|
+
type: 'main' as NodeConnectionType,
|
|
29
|
+
description: 'Device connection status'
|
|
30
|
+
}],
|
|
31
|
+
properties: [
|
|
32
|
+
{
|
|
33
|
+
displayName: 'Connection Type',
|
|
34
|
+
name: 'connection_type',
|
|
35
|
+
type: 'options',
|
|
36
|
+
options: [
|
|
37
|
+
{
|
|
38
|
+
name: 'Local ADB Device',
|
|
39
|
+
value: 'local',
|
|
40
|
+
description: 'Connect to Android device via USB/ADB with port forwarding'
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: 'Remote Relay (QR Pairing)',
|
|
44
|
+
value: 'remote',
|
|
45
|
+
description: 'Connect via relay server with QR code pairing'
|
|
46
|
+
}
|
|
47
|
+
],
|
|
48
|
+
default: 'remote',
|
|
49
|
+
required: true,
|
|
50
|
+
description: 'Choose connection method: local ADB or remote relay'
|
|
51
|
+
},
|
|
52
|
+
// Local ADB options
|
|
53
|
+
{
|
|
54
|
+
displayName: 'Android Device',
|
|
55
|
+
name: 'device_id',
|
|
56
|
+
type: 'options',
|
|
57
|
+
typeOptions: {
|
|
58
|
+
loadOptionsMethod: 'getAndroidDevices'
|
|
59
|
+
},
|
|
60
|
+
displayOptions: {
|
|
61
|
+
show: {
|
|
62
|
+
connection_type: ['local']
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
options: [],
|
|
66
|
+
default: '',
|
|
67
|
+
required: true,
|
|
68
|
+
description: 'Select connected Android device (from adb devices)'
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
displayName: 'Auto Setup Port Forwarding',
|
|
72
|
+
name: 'auto_forward',
|
|
73
|
+
type: 'boolean',
|
|
74
|
+
displayOptions: {
|
|
75
|
+
show: {
|
|
76
|
+
connection_type: ['local']
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
default: true,
|
|
80
|
+
required: false,
|
|
81
|
+
description: 'Automatically setup ADB port forwarding when node executes'
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
displayName: 'Port',
|
|
85
|
+
name: 'port',
|
|
86
|
+
type: 'number',
|
|
87
|
+
displayOptions: {
|
|
88
|
+
show: {
|
|
89
|
+
connection_type: ['local']
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
default: 8888,
|
|
93
|
+
required: true,
|
|
94
|
+
description: 'Port number for local ADB port forwarding'
|
|
95
|
+
},
|
|
96
|
+
// Remote relay options
|
|
97
|
+
{
|
|
98
|
+
displayName: 'Relay URL',
|
|
99
|
+
name: 'websocket_url',
|
|
100
|
+
type: 'string',
|
|
101
|
+
displayOptions: {
|
|
102
|
+
show: {
|
|
103
|
+
connection_type: ['remote']
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
default: '',
|
|
107
|
+
required: true,
|
|
108
|
+
placeholder: 'wss://your-relay-server.com/ws',
|
|
109
|
+
description: 'Relay server URL for QR code pairing with Android device'
|
|
110
|
+
}
|
|
111
|
+
],
|
|
112
|
+
methods: {
|
|
113
|
+
loadOptions: {
|
|
114
|
+
async getAndroidDevices(this: any): Promise<Array<{name: string, value: string, description?: string}>> {
|
|
115
|
+
try {
|
|
116
|
+
const response = await fetch(`${API_CONFIG.PYTHON_BASE_URL}/api/android/devices`, {
|
|
117
|
+
credentials: 'include'
|
|
118
|
+
});
|
|
119
|
+
const data = await response.json();
|
|
120
|
+
|
|
121
|
+
if (data.success && data.devices) {
|
|
122
|
+
return data.devices.map((device: any) => ({
|
|
123
|
+
name: `${device.model || device.id} (${device.id})`,
|
|
124
|
+
value: device.id,
|
|
125
|
+
description: `${device.state} - Android ${device.android_version || 'Unknown'}`
|
|
126
|
+
}));
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
return [];
|
|
130
|
+
} catch (error) {
|
|
131
|
+
console.error('Failed to load Android devices:', error);
|
|
132
|
+
return [];
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
};
|
|
139
|
+
|
|
140
|
+
export const ANDROID_DEVICE_NODE_TYPES = ['androidDeviceSetup'];
|