@octo-cyber/ai 0.5.6 → 0.5.7
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/dist/BranchDecisionEngine.d.ts +73 -0
- package/dist/BranchDecisionEngine.d.ts.map +1 -0
- package/dist/BranchDecisionEngine.js +195 -0
- package/dist/BranchDecisionEngine.js.map +1 -0
- package/dist/agent/coding-tools.d.ts +7 -0
- package/dist/agent/coding-tools.d.ts.map +1 -0
- package/dist/agent/coding-tools.js +181 -0
- package/dist/agent/coding-tools.js.map +1 -0
- package/dist/ai.module.d.ts +16 -0
- package/dist/ai.module.d.ts.map +1 -0
- package/dist/ai.module.js +106 -0
- package/dist/ai.module.js.map +1 -0
- package/dist/cli/adapters/antigravity.adapter.d.ts +31 -0
- package/dist/cli/adapters/antigravity.adapter.d.ts.map +1 -0
- package/dist/cli/adapters/antigravity.adapter.js +248 -0
- package/dist/cli/adapters/antigravity.adapter.js.map +1 -0
- package/dist/cli/adapters/claude-cli.adapter.d.ts +23 -0
- package/dist/cli/adapters/claude-cli.adapter.d.ts.map +1 -0
- package/dist/cli/adapters/claude-cli.adapter.js +81 -0
- package/dist/cli/adapters/claude-cli.adapter.js.map +1 -0
- package/dist/cli/adapters/cli-proxy-api.adapter.d.ts +32 -0
- package/dist/cli/adapters/cli-proxy-api.adapter.d.ts.map +1 -0
- package/dist/cli/adapters/cli-proxy-api.adapter.js +239 -0
- package/dist/cli/adapters/cli-proxy-api.adapter.js.map +1 -0
- package/dist/cli/adapters/codex-cli.adapter.d.ts +22 -0
- package/dist/cli/adapters/codex-cli.adapter.d.ts.map +1 -0
- package/dist/cli/adapters/codex-cli.adapter.js +76 -0
- package/dist/cli/adapters/codex-cli.adapter.js.map +1 -0
- package/dist/cli/adapters/detect-cli.d.ts +11 -0
- package/dist/cli/adapters/detect-cli.d.ts.map +1 -0
- package/dist/cli/adapters/detect-cli.js +40 -0
- package/dist/cli/adapters/detect-cli.js.map +1 -0
- package/dist/cli/adapters/gemini-cli.adapter.d.ts +21 -0
- package/dist/cli/adapters/gemini-cli.adapter.d.ts.map +1 -0
- package/dist/cli/adapters/gemini-cli.adapter.js +72 -0
- package/dist/cli/adapters/gemini-cli.adapter.js.map +1 -0
- package/dist/cli/adapters/index.d.ts +4 -0
- package/dist/cli/adapters/index.d.ts.map +1 -0
- package/dist/cli/adapters/index.js +10 -0
- package/dist/cli/adapters/index.js.map +1 -0
- package/dist/cli/cli-executor.service.d.ts +25 -0
- package/dist/cli/cli-executor.service.d.ts.map +1 -0
- package/dist/cli/cli-executor.service.js +170 -0
- package/dist/cli/cli-executor.service.js.map +1 -0
- package/dist/cli/cli-registry.service.d.ts +38 -0
- package/dist/cli/cli-registry.service.d.ts.map +1 -0
- package/dist/cli/cli-registry.service.js +114 -0
- package/dist/cli/cli-registry.service.js.map +1 -0
- package/dist/cli/controllers/ai-cli.controller.d.ts +40 -0
- package/dist/cli/controllers/ai-cli.controller.d.ts.map +1 -0
- package/dist/cli/controllers/ai-cli.controller.js +208 -0
- package/dist/cli/controllers/ai-cli.controller.js.map +1 -0
- package/dist/cli/index.d.ts +8 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +17 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/types.d.ts +153 -0
- package/dist/cli/types.d.ts.map +1 -0
- package/dist/cli/types.js +9 -0
- package/dist/cli/types.js.map +1 -0
- package/dist/cli/workspace.service.d.ts +42 -0
- package/dist/cli/workspace.service.d.ts.map +1 -0
- package/dist/cli/workspace.service.js +249 -0
- package/dist/cli/workspace.service.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +44 -0
- package/dist/index.js.map +1 -0
- package/dist/session/claude-code-session-manager.service.d.ts +28 -0
- package/dist/session/claude-code-session-manager.service.d.ts.map +1 -0
- package/dist/session/claude-code-session-manager.service.js +177 -0
- package/dist/session/claude-code-session-manager.service.js.map +1 -0
- package/dist/skill/controllers/skill-market.controller.d.ts +18 -0
- package/dist/skill/controllers/skill-market.controller.d.ts.map +1 -0
- package/dist/skill/controllers/skill-market.controller.js +128 -0
- package/dist/skill/controllers/skill-market.controller.js.map +1 -0
- package/dist/skill/controllers/skill.controller.d.ts +37 -0
- package/dist/skill/controllers/skill.controller.d.ts.map +1 -0
- package/dist/skill/controllers/skill.controller.js +295 -0
- package/dist/skill/controllers/skill.controller.js.map +1 -0
- package/dist/skill/entities/octo-skill.entity.d.ts +22 -0
- package/dist/skill/entities/octo-skill.entity.d.ts.map +1 -0
- package/dist/skill/entities/octo-skill.entity.js +91 -0
- package/dist/skill/entities/octo-skill.entity.js.map +1 -0
- package/dist/skill/index.d.ts +9 -0
- package/dist/skill/index.d.ts.map +1 -0
- package/dist/skill/index.js +21 -0
- package/dist/skill/index.js.map +1 -0
- package/dist/skill/services/skill-generator.service.d.ts +47 -0
- package/dist/skill/services/skill-generator.service.d.ts.map +1 -0
- package/dist/skill/services/skill-generator.service.js +232 -0
- package/dist/skill/services/skill-generator.service.js.map +1 -0
- package/dist/skill/services/skill-installer.service.d.ts +65 -0
- package/dist/skill/services/skill-installer.service.d.ts.map +1 -0
- package/dist/skill/services/skill-installer.service.js +258 -0
- package/dist/skill/services/skill-installer.service.js.map +1 -0
- package/dist/skill/services/skill-market.service.d.ts +60 -0
- package/dist/skill/services/skill-market.service.d.ts.map +1 -0
- package/dist/skill/services/skill-market.service.js +244 -0
- package/dist/skill/services/skill-market.service.js.map +1 -0
- package/dist/skill/services/skill-registry.service.d.ts +61 -0
- package/dist/skill/services/skill-registry.service.d.ts.map +1 -0
- package/dist/skill/services/skill-registry.service.js +159 -0
- package/dist/skill/services/skill-registry.service.js.map +1 -0
- package/dist/skill/types.d.ts +76 -0
- package/dist/skill/types.d.ts.map +1 -0
- package/dist/skill/types.js +6 -0
- package/dist/skill/types.js.map +1 -0
- package/dist/src/agent/agent-run-persistence.service.d.ts +82 -0
- package/dist/src/agent/agent-run-persistence.service.d.ts.map +1 -0
- package/dist/src/agent/agent-run-persistence.service.js +171 -0
- package/dist/src/agent/agent-run-persistence.service.js.map +1 -0
- package/dist/src/agent/agent-run-step.entity.d.ts +23 -0
- package/dist/src/agent/agent-run-step.entity.d.ts.map +1 -0
- package/dist/src/agent/agent-run-step.entity.js +76 -0
- package/dist/src/agent/agent-run-step.entity.js.map +1 -0
- package/dist/src/skill/services/skill-market-utils.d.ts +25 -0
- package/dist/src/skill/services/skill-market-utils.d.ts.map +1 -0
- package/dist/src/skill/services/skill-market-utils.js +22 -0
- package/dist/src/skill/services/skill-market-utils.js.map +1 -0
- package/dist/src/workflow-design/WorkflowAssembler.d.ts +10 -0
- package/dist/src/workflow-design/WorkflowAssembler.d.ts.map +1 -0
- package/dist/src/workflow-design/WorkflowAssembler.js +81 -0
- package/dist/src/workflow-design/WorkflowAssembler.js.map +1 -0
- package/dist/src/workflow-design/n8n-node-templates-data.d.ts +4 -0
- package/dist/src/workflow-design/n8n-node-templates-data.d.ts.map +1 -0
- package/dist/src/workflow-design/n8n-node-templates-data.js +290 -0
- package/dist/src/workflow-design/n8n-node-templates-data.js.map +1 -0
- package/dist/workflow-design/DocumentExtractorAgent.d.ts +47 -0
- package/dist/workflow-design/DocumentExtractorAgent.d.ts.map +1 -0
- package/dist/workflow-design/DocumentExtractorAgent.js +118 -0
- package/dist/workflow-design/DocumentExtractorAgent.js.map +1 -0
- package/dist/workflow-design/N8nNodeKnowledgeBase.d.ts +26 -0
- package/dist/workflow-design/N8nNodeKnowledgeBase.d.ts.map +1 -0
- package/dist/workflow-design/N8nNodeKnowledgeBase.js +320 -0
- package/dist/workflow-design/N8nNodeKnowledgeBase.js.map +1 -0
- package/dist/workflow-design/OctoAgentClient.d.ts +42 -0
- package/dist/workflow-design/OctoAgentClient.d.ts.map +1 -0
- package/dist/workflow-design/OctoAgentClient.js +166 -0
- package/dist/workflow-design/OctoAgentClient.js.map +1 -0
- package/dist/workflow-design/WorkflowDesignOrchestrator.d.ts +45 -0
- package/dist/workflow-design/WorkflowDesignOrchestrator.d.ts.map +1 -0
- package/dist/workflow-design/WorkflowDesignOrchestrator.js +265 -0
- package/dist/workflow-design/WorkflowDesignOrchestrator.js.map +1 -0
- package/dist/workflow-design/agents/ActionChainAgent.d.ts +9 -0
- package/dist/workflow-design/agents/ActionChainAgent.d.ts.map +1 -0
- package/dist/workflow-design/agents/ActionChainAgent.js +79 -0
- package/dist/workflow-design/agents/ActionChainAgent.js.map +1 -0
- package/dist/workflow-design/agents/CodeScriptAgent.d.ts +15 -0
- package/dist/workflow-design/agents/CodeScriptAgent.d.ts.map +1 -0
- package/dist/workflow-design/agents/CodeScriptAgent.js +96 -0
- package/dist/workflow-design/agents/CodeScriptAgent.js.map +1 -0
- package/dist/workflow-design/agents/LogicFlowAgent.d.ts +9 -0
- package/dist/workflow-design/agents/LogicFlowAgent.d.ts.map +1 -0
- package/dist/workflow-design/agents/LogicFlowAgent.js +78 -0
- package/dist/workflow-design/agents/LogicFlowAgent.js.map +1 -0
- package/dist/workflow-design/agents/TriggerAnalystAgent.d.ts +9 -0
- package/dist/workflow-design/agents/TriggerAnalystAgent.d.ts.map +1 -0
- package/dist/workflow-design/agents/TriggerAnalystAgent.js +65 -0
- package/dist/workflow-design/agents/TriggerAnalystAgent.js.map +1 -0
- package/dist/workflow-design/agents/WorkflowValidatorAgent.d.ts +9 -0
- package/dist/workflow-design/agents/WorkflowValidatorAgent.d.ts.map +1 -0
- package/dist/workflow-design/agents/WorkflowValidatorAgent.js +117 -0
- package/dist/workflow-design/agents/WorkflowValidatorAgent.js.map +1 -0
- package/dist/workflow-design/index.d.ts +12 -0
- package/dist/workflow-design/index.d.ts.map +1 -0
- package/dist/workflow-design/index.js +23 -0
- package/dist/workflow-design/index.js.map +1 -0
- package/dist/workflow-design/types.d.ts +155 -0
- package/dist/workflow-design/types.d.ts.map +1 -0
- package/dist/workflow-design/types.js +6 -0
- package/dist/workflow-design/types.js.map +1 -0
- package/package.json +2 -1
- package/web/dist/module.iife.js +254 -0
- package/web/dynamic-entry.tsx +94 -0
|
@@ -0,0 +1,320 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.N8nNodeKnowledgeBase = void 0;
|
|
4
|
+
// ============================================================
|
|
5
|
+
// Embedded n8n node knowledge base
|
|
6
|
+
// No external fetch — all data is inlined here.
|
|
7
|
+
// ============================================================
|
|
8
|
+
const NODE_TEMPLATES = [
|
|
9
|
+
// ----------------------------------------------------------
|
|
10
|
+
// Triggers
|
|
11
|
+
// ----------------------------------------------------------
|
|
12
|
+
{
|
|
13
|
+
type: 'n8n-nodes-base.manualTrigger',
|
|
14
|
+
displayName: 'Manual Trigger',
|
|
15
|
+
category: 'trigger',
|
|
16
|
+
coreParams: [],
|
|
17
|
+
description: 'Manually start the workflow from the n8n editor.',
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
type: 'n8n-nodes-base.scheduleTrigger',
|
|
21
|
+
displayName: 'Schedule Trigger (Cron)',
|
|
22
|
+
category: 'trigger',
|
|
23
|
+
coreParams: ['rule', 'cronExpression', 'interval'],
|
|
24
|
+
description: 'Trigger on a fixed schedule or cron expression.',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
type: 'n8n-nodes-base.webhook',
|
|
28
|
+
displayName: 'Webhook',
|
|
29
|
+
category: 'trigger',
|
|
30
|
+
coreParams: ['httpMethod', 'path', 'authentication', 'responseMode'],
|
|
31
|
+
description: 'Receive HTTP requests and start the workflow.',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
type: 'n8n-nodes-base.emailTrigger',
|
|
35
|
+
displayName: 'Email Trigger (IMAP)',
|
|
36
|
+
category: 'trigger',
|
|
37
|
+
coreParams: ['mailbox', 'credentials', 'format'],
|
|
38
|
+
description: 'Trigger when a new email arrives in an IMAP mailbox.',
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
type: 'n8n-nodes-base.n8nTrigger',
|
|
42
|
+
displayName: 'n8n Trigger (Workflow Event)',
|
|
43
|
+
category: 'trigger',
|
|
44
|
+
coreParams: ['events'],
|
|
45
|
+
description: 'Trigger on internal n8n events (workflow updated, etc.).',
|
|
46
|
+
},
|
|
47
|
+
// ----------------------------------------------------------
|
|
48
|
+
// HTTP / API
|
|
49
|
+
// ----------------------------------------------------------
|
|
50
|
+
{
|
|
51
|
+
type: 'n8n-nodes-base.httpRequest',
|
|
52
|
+
displayName: 'HTTP Request',
|
|
53
|
+
category: 'http',
|
|
54
|
+
coreParams: ['method', 'url', 'authentication', 'headers', 'body', 'qs'],
|
|
55
|
+
description: 'Make any HTTP/REST API call.',
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
type: 'n8n-nodes-base.respondToWebhook',
|
|
59
|
+
displayName: 'Webhook Response',
|
|
60
|
+
category: 'http',
|
|
61
|
+
coreParams: ['respondWith', 'responseBody', 'responseCode', 'responseHeaders'],
|
|
62
|
+
description: 'Send a response back to the caller of a Webhook trigger.',
|
|
63
|
+
},
|
|
64
|
+
// ----------------------------------------------------------
|
|
65
|
+
// Data processing
|
|
66
|
+
// ----------------------------------------------------------
|
|
67
|
+
{
|
|
68
|
+
type: 'n8n-nodes-base.set',
|
|
69
|
+
displayName: 'Set',
|
|
70
|
+
category: 'data',
|
|
71
|
+
coreParams: ['values', 'keepOnlySet'],
|
|
72
|
+
description: 'Set, rename, or delete fields on items.',
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
type: 'n8n-nodes-base.code',
|
|
76
|
+
displayName: 'Code (Function)',
|
|
77
|
+
category: 'data',
|
|
78
|
+
coreParams: ['jsCode', 'mode'],
|
|
79
|
+
description: 'Run custom JavaScript code against the input items.',
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
type: 'n8n-nodes-base.itemLists',
|
|
83
|
+
displayName: 'Item Lists',
|
|
84
|
+
category: 'data',
|
|
85
|
+
coreParams: ['operation', 'fieldToSplitOut', 'fieldsToAggregate'],
|
|
86
|
+
description: 'Split, aggregate, or deduplicate item lists.',
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
type: 'n8n-nodes-base.extractFromFile',
|
|
90
|
+
displayName: 'JSON Parse / Extract',
|
|
91
|
+
category: 'data',
|
|
92
|
+
coreParams: ['operation', 'dataPropertyName'],
|
|
93
|
+
description: 'Parse JSON strings or extract data from binary files.',
|
|
94
|
+
},
|
|
95
|
+
// ----------------------------------------------------------
|
|
96
|
+
// Conditional / flow control
|
|
97
|
+
// ----------------------------------------------------------
|
|
98
|
+
{
|
|
99
|
+
type: 'n8n-nodes-base.if',
|
|
100
|
+
displayName: 'IF',
|
|
101
|
+
category: 'control',
|
|
102
|
+
coreParams: ['conditions'],
|
|
103
|
+
description: 'Route items down true/false branches based on conditions.',
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
type: 'n8n-nodes-base.switch',
|
|
107
|
+
displayName: 'Switch',
|
|
108
|
+
category: 'control',
|
|
109
|
+
coreParams: ['mode', 'rules'],
|
|
110
|
+
description: 'Route items to one of multiple outputs based on value.',
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
type: 'n8n-nodes-base.merge',
|
|
114
|
+
displayName: 'Merge',
|
|
115
|
+
category: 'control',
|
|
116
|
+
coreParams: ['mode', 'joinMode'],
|
|
117
|
+
description: 'Merge items from two branches.',
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
type: 'n8n-nodes-base.wait',
|
|
121
|
+
displayName: 'Wait',
|
|
122
|
+
category: 'control',
|
|
123
|
+
coreParams: ['resume', 'amount', 'unit'],
|
|
124
|
+
description: 'Pause the workflow execution for a specified time.',
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
type: 'n8n-nodes-base.errorTrigger',
|
|
128
|
+
displayName: 'Error Trigger',
|
|
129
|
+
category: 'control',
|
|
130
|
+
coreParams: [],
|
|
131
|
+
description: 'Trigger a separate error-handling workflow on failure.',
|
|
132
|
+
},
|
|
133
|
+
// ----------------------------------------------------------
|
|
134
|
+
// Notifications
|
|
135
|
+
// ----------------------------------------------------------
|
|
136
|
+
{
|
|
137
|
+
type: 'n8n-nodes-base.emailSend',
|
|
138
|
+
displayName: 'Send Email (SMTP)',
|
|
139
|
+
category: 'notification',
|
|
140
|
+
coreParams: ['fromEmail', 'toEmail', 'subject', 'text', 'html', 'credentials'],
|
|
141
|
+
description: 'Send an email via SMTP.',
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
type: 'n8n-nodes-base.gmail',
|
|
145
|
+
displayName: 'Gmail',
|
|
146
|
+
category: 'notification',
|
|
147
|
+
coreParams: ['operation', 'to', 'subject', 'message', 'credentials'],
|
|
148
|
+
description: 'Send or manage Gmail messages.',
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
type: 'n8n-nodes-base.slack',
|
|
152
|
+
displayName: 'Slack',
|
|
153
|
+
category: 'notification',
|
|
154
|
+
coreParams: ['operation', 'channel', 'text', 'credentials'],
|
|
155
|
+
description: 'Post messages or manage Slack channels.',
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
type: 'n8n-nodes-base.telegram',
|
|
159
|
+
displayName: 'Telegram',
|
|
160
|
+
category: 'notification',
|
|
161
|
+
coreParams: ['operation', 'chatId', 'text', 'credentials'],
|
|
162
|
+
description: 'Send messages via Telegram Bot API.',
|
|
163
|
+
},
|
|
164
|
+
// ----------------------------------------------------------
|
|
165
|
+
// Databases
|
|
166
|
+
// ----------------------------------------------------------
|
|
167
|
+
{
|
|
168
|
+
type: 'n8n-nodes-base.postgres',
|
|
169
|
+
displayName: 'Postgres',
|
|
170
|
+
category: 'database',
|
|
171
|
+
coreParams: ['operation', 'query', 'table', 'columns', 'credentials'],
|
|
172
|
+
description: 'Execute queries against a PostgreSQL database.',
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
type: 'n8n-nodes-base.mySql',
|
|
176
|
+
displayName: 'MySQL',
|
|
177
|
+
category: 'database',
|
|
178
|
+
coreParams: ['operation', 'query', 'table', 'credentials'],
|
|
179
|
+
description: 'Execute queries against a MySQL/MariaDB database.',
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
type: 'n8n-nodes-base.redis',
|
|
183
|
+
displayName: 'Redis',
|
|
184
|
+
category: 'database',
|
|
185
|
+
coreParams: ['operation', 'key', 'value', 'credentials'],
|
|
186
|
+
description: 'Get/set/delete keys in a Redis store.',
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
type: 'n8n-nodes-base.mongoDb',
|
|
190
|
+
displayName: 'MongoDB',
|
|
191
|
+
category: 'database',
|
|
192
|
+
coreParams: ['operation', 'collection', 'query', 'credentials'],
|
|
193
|
+
description: 'Interact with a MongoDB collection.',
|
|
194
|
+
},
|
|
195
|
+
// ----------------------------------------------------------
|
|
196
|
+
// Files
|
|
197
|
+
// ----------------------------------------------------------
|
|
198
|
+
{
|
|
199
|
+
type: 'n8n-nodes-base.readBinaryFiles',
|
|
200
|
+
displayName: 'Read Binary Files',
|
|
201
|
+
category: 'file',
|
|
202
|
+
coreParams: ['filePath'],
|
|
203
|
+
description: 'Read one or more files from the local filesystem.',
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
type: 'n8n-nodes-base.writeBinaryFile',
|
|
207
|
+
displayName: 'Write Binary File',
|
|
208
|
+
category: 'file',
|
|
209
|
+
coreParams: ['fileName', 'dataPropertyName'],
|
|
210
|
+
description: 'Write binary data to a local file.',
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
type: 'n8n-nodes-base.awsS3',
|
|
214
|
+
displayName: 'S3',
|
|
215
|
+
category: 'file',
|
|
216
|
+
coreParams: ['operation', 'bucketName', 'fileName', 'credentials'],
|
|
217
|
+
description: 'Upload/download objects in AWS S3 or compatible storage.',
|
|
218
|
+
},
|
|
219
|
+
// ----------------------------------------------------------
|
|
220
|
+
// AI / LLM (n8n v1.x)
|
|
221
|
+
// ----------------------------------------------------------
|
|
222
|
+
{
|
|
223
|
+
type: '@n8n/n8n-nodes-langchain.openAi',
|
|
224
|
+
displayName: 'OpenAI',
|
|
225
|
+
category: 'ai',
|
|
226
|
+
coreParams: ['operation', 'model', 'prompt', 'credentials'],
|
|
227
|
+
description: 'Call OpenAI Chat Completions, Embeddings, or DALL-E. (n8n v1.x)',
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
type: '@n8n/n8n-nodes-langchain.lmChatAnthropic',
|
|
231
|
+
displayName: 'Anthropic (Claude)',
|
|
232
|
+
category: 'ai',
|
|
233
|
+
coreParams: ['model', 'credentials'],
|
|
234
|
+
description: 'Use Claude as a LangChain chat model inside an AI Agent. (n8n v1.x)',
|
|
235
|
+
},
|
|
236
|
+
{
|
|
237
|
+
type: '@n8n/n8n-nodes-langchain.agent',
|
|
238
|
+
displayName: 'AI Agent (LangChain)',
|
|
239
|
+
category: 'ai',
|
|
240
|
+
coreParams: ['agentType', 'text', 'options'],
|
|
241
|
+
description: 'Orchestrate tools with a LangChain agent loop. (n8n v1.x)',
|
|
242
|
+
},
|
|
243
|
+
{
|
|
244
|
+
type: '@n8n/n8n-nodes-langchain.chainLlm',
|
|
245
|
+
displayName: 'LLM Chain',
|
|
246
|
+
category: 'ai',
|
|
247
|
+
coreParams: ['prompt', 'model'],
|
|
248
|
+
description: 'Simple single-step LLM chain. (n8n v1.x)',
|
|
249
|
+
},
|
|
250
|
+
];
|
|
251
|
+
// ============================================================
|
|
252
|
+
// Public API
|
|
253
|
+
// ============================================================
|
|
254
|
+
class N8nNodeKnowledgeBase {
|
|
255
|
+
static templates = NODE_TEMPLATES;
|
|
256
|
+
/** Return templates matching the given categories. */
|
|
257
|
+
static getByCategories(categories) {
|
|
258
|
+
return this.templates.filter((t) => categories.includes(t.category));
|
|
259
|
+
}
|
|
260
|
+
/** Return all templates. */
|
|
261
|
+
static getAll() {
|
|
262
|
+
return this.templates;
|
|
263
|
+
}
|
|
264
|
+
/** Find a template by its n8n type string. */
|
|
265
|
+
static findByType(type) {
|
|
266
|
+
return this.templates.find((t) => t.type === type);
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Build a compact prompt fragment listing the relevant nodes.
|
|
270
|
+
* Orchestrator calls this to inject node knowledge into sub-agent prompts.
|
|
271
|
+
*/
|
|
272
|
+
static buildPromptSection(categories) {
|
|
273
|
+
const nodes = this.getByCategories(categories);
|
|
274
|
+
if (nodes.length === 0)
|
|
275
|
+
return '';
|
|
276
|
+
const lines = nodes.map((n) => `- ${n.displayName} (type: \`${n.type}\`): ${n.description} Core params: ${n.coreParams.join(', ') || 'none'}.`);
|
|
277
|
+
return `## Available n8n Nodes\n${lines.join('\n')}`;
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* Build a prompt section as a cached content block for use with Anthropic SDK.
|
|
281
|
+
* Applying cache_control saves ~90% cost when the same knowledge is passed repeatedly.
|
|
282
|
+
*/
|
|
283
|
+
static buildCachedBlock(categories) {
|
|
284
|
+
return {
|
|
285
|
+
type: 'text',
|
|
286
|
+
text: this.buildPromptSection(categories),
|
|
287
|
+
cache_control: { type: 'ephemeral' },
|
|
288
|
+
};
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* Infer relevant categories from a free-text intent description.
|
|
292
|
+
* Used by the Orchestrator to pick which node docs to inject.
|
|
293
|
+
*/
|
|
294
|
+
static inferCategories(intent) {
|
|
295
|
+
const lower = intent.toLowerCase();
|
|
296
|
+
const categories = new Set();
|
|
297
|
+
// Always include triggers and data processing
|
|
298
|
+
categories.add('trigger');
|
|
299
|
+
categories.add('data');
|
|
300
|
+
if (/http|api|rest|fetch|request|webhook|url/.test(lower))
|
|
301
|
+
categories.add('http');
|
|
302
|
+
if (/email|mail|gmail|smtp/.test(lower))
|
|
303
|
+
categories.add('notification');
|
|
304
|
+
if (/slack|telegram|notify|notification|alert|message/.test(lower))
|
|
305
|
+
categories.add('notification');
|
|
306
|
+
if (/if|condition|branch|switch|route|filter|check/.test(lower))
|
|
307
|
+
categories.add('control');
|
|
308
|
+
if (/error|retry|fail|fallback/.test(lower))
|
|
309
|
+
categories.add('control');
|
|
310
|
+
if (/postgres|mysql|sqlite|db|database|sql|mongo|redis/.test(lower))
|
|
311
|
+
categories.add('database');
|
|
312
|
+
if (/file|upload|download|s3|storage|binary/.test(lower))
|
|
313
|
+
categories.add('file');
|
|
314
|
+
if (/ai|llm|gpt|claude|openai|anthropic|langchain|agent|chat/.test(lower))
|
|
315
|
+
categories.add('ai');
|
|
316
|
+
return Array.from(categories);
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
exports.N8nNodeKnowledgeBase = N8nNodeKnowledgeBase;
|
|
320
|
+
//# sourceMappingURL=N8nNodeKnowledgeBase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"N8nNodeKnowledgeBase.js","sourceRoot":"","sources":["../../src/workflow-design/N8nNodeKnowledgeBase.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import Anthropic from '@anthropic-ai/sdk';
|
|
2
|
+
import type { MessageParam } from '@anthropic-ai/sdk/resources';
|
|
3
|
+
import type { AgentRunOptions, Message, Tool, SystemContent } from './types.js';
|
|
4
|
+
export declare class OctoAgentClient {
|
|
5
|
+
private readonly model;
|
|
6
|
+
/**
|
|
7
|
+
* Exposed for test injection:
|
|
8
|
+
* vi.spyOn(client.anthropic.messages, 'create').mockResolvedValue(...)
|
|
9
|
+
*/
|
|
10
|
+
readonly anthropic: Anthropic;
|
|
11
|
+
constructor(model?: string, baseUrl?: string);
|
|
12
|
+
/**
|
|
13
|
+
* Single-turn LLM call.
|
|
14
|
+
* @param messages Conversation turns (user/assistant only — no system).
|
|
15
|
+
* @param system System instructions: plain string or cached content blocks.
|
|
16
|
+
* @param tools Optional tool definitions (ignored in the Anthropic call here;
|
|
17
|
+
* use run() for tool-calling loops).
|
|
18
|
+
* @returns The assistant's text reply.
|
|
19
|
+
*/
|
|
20
|
+
singleCall(messages: Message[], system: SystemContent, tools?: Tool[]): Promise<string>;
|
|
21
|
+
/**
|
|
22
|
+
* Run a full agent loop.
|
|
23
|
+
* Sends systemPrompt + userMessage, processes tool_calls until the model
|
|
24
|
+
* stops calling tools or maxRounds is reached.
|
|
25
|
+
*
|
|
26
|
+
* @returns The accumulated text output from all assistant turns.
|
|
27
|
+
*/
|
|
28
|
+
run(options: AgentRunOptions): Promise<string>;
|
|
29
|
+
/**
|
|
30
|
+
* Streaming text generation — yields tokens as they arrive.
|
|
31
|
+
* @param messages Conversation turns (user/assistant).
|
|
32
|
+
* @param systemPrompt System instructions.
|
|
33
|
+
* @returns AsyncIterable of text chunks.
|
|
34
|
+
*/
|
|
35
|
+
stream(messages: MessageParam[], systemPrompt: SystemContent): AsyncIterable<string>;
|
|
36
|
+
/**
|
|
37
|
+
* Parse a JSON block from an LLM response.
|
|
38
|
+
* The model often wraps JSON in markdown fences — this strips them.
|
|
39
|
+
*/
|
|
40
|
+
static parseJsonFromReply<T>(reply: string): T;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=OctoAgentClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OctoAgentClient.d.ts","sourceRoot":"","sources":["../../src/workflow-design/OctoAgentClient.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAC1C,OAAO,KAAK,EAAE,YAAY,EAAiD,MAAM,6BAA6B,CAAC;AAC/G,OAAO,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAkB,aAAa,EAAE,MAAM,YAAY,CAAC;AAchG,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAE/B;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;gBAElB,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;IAQ5C;;;;;;;OAOG;IACG,UAAU,CACd,QAAQ,EAAE,OAAO,EAAE,EACnB,MAAM,EAAE,aAAa,EACrB,KAAK,CAAC,EAAE,IAAI,EAAE,GACb,OAAO,CAAC,MAAM,CAAC;IA4BlB;;;;;;OAMG;IACG,GAAG,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC;IAiFpD;;;;;OAKG;IACI,MAAM,CAAC,QAAQ,EAAE,YAAY,EAAE,EAAE,YAAY,EAAE,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC;IAgB3F;;;OAGG;IACH,MAAM,CAAC,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC;CAY/C"}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.OctoAgentClient = void 0;
|
|
7
|
+
const sdk_1 = __importDefault(require("@anthropic-ai/sdk"));
|
|
8
|
+
// ============================================================
|
|
9
|
+
// OctoAgentClient
|
|
10
|
+
// Wraps the Anthropic SDK pointed at cli-proxy-api.
|
|
11
|
+
// Supports single-call, agent-loop, and streaming.
|
|
12
|
+
// ============================================================
|
|
13
|
+
const CLI_PROXY_BASE_URL = 'http://127.0.0.1:8317';
|
|
14
|
+
const DEFAULT_MODEL = 'claude-sonnet-4-5';
|
|
15
|
+
const DEFAULT_MAX_ROUNDS = 10;
|
|
16
|
+
const DEFAULT_TIMEOUT_MS = 300_000;
|
|
17
|
+
const SINGLE_CALL_TIMEOUT_MS = 60_000;
|
|
18
|
+
class OctoAgentClient {
|
|
19
|
+
model;
|
|
20
|
+
/**
|
|
21
|
+
* Exposed for test injection:
|
|
22
|
+
* vi.spyOn(client.anthropic.messages, 'create').mockResolvedValue(...)
|
|
23
|
+
*/
|
|
24
|
+
anthropic;
|
|
25
|
+
constructor(model, baseUrl) {
|
|
26
|
+
this.model = model ?? process.env['CLI_PROXY_MODEL'] ?? DEFAULT_MODEL;
|
|
27
|
+
this.anthropic = new sdk_1.default({
|
|
28
|
+
baseURL: baseUrl ?? CLI_PROXY_BASE_URL,
|
|
29
|
+
apiKey: 'cli-proxy',
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Single-turn LLM call.
|
|
34
|
+
* @param messages Conversation turns (user/assistant only — no system).
|
|
35
|
+
* @param system System instructions: plain string or cached content blocks.
|
|
36
|
+
* @param tools Optional tool definitions (ignored in the Anthropic call here;
|
|
37
|
+
* use run() for tool-calling loops).
|
|
38
|
+
* @returns The assistant's text reply.
|
|
39
|
+
*/
|
|
40
|
+
async singleCall(messages, system, tools) {
|
|
41
|
+
const apiMessages = messages
|
|
42
|
+
.filter((m) => m.role !== 'system')
|
|
43
|
+
.map((m) => ({ role: m.role, content: m.content }));
|
|
44
|
+
const createPromise = this.anthropic.messages
|
|
45
|
+
.create({
|
|
46
|
+
model: this.model,
|
|
47
|
+
system: system, // SDK accepts string | TextBlockParam[]
|
|
48
|
+
messages: apiMessages,
|
|
49
|
+
max_tokens: 4096,
|
|
50
|
+
temperature: 0.2,
|
|
51
|
+
})
|
|
52
|
+
.then((response) => {
|
|
53
|
+
const textBlock = response.content.find((b) => b.type === 'text');
|
|
54
|
+
return textBlock?.text ?? '';
|
|
55
|
+
});
|
|
56
|
+
const timeoutPromise = new Promise((_, reject) => {
|
|
57
|
+
setTimeout(() => reject(new Error(`singleCall timed out after ${SINGLE_CALL_TIMEOUT_MS}ms`)), SINGLE_CALL_TIMEOUT_MS);
|
|
58
|
+
});
|
|
59
|
+
return Promise.race([createPromise, timeoutPromise]);
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Run a full agent loop.
|
|
63
|
+
* Sends systemPrompt + userMessage, processes tool_calls until the model
|
|
64
|
+
* stops calling tools or maxRounds is reached.
|
|
65
|
+
*
|
|
66
|
+
* @returns The accumulated text output from all assistant turns.
|
|
67
|
+
*/
|
|
68
|
+
async run(options) {
|
|
69
|
+
const { systemPrompt, userMessage, tools = [], maxRounds = DEFAULT_MAX_ROUNDS, timeoutMs = DEFAULT_TIMEOUT_MS, onChunk, } = options;
|
|
70
|
+
const toolMap = new Map(tools.map((t) => [t.name, t]));
|
|
71
|
+
const messages = [{ role: 'user', content: userMessage }];
|
|
72
|
+
const outputParts = [];
|
|
73
|
+
const anthropicTools = tools.length > 0
|
|
74
|
+
? tools.map((t) => ({
|
|
75
|
+
name: t.name,
|
|
76
|
+
description: t.description,
|
|
77
|
+
input_schema: { type: 'object', ...t.parameters },
|
|
78
|
+
}))
|
|
79
|
+
: undefined;
|
|
80
|
+
const runLoop = async () => {
|
|
81
|
+
for (let round = 0; round < maxRounds; round++) {
|
|
82
|
+
const response = await this.anthropic.messages.create({
|
|
83
|
+
model: this.model,
|
|
84
|
+
system: systemPrompt,
|
|
85
|
+
messages,
|
|
86
|
+
tools: anthropicTools,
|
|
87
|
+
max_tokens: 4096,
|
|
88
|
+
temperature: 0.2,
|
|
89
|
+
});
|
|
90
|
+
// Collect text blocks
|
|
91
|
+
for (const block of response.content) {
|
|
92
|
+
if (block.type === 'text' && block.text) {
|
|
93
|
+
outputParts.push(block.text);
|
|
94
|
+
onChunk?.(block.text);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
// No tool use → done
|
|
98
|
+
const toolUseBlocks = response.content.filter((b) => b.type === 'tool_use');
|
|
99
|
+
if (toolUseBlocks.length === 0)
|
|
100
|
+
break;
|
|
101
|
+
// Add assistant turn with tool_use to history
|
|
102
|
+
messages.push({ role: 'assistant', content: response.content });
|
|
103
|
+
// Execute tools and collect results
|
|
104
|
+
const toolResults = [];
|
|
105
|
+
for (const toolUse of toolUseBlocks) {
|
|
106
|
+
const tool = toolMap.get(toolUse.name);
|
|
107
|
+
let result;
|
|
108
|
+
if (!tool) {
|
|
109
|
+
result = `Error: unknown tool "${toolUse.name}"`;
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
try {
|
|
113
|
+
result = await tool.execute(toolUse.input);
|
|
114
|
+
}
|
|
115
|
+
catch (err) {
|
|
116
|
+
result = `Error executing tool: ${err.message}`;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
toolResults.push({ type: 'tool_result', tool_use_id: toolUse.id, content: result });
|
|
120
|
+
}
|
|
121
|
+
messages.push({ role: 'user', content: toolResults });
|
|
122
|
+
}
|
|
123
|
+
return outputParts.join('\n');
|
|
124
|
+
};
|
|
125
|
+
const timeoutPromise = new Promise((_, reject) => {
|
|
126
|
+
setTimeout(() => reject(new Error(`Agent run timed out after ${timeoutMs}ms`)), timeoutMs);
|
|
127
|
+
});
|
|
128
|
+
return Promise.race([runLoop(), timeoutPromise]);
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Streaming text generation — yields tokens as they arrive.
|
|
132
|
+
* @param messages Conversation turns (user/assistant).
|
|
133
|
+
* @param systemPrompt System instructions.
|
|
134
|
+
* @returns AsyncIterable of text chunks.
|
|
135
|
+
*/
|
|
136
|
+
async *stream(messages, systemPrompt) {
|
|
137
|
+
const stream = this.anthropic.messages.stream({
|
|
138
|
+
model: this.model,
|
|
139
|
+
system: systemPrompt,
|
|
140
|
+
messages,
|
|
141
|
+
max_tokens: 4096,
|
|
142
|
+
temperature: 0.2,
|
|
143
|
+
});
|
|
144
|
+
for await (const event of stream) {
|
|
145
|
+
if (event.type === 'content_block_delta' && event.delta.type === 'text_delta') {
|
|
146
|
+
yield event.delta.text;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Parse a JSON block from an LLM response.
|
|
152
|
+
* The model often wraps JSON in markdown fences — this strips them.
|
|
153
|
+
*/
|
|
154
|
+
static parseJsonFromReply(reply) {
|
|
155
|
+
const fenceMatch = reply.match(/```(?:json)?\s*([\s\S]*?)```/);
|
|
156
|
+
const jsonText = fenceMatch ? fenceMatch[1] : reply;
|
|
157
|
+
try {
|
|
158
|
+
return JSON.parse(jsonText.trim());
|
|
159
|
+
}
|
|
160
|
+
catch (err) {
|
|
161
|
+
throw new Error(`Failed to parse JSON from LLM reply: ${err.message}\nReply was:\n${reply}`);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
exports.OctoAgentClient = OctoAgentClient;
|
|
166
|
+
//# sourceMappingURL=OctoAgentClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OctoAgentClient.js","sourceRoot":"","sources":["../../src/workflow-design/OctoAgentClient.ts"],"names":[],"mappings":";;;;;;AAAA,4DAA0C;AAI1C,+DAA+D;AAC/D,kBAAkB;AAClB,oDAAoD;AACpD,mDAAmD;AACnD,+DAA+D;AAE/D,MAAM,kBAAkB,GAAG,uBAAuB,CAAC;AACnD,MAAM,aAAa,GAAG,mBAAmB,CAAC;AAC1C,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAC9B,MAAM,kBAAkB,GAAG,OAAO,CAAC;AACnC,MAAM,sBAAsB,GAAG,MAAM,CAAC;AAEtC,MAAa,eAAe;IACT,KAAK,CAAS;IAE/B;;;OAGG;IACM,SAAS,CAAY;IAE9B,YAAY,KAAc,EAAE,OAAgB;QAC1C,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,aAAa,CAAC;QACtE,IAAI,CAAC,SAAS,GAAG,IAAI,aAAS,CAAC;YAC7B,OAAO,EAAE,OAAO,IAAI,kBAAkB;YACtC,MAAM,EAAE,WAAW;SACpB,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,UAAU,CACd,QAAmB,EACnB,MAAqB,EACrB,KAAc;QAEd,MAAM,WAAW,GAAmB,QAAQ;aACzC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;aAClC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAA4B,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAE9E,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ;aAC1C,MAAM,CAAC;YACN,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,MAAgB,EAAE,wCAAwC;YAClE,QAAQ,EAAE,WAAW;YACrB,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,GAAG;SACjB,CAAC;aACD,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;YACjB,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAA0B,CAAC;YAC3F,OAAO,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEL,MAAM,cAAc,GAAG,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;YACtD,UAAU,CACR,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,8BAA8B,sBAAsB,IAAI,CAAC,CAAC,EACjF,sBAAsB,CACvB,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC,CAAC;IACvD,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,GAAG,CAAC,OAAwB;QAChC,MAAM,EACJ,YAAY,EACZ,WAAW,EACX,KAAK,GAAG,EAAE,EACV,SAAS,GAAG,kBAAkB,EAC9B,SAAS,GAAG,kBAAkB,EAC9B,OAAO,GACR,GAAG,OAAO,CAAC;QAEZ,MAAM,OAAO,GAAG,IAAI,GAAG,CAAyB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/E,MAAM,QAAQ,GAAmB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;QAC1E,MAAM,WAAW,GAAa,EAAE,CAAC;QAEjC,MAAM,cAAc,GAClB,KAAK,CAAC,MAAM,GAAG,CAAC;YACd,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAChB,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,YAAY,EAAE,EAAE,IAAI,EAAE,QAAiB,EAAE,GAAI,CAAC,CAAC,UAAsC,EAAE;aACxF,CAAC,CAAC;YACL,CAAC,CAAC,SAAS,CAAC;QAEhB,MAAM,OAAO,GAAG,KAAK,IAAqB,EAAE;YAC1C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC;gBAC/C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;oBACpD,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,MAAM,EAAE,YAAY;oBACpB,QAAQ;oBACR,KAAK,EAAE,cAAc;oBACrB,UAAU,EAAE,IAAI;oBAChB,WAAW,EAAE,GAAG;iBACjB,CAAC,CAAC;gBAEH,sBAAsB;gBACtB,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;oBACrC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAK,KAAmB,CAAC,IAAI,EAAE,CAAC;wBACvD,WAAW,CAAC,IAAI,CAAE,KAAmB,CAAC,IAAI,CAAC,CAAC;wBAC5C,OAAO,EAAE,CAAE,KAAmB,CAAC,IAAI,CAAC,CAAC;oBACvC,CAAC;gBACH,CAAC;gBAED,qBAAqB;gBACrB,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAmB,CAAC;gBAC9F,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;oBAAE,MAAM;gBAEtC,8CAA8C;gBAC9C,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;gBAEhE,oCAAoC;gBACpC,MAAM,WAAW,GAA2B,EAAE,CAAC;gBAC/C,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE,CAAC;oBACpC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBACvC,IAAI,MAAc,CAAC;oBAEnB,IAAI,CAAC,IAAI,EAAE,CAAC;wBACV,MAAM,GAAG,wBAAwB,OAAO,CAAC,IAAI,GAAG,CAAC;oBACnD,CAAC;yBAAM,CAAC;wBACN,IAAI,CAAC;4BACH,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;wBAC7C,CAAC;wBAAC,OAAO,GAAG,EAAE,CAAC;4BACb,MAAM,GAAG,yBAA0B,GAAa,CAAC,OAAO,EAAE,CAAC;wBAC7D,CAAC;oBACH,CAAC;oBAED,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;gBACtF,CAAC;gBAED,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;YACxD,CAAC;YAED,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChC,CAAC,CAAC;QAEF,MAAM,cAAc,GAAG,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;YACtD,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,6BAA6B,SAAS,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QAC7F,CAAC,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;IACnD,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,CAAC,MAAM,CAAC,QAAwB,EAAE,YAA2B;QACjE,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC5C,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,YAAsB;YAC9B,QAAQ;YACR,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,GAAG;SACjB,CAAC,CAAC;QAEH,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACjC,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAqB,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBAC9E,MAAM,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;YACzB,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,kBAAkB,CAAI,KAAa;QACxC,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAC/D,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAEpD,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAM,CAAC;QAC1C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CACb,wCAAyC,GAAa,CAAC,OAAO,iBAAiB,KAAK,EAAE,CACvF,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AAvLD,0CAuLC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { OctoAgentClient } from './OctoAgentClient.js';
|
|
2
|
+
import type { N8nWorkflow, WorkflowDraft } from './types.js';
|
|
3
|
+
export declare class WorkflowDesignOrchestrator {
|
|
4
|
+
private readonly client;
|
|
5
|
+
private draft;
|
|
6
|
+
private readonly triggerAgent;
|
|
7
|
+
private readonly actionAgent;
|
|
8
|
+
private readonly logicAgent;
|
|
9
|
+
private readonly codeAgent;
|
|
10
|
+
private readonly validatorAgent;
|
|
11
|
+
constructor(client: OctoAgentClient);
|
|
12
|
+
/**
|
|
13
|
+
* First call: design a brand-new workflow from user intent.
|
|
14
|
+
*/
|
|
15
|
+
design(userMessage: string): Promise<N8nWorkflow>;
|
|
16
|
+
/**
|
|
17
|
+
* Subsequent calls: modify the existing workflow based on user follow-up.
|
|
18
|
+
* Only re-runs the sub-agents relevant to the detected modification scope.
|
|
19
|
+
*/
|
|
20
|
+
modify(userMessage: string): Promise<N8nWorkflow>;
|
|
21
|
+
/** Access the current draft (for debugging / partial progress). */
|
|
22
|
+
getDraft(): Readonly<WorkflowDraft>;
|
|
23
|
+
/** Reset state for a new conversation. */
|
|
24
|
+
reset(): void;
|
|
25
|
+
private runFullPipeline;
|
|
26
|
+
/** Phase 1: TriggerAnalystAgent (serial) */
|
|
27
|
+
private runPhase1;
|
|
28
|
+
/** Phase 2: ActionChainAgent + LogicFlowAgent (parallel) */
|
|
29
|
+
private runPhase2;
|
|
30
|
+
private runPhase2Actions;
|
|
31
|
+
private runPhase2Logic;
|
|
32
|
+
/** Phase 3: CodeScriptAgent (conditional) */
|
|
33
|
+
private runPhase3;
|
|
34
|
+
/** Phase 4: Assemble + Phase 5: Validate */
|
|
35
|
+
private runPhase4And5;
|
|
36
|
+
/** Phase 5: WorkflowValidatorAgent */
|
|
37
|
+
private runPhase5;
|
|
38
|
+
private assembleWorkflow;
|
|
39
|
+
private mergeActionAndLogic;
|
|
40
|
+
private specToNode;
|
|
41
|
+
private generateWorkflowName;
|
|
42
|
+
private repairFromValidationErrors;
|
|
43
|
+
private detectModificationScope;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=WorkflowDesignOrchestrator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkflowDesignOrchestrator.d.ts","sourceRoot":"","sources":["../../src/workflow-design/WorkflowDesignOrchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAMvD,OAAO,KAAK,EAMV,WAAW,EAIX,aAAa,EACd,MAAM,YAAY,CAAC;AAQpB,qBAAa,0BAA0B;IASzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IARnC,OAAO,CAAC,KAAK,CAAgB;IAE7B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsB;IACnD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAmB;IAC/C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiB;IAC5C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkB;IAC5C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAyB;gBAE3B,MAAM,EAAE,eAAe;IAcpD;;OAEG;IACG,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAYvD;;;OAGG;IACG,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAgCvD,mEAAmE;IACnE,QAAQ,IAAI,QAAQ,CAAC,aAAa,CAAC;IAInC,0CAA0C;IAC1C,KAAK,IAAI,IAAI;YAQC,eAAe;IAO7B,4CAA4C;YAC9B,SAAS;IAQvB,4DAA4D;YAC9C,SAAS;YAOT,gBAAgB;YAahB,cAAc;IAW5B,6CAA6C;YAC/B,SAAS;IAmBvB,4CAA4C;YAC9B,aAAa;IAY3B,sCAAsC;YACxB,SAAS;IAQvB,OAAO,CAAC,gBAAgB;IA0DxB,OAAO,CAAC,mBAAmB;IAiB3B,OAAO,CAAC,UAAU;IAclB,OAAO,CAAC,oBAAoB;YASd,0BAA0B;IA8BxC,OAAO,CAAC,uBAAuB;CAsBhC"}
|