@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,290 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NODE_TEMPLATES = void 0;
|
|
4
|
+
/** Embedded n8n node knowledge base — all data inlined, no external fetch. */
|
|
5
|
+
exports.NODE_TEMPLATES = [
|
|
6
|
+
// ----------------------------------------------------------
|
|
7
|
+
// Triggers
|
|
8
|
+
// ----------------------------------------------------------
|
|
9
|
+
{
|
|
10
|
+
type: 'n8n-nodes-base.manualTrigger',
|
|
11
|
+
displayName: 'Manual Trigger',
|
|
12
|
+
category: 'trigger',
|
|
13
|
+
coreParams: [],
|
|
14
|
+
description: 'Manually start the workflow from the n8n editor.',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
type: 'n8n-nodes-base.scheduleTrigger',
|
|
18
|
+
displayName: 'Schedule Trigger (Cron)',
|
|
19
|
+
category: 'trigger',
|
|
20
|
+
coreParams: ['rule', 'cronExpression', 'interval'],
|
|
21
|
+
description: 'Trigger on a fixed schedule or cron expression.',
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
type: 'n8n-nodes-base.webhook',
|
|
25
|
+
displayName: 'Webhook',
|
|
26
|
+
category: 'trigger',
|
|
27
|
+
coreParams: ['httpMethod', 'path', 'authentication', 'responseMode'],
|
|
28
|
+
description: 'Receive HTTP requests and start the workflow.',
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
type: 'n8n-nodes-base.emailTrigger',
|
|
32
|
+
displayName: 'Email Trigger (IMAP)',
|
|
33
|
+
category: 'trigger',
|
|
34
|
+
coreParams: ['mailbox', 'credentials', 'format'],
|
|
35
|
+
description: 'Trigger when a new email arrives in an IMAP mailbox.',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
type: 'n8n-nodes-base.n8nTrigger',
|
|
39
|
+
displayName: 'n8n Trigger (Workflow Event)',
|
|
40
|
+
category: 'trigger',
|
|
41
|
+
coreParams: ['events'],
|
|
42
|
+
description: 'Trigger on internal n8n events (workflow updated, etc.).',
|
|
43
|
+
},
|
|
44
|
+
// ----------------------------------------------------------
|
|
45
|
+
// HTTP / API
|
|
46
|
+
// ----------------------------------------------------------
|
|
47
|
+
{
|
|
48
|
+
type: 'n8n-nodes-base.httpRequest',
|
|
49
|
+
displayName: 'HTTP Request',
|
|
50
|
+
category: 'http',
|
|
51
|
+
coreParams: ['method', 'url', 'authentication', 'headers', 'body', 'qs'],
|
|
52
|
+
description: 'Make any HTTP/REST API call.',
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
type: 'n8n-nodes-base.respondToWebhook',
|
|
56
|
+
displayName: 'Webhook Response',
|
|
57
|
+
category: 'http',
|
|
58
|
+
coreParams: ['respondWith', 'responseBody', 'responseCode', 'responseHeaders'],
|
|
59
|
+
description: 'Send a response back to the caller of a Webhook trigger.',
|
|
60
|
+
},
|
|
61
|
+
// ----------------------------------------------------------
|
|
62
|
+
// Data processing
|
|
63
|
+
// ----------------------------------------------------------
|
|
64
|
+
{
|
|
65
|
+
type: 'n8n-nodes-base.set',
|
|
66
|
+
displayName: 'Set',
|
|
67
|
+
category: 'data',
|
|
68
|
+
coreParams: ['values', 'keepOnlySet'],
|
|
69
|
+
description: 'Set, rename, or delete fields on items.',
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
type: 'n8n-nodes-base.code',
|
|
73
|
+
displayName: 'Code (Function)',
|
|
74
|
+
category: 'data',
|
|
75
|
+
coreParams: ['jsCode', 'mode'],
|
|
76
|
+
description: 'Run custom JavaScript code against the input items.',
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
type: 'n8n-nodes-base.itemLists',
|
|
80
|
+
displayName: 'Item Lists',
|
|
81
|
+
category: 'data',
|
|
82
|
+
coreParams: ['operation', 'fieldToSplitOut', 'fieldsToAggregate'],
|
|
83
|
+
description: 'Split, aggregate, or deduplicate item lists.',
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
type: 'n8n-nodes-base.extractFromFile',
|
|
87
|
+
displayName: 'JSON Parse / Extract',
|
|
88
|
+
category: 'data',
|
|
89
|
+
coreParams: ['operation', 'dataPropertyName'],
|
|
90
|
+
description: 'Parse JSON strings or extract data from binary files.',
|
|
91
|
+
},
|
|
92
|
+
// ----------------------------------------------------------
|
|
93
|
+
// Conditional / flow control
|
|
94
|
+
// ----------------------------------------------------------
|
|
95
|
+
{
|
|
96
|
+
type: 'n8n-nodes-base.if',
|
|
97
|
+
displayName: 'IF',
|
|
98
|
+
category: 'control',
|
|
99
|
+
coreParams: ['conditions'],
|
|
100
|
+
description: 'Route items down true/false branches based on conditions.',
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
type: 'n8n-nodes-base.switch',
|
|
104
|
+
displayName: 'Switch',
|
|
105
|
+
category: 'control',
|
|
106
|
+
coreParams: ['mode', 'rules'],
|
|
107
|
+
description: 'Route items to one of multiple outputs based on value.',
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
type: 'n8n-nodes-base.merge',
|
|
111
|
+
displayName: 'Merge',
|
|
112
|
+
category: 'control',
|
|
113
|
+
coreParams: ['mode', 'joinMode'],
|
|
114
|
+
description: 'Merge items from two branches.',
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
type: 'n8n-nodes-base.wait',
|
|
118
|
+
displayName: 'Wait',
|
|
119
|
+
category: 'control',
|
|
120
|
+
coreParams: ['resume', 'amount', 'unit'],
|
|
121
|
+
description: 'Pause the workflow execution for a specified time.',
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
type: 'n8n-nodes-base.errorTrigger',
|
|
125
|
+
displayName: 'Error Trigger',
|
|
126
|
+
category: 'control',
|
|
127
|
+
coreParams: [],
|
|
128
|
+
description: 'Trigger a separate error-handling workflow on failure.',
|
|
129
|
+
},
|
|
130
|
+
// ----------------------------------------------------------
|
|
131
|
+
// Notifications
|
|
132
|
+
// ----------------------------------------------------------
|
|
133
|
+
{
|
|
134
|
+
type: 'n8n-nodes-base.emailSend',
|
|
135
|
+
displayName: 'Send Email (SMTP)',
|
|
136
|
+
category: 'notification',
|
|
137
|
+
coreParams: ['fromEmail', 'toEmail', 'subject', 'text', 'html', 'credentials'],
|
|
138
|
+
description: 'Send an email via SMTP.',
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
type: 'n8n-nodes-base.gmail',
|
|
142
|
+
displayName: 'Gmail',
|
|
143
|
+
category: 'notification',
|
|
144
|
+
coreParams: ['operation', 'to', 'subject', 'message', 'credentials'],
|
|
145
|
+
description: 'Send or manage Gmail messages.',
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
type: 'n8n-nodes-base.slack',
|
|
149
|
+
displayName: 'Slack',
|
|
150
|
+
category: 'notification',
|
|
151
|
+
coreParams: ['operation', 'channel', 'text', 'credentials'],
|
|
152
|
+
description: 'Post messages or manage Slack channels.',
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
type: 'n8n-nodes-base.telegram',
|
|
156
|
+
displayName: 'Telegram',
|
|
157
|
+
category: 'notification',
|
|
158
|
+
coreParams: ['operation', 'chatId', 'text', 'credentials'],
|
|
159
|
+
description: 'Send messages via Telegram Bot API.',
|
|
160
|
+
},
|
|
161
|
+
// ----------------------------------------------------------
|
|
162
|
+
// Databases
|
|
163
|
+
// ----------------------------------------------------------
|
|
164
|
+
{
|
|
165
|
+
type: 'n8n-nodes-base.postgres',
|
|
166
|
+
displayName: 'Postgres',
|
|
167
|
+
category: 'database',
|
|
168
|
+
coreParams: ['operation', 'query', 'table', 'columns', 'credentials'],
|
|
169
|
+
description: 'Execute queries against a PostgreSQL database.',
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
type: 'n8n-nodes-base.mySql',
|
|
173
|
+
displayName: 'MySQL',
|
|
174
|
+
category: 'database',
|
|
175
|
+
coreParams: ['operation', 'query', 'table', 'credentials'],
|
|
176
|
+
description: 'Execute queries against a MySQL/MariaDB database.',
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
type: 'n8n-nodes-base.redis',
|
|
180
|
+
displayName: 'Redis',
|
|
181
|
+
category: 'database',
|
|
182
|
+
coreParams: ['operation', 'key', 'value', 'credentials'],
|
|
183
|
+
description: 'Get/set/delete keys in a Redis store.',
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
type: 'n8n-nodes-base.mongoDb',
|
|
187
|
+
displayName: 'MongoDB',
|
|
188
|
+
category: 'database',
|
|
189
|
+
coreParams: ['operation', 'collection', 'query', 'credentials'],
|
|
190
|
+
description: 'Interact with a MongoDB collection.',
|
|
191
|
+
},
|
|
192
|
+
// ----------------------------------------------------------
|
|
193
|
+
// Files
|
|
194
|
+
// ----------------------------------------------------------
|
|
195
|
+
{
|
|
196
|
+
type: 'n8n-nodes-base.readBinaryFiles',
|
|
197
|
+
displayName: 'Read Binary Files',
|
|
198
|
+
category: 'file',
|
|
199
|
+
coreParams: ['filePath'],
|
|
200
|
+
description: 'Read one or more files from the local filesystem.',
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
type: 'n8n-nodes-base.writeBinaryFile',
|
|
204
|
+
displayName: 'Write Binary File',
|
|
205
|
+
category: 'file',
|
|
206
|
+
coreParams: ['fileName', 'dataPropertyName'],
|
|
207
|
+
description: 'Write binary data to a local file.',
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
type: 'n8n-nodes-base.awsS3',
|
|
211
|
+
displayName: 'S3',
|
|
212
|
+
category: 'file',
|
|
213
|
+
coreParams: ['operation', 'bucketName', 'fileName', 'credentials'],
|
|
214
|
+
description: 'Upload/download objects in AWS S3 or compatible storage.',
|
|
215
|
+
},
|
|
216
|
+
// ----------------------------------------------------------
|
|
217
|
+
// AI / LLM (n8n v1.x)
|
|
218
|
+
// ----------------------------------------------------------
|
|
219
|
+
{
|
|
220
|
+
type: '@n8n/n8n-nodes-langchain.openAi',
|
|
221
|
+
displayName: 'OpenAI',
|
|
222
|
+
category: 'ai',
|
|
223
|
+
coreParams: ['operation', 'model', 'prompt', 'credentials'],
|
|
224
|
+
description: 'Call OpenAI Chat Completions, Embeddings, or DALL-E. (n8n v1.x)',
|
|
225
|
+
},
|
|
226
|
+
{
|
|
227
|
+
type: '@n8n/n8n-nodes-langchain.lmChatAnthropic',
|
|
228
|
+
displayName: 'Anthropic (Claude)',
|
|
229
|
+
category: 'ai',
|
|
230
|
+
coreParams: ['model', 'credentials'],
|
|
231
|
+
description: 'Use Claude as a LangChain chat model inside an AI Agent. (n8n v1.x)',
|
|
232
|
+
},
|
|
233
|
+
{
|
|
234
|
+
type: '@n8n/n8n-nodes-langchain.agent',
|
|
235
|
+
displayName: 'AI Agent (LangChain)',
|
|
236
|
+
category: 'ai',
|
|
237
|
+
coreParams: ['agentType', 'text', 'options'],
|
|
238
|
+
description: 'Orchestrate tools with a LangChain agent loop. (n8n v1.x)',
|
|
239
|
+
},
|
|
240
|
+
{
|
|
241
|
+
type: '@n8n/n8n-nodes-langchain.chainLlm',
|
|
242
|
+
displayName: 'LLM Chain',
|
|
243
|
+
category: 'ai',
|
|
244
|
+
coreParams: ['prompt', 'model'],
|
|
245
|
+
description: 'Simple single-step LLM chain. (n8n v1.x)',
|
|
246
|
+
},
|
|
247
|
+
// ----------------------------------------------------------
|
|
248
|
+
// Octo custom nodes
|
|
249
|
+
// ----------------------------------------------------------
|
|
250
|
+
{
|
|
251
|
+
type: 'octoAgent',
|
|
252
|
+
displayName: 'Octo Agent',
|
|
253
|
+
category: 'ai',
|
|
254
|
+
coreParams: ['prompt', 'maxRounds', 'timeout'],
|
|
255
|
+
description: 'AI agent with universal computer control — takes screenshots, reads any screen content, ' +
|
|
256
|
+
'clicks, types, scrolls, and presses keys to automate any desktop application. ' +
|
|
257
|
+
'Input: prompt (task description). Output: { success, output, prompt }. ' +
|
|
258
|
+
'Use when the task requires interacting with GUI applications, reading screen content, ' +
|
|
259
|
+
'or automating workflows that have no API.',
|
|
260
|
+
},
|
|
261
|
+
{
|
|
262
|
+
type: 'octoClaudeCliTool',
|
|
263
|
+
displayName: 'Octo Claude CLI',
|
|
264
|
+
category: 'ai',
|
|
265
|
+
coreParams: ['toolDescription', 'workingDir', 'timeout'],
|
|
266
|
+
description: 'Execute Claude CLI as an AI Agent tool via Octo for code generation and analysis.',
|
|
267
|
+
},
|
|
268
|
+
{
|
|
269
|
+
type: 'octoGeminiCliTool',
|
|
270
|
+
displayName: 'Octo Gemini CLI',
|
|
271
|
+
category: 'ai',
|
|
272
|
+
coreParams: ['toolDescription', 'workingDir', 'timeout'],
|
|
273
|
+
description: 'Execute Gemini CLI as an AI Agent tool via Octo.',
|
|
274
|
+
},
|
|
275
|
+
{
|
|
276
|
+
type: 'octoNotification',
|
|
277
|
+
displayName: 'Octo Notification',
|
|
278
|
+
category: 'notification',
|
|
279
|
+
coreParams: ['title', 'content', 'channel', 'userId'],
|
|
280
|
+
description: 'Send a notification via Octo notification center.',
|
|
281
|
+
},
|
|
282
|
+
{
|
|
283
|
+
type: 'octoKnowledge',
|
|
284
|
+
displayName: 'Octo Knowledge',
|
|
285
|
+
category: 'ai',
|
|
286
|
+
coreParams: ['operation', 'query', 'groupId'],
|
|
287
|
+
description: 'Search or retrieve notes from the Octo knowledge base.',
|
|
288
|
+
},
|
|
289
|
+
];
|
|
290
|
+
//# sourceMappingURL=n8n-node-templates-data.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"n8n-node-templates-data.js","sourceRoot":"","sources":["../../../src/workflow-design/n8n-node-templates-data.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { OctoAgentClient } from './OctoAgentClient.js';
|
|
2
|
+
export interface InvoiceLineItem {
|
|
3
|
+
description: string;
|
|
4
|
+
quantity: number | null;
|
|
5
|
+
unitPrice: number | null;
|
|
6
|
+
amount: number | null;
|
|
7
|
+
}
|
|
8
|
+
export interface InvoiceData {
|
|
9
|
+
invoiceNumber: string | null;
|
|
10
|
+
date: string | null;
|
|
11
|
+
vendor: string | null;
|
|
12
|
+
totalAmount: number | null;
|
|
13
|
+
currency: string | null;
|
|
14
|
+
subtotal: number | null;
|
|
15
|
+
taxAmount: number | null;
|
|
16
|
+
lineItems: InvoiceLineItem[];
|
|
17
|
+
}
|
|
18
|
+
export interface ContractParty {
|
|
19
|
+
name: string;
|
|
20
|
+
role: string | null;
|
|
21
|
+
}
|
|
22
|
+
export interface ContractData {
|
|
23
|
+
title: string | null;
|
|
24
|
+
parties: ContractParty[];
|
|
25
|
+
effectiveDate: string | null;
|
|
26
|
+
expiryDate: string | null;
|
|
27
|
+
value: number | null;
|
|
28
|
+
currency: string | null;
|
|
29
|
+
keyTerms: string[];
|
|
30
|
+
}
|
|
31
|
+
export declare class DocumentExtractorAgent {
|
|
32
|
+
private readonly client;
|
|
33
|
+
constructor(client: OctoAgentClient);
|
|
34
|
+
/**
|
|
35
|
+
* Extract structured invoice data from a base64-encoded image.
|
|
36
|
+
* @param imageBase64 Base64-encoded image data (no data: URI prefix).
|
|
37
|
+
* @param mediaType MIME type e.g. 'image/jpeg', 'image/png'.
|
|
38
|
+
*/
|
|
39
|
+
extractInvoice(imageBase64: string, mediaType: string): Promise<InvoiceData>;
|
|
40
|
+
/**
|
|
41
|
+
* Extract structured contract data from a base64-encoded image.
|
|
42
|
+
* @param imageBase64 Base64-encoded image data (no data: URI prefix).
|
|
43
|
+
* @param mediaType MIME type e.g. 'image/jpeg', 'image/png'.
|
|
44
|
+
*/
|
|
45
|
+
extractContract(imageBase64: string, mediaType?: string): Promise<ContractData>;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=DocumentExtractorAgent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DocumentExtractorAgent.d.ts","sourceRoot":"","sources":["../../src/workflow-design/DocumentExtractorAgent.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAQvD,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,eAAe,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAyDD,qBAAa,sBAAsB;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,eAAe;IAEpD;;;;OAIG;IACG,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IA0BlF;;;;OAIG;IACG,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,SAAe,GAAG,OAAO,CAAC,YAAY,CAAC;CAyB5F"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DocumentExtractorAgent = void 0;
|
|
4
|
+
const OctoAgentClient_js_1 = require("./OctoAgentClient.js");
|
|
5
|
+
const INVOICE_SYSTEM = {
|
|
6
|
+
type: 'text',
|
|
7
|
+
text: `You are a document data extraction specialist.
|
|
8
|
+
Extract structured data from the provided invoice image and return ONLY a JSON object.
|
|
9
|
+
The JSON must match this shape exactly:
|
|
10
|
+
{
|
|
11
|
+
"invoiceNumber": "string or null",
|
|
12
|
+
"date": "ISO date string (YYYY-MM-DD) or null",
|
|
13
|
+
"vendor": "vendor/supplier name or null",
|
|
14
|
+
"totalAmount": number or null,
|
|
15
|
+
"currency": "3-letter ISO code e.g. USD, CNY, EUR or null",
|
|
16
|
+
"subtotal": number or null,
|
|
17
|
+
"taxAmount": number or null,
|
|
18
|
+
"lineItems": [
|
|
19
|
+
{
|
|
20
|
+
"description": "item description",
|
|
21
|
+
"quantity": number or null,
|
|
22
|
+
"unitPrice": number or null,
|
|
23
|
+
"amount": number or null
|
|
24
|
+
}
|
|
25
|
+
]
|
|
26
|
+
}
|
|
27
|
+
Return null for any field you cannot determine from the image. Do not guess.`,
|
|
28
|
+
cache_control: { type: 'ephemeral' },
|
|
29
|
+
};
|
|
30
|
+
const CONTRACT_SYSTEM = {
|
|
31
|
+
type: 'text',
|
|
32
|
+
text: `You are a document data extraction specialist.
|
|
33
|
+
Extract structured data from the provided contract image and return ONLY a JSON object.
|
|
34
|
+
The JSON must match this shape exactly:
|
|
35
|
+
{
|
|
36
|
+
"title": "contract title or null",
|
|
37
|
+
"parties": [{ "name": "party name", "role": "role e.g. Buyer/Seller/Licensor or null" }],
|
|
38
|
+
"effectiveDate": "ISO date string (YYYY-MM-DD) or null",
|
|
39
|
+
"expiryDate": "ISO date string (YYYY-MM-DD) or null",
|
|
40
|
+
"value": number or null,
|
|
41
|
+
"currency": "3-letter ISO code or null",
|
|
42
|
+
"keyTerms": ["brief description of key term or obligation"]
|
|
43
|
+
}
|
|
44
|
+
Return null for any field you cannot determine. Keep keyTerms concise (max 10 items).`,
|
|
45
|
+
cache_control: { type: 'ephemeral' },
|
|
46
|
+
};
|
|
47
|
+
function toMediaType(raw) {
|
|
48
|
+
const normalised = raw.toLowerCase().replace('jpg', 'jpeg');
|
|
49
|
+
const supported = ['image/jpeg', 'image/png', 'image/gif', 'image/webp'];
|
|
50
|
+
if (supported.includes(normalised)) {
|
|
51
|
+
return normalised;
|
|
52
|
+
}
|
|
53
|
+
return 'image/jpeg';
|
|
54
|
+
}
|
|
55
|
+
class DocumentExtractorAgent {
|
|
56
|
+
client;
|
|
57
|
+
constructor(client) {
|
|
58
|
+
this.client = client;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Extract structured invoice data from a base64-encoded image.
|
|
62
|
+
* @param imageBase64 Base64-encoded image data (no data: URI prefix).
|
|
63
|
+
* @param mediaType MIME type e.g. 'image/jpeg', 'image/png'.
|
|
64
|
+
*/
|
|
65
|
+
async extractInvoice(imageBase64, mediaType) {
|
|
66
|
+
const imageBlock = {
|
|
67
|
+
type: 'image',
|
|
68
|
+
source: {
|
|
69
|
+
type: 'base64',
|
|
70
|
+
media_type: toMediaType(mediaType),
|
|
71
|
+
data: imageBase64,
|
|
72
|
+
},
|
|
73
|
+
};
|
|
74
|
+
const response = await this.client.anthropic.messages.create({
|
|
75
|
+
model: 'claude-sonnet-4-5',
|
|
76
|
+
system: [INVOICE_SYSTEM],
|
|
77
|
+
messages: [
|
|
78
|
+
{
|
|
79
|
+
role: 'user',
|
|
80
|
+
content: [imageBlock, { type: 'text', text: 'Extract all invoice data from this image.' }],
|
|
81
|
+
},
|
|
82
|
+
],
|
|
83
|
+
max_tokens: 2048,
|
|
84
|
+
});
|
|
85
|
+
const textBlock = response.content.find((b) => b.type === 'text');
|
|
86
|
+
return OctoAgentClient_js_1.OctoAgentClient.parseJsonFromReply(textBlock?.text ?? '{}');
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Extract structured contract data from a base64-encoded image.
|
|
90
|
+
* @param imageBase64 Base64-encoded image data (no data: URI prefix).
|
|
91
|
+
* @param mediaType MIME type e.g. 'image/jpeg', 'image/png'.
|
|
92
|
+
*/
|
|
93
|
+
async extractContract(imageBase64, mediaType = 'image/jpeg') {
|
|
94
|
+
const imageBlock = {
|
|
95
|
+
type: 'image',
|
|
96
|
+
source: {
|
|
97
|
+
type: 'base64',
|
|
98
|
+
media_type: toMediaType(mediaType),
|
|
99
|
+
data: imageBase64,
|
|
100
|
+
},
|
|
101
|
+
};
|
|
102
|
+
const response = await this.client.anthropic.messages.create({
|
|
103
|
+
model: 'claude-sonnet-4-5',
|
|
104
|
+
system: [CONTRACT_SYSTEM],
|
|
105
|
+
messages: [
|
|
106
|
+
{
|
|
107
|
+
role: 'user',
|
|
108
|
+
content: [imageBlock, { type: 'text', text: 'Extract all contract data from this image.' }],
|
|
109
|
+
},
|
|
110
|
+
],
|
|
111
|
+
max_tokens: 2048,
|
|
112
|
+
});
|
|
113
|
+
const textBlock = response.content.find((b) => b.type === 'text');
|
|
114
|
+
return OctoAgentClient_js_1.OctoAgentClient.parseJsonFromReply(textBlock?.text ?? '{}');
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
exports.DocumentExtractorAgent = DocumentExtractorAgent;
|
|
118
|
+
//# sourceMappingURL=DocumentExtractorAgent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DocumentExtractorAgent.js","sourceRoot":"","sources":["../../src/workflow-design/DocumentExtractorAgent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { CachedTextBlock, NodeCategory, NodeTemplate } from './types.js';
|
|
2
|
+
export declare class N8nNodeKnowledgeBase {
|
|
3
|
+
private static readonly templates;
|
|
4
|
+
/** Return templates matching the given categories. */
|
|
5
|
+
static getByCategories(categories: NodeCategory[]): NodeTemplate[];
|
|
6
|
+
/** Return all templates. */
|
|
7
|
+
static getAll(): NodeTemplate[];
|
|
8
|
+
/** Find a template by its n8n type string. */
|
|
9
|
+
static findByType(type: string): NodeTemplate | undefined;
|
|
10
|
+
/**
|
|
11
|
+
* Build a compact prompt fragment listing the relevant nodes.
|
|
12
|
+
* Orchestrator calls this to inject node knowledge into sub-agent prompts.
|
|
13
|
+
*/
|
|
14
|
+
static buildPromptSection(categories: NodeCategory[]): string;
|
|
15
|
+
/**
|
|
16
|
+
* Build a prompt section as a cached content block for use with Anthropic SDK.
|
|
17
|
+
* Applying cache_control saves ~90% cost when the same knowledge is passed repeatedly.
|
|
18
|
+
*/
|
|
19
|
+
static buildCachedBlock(categories: NodeCategory[]): CachedTextBlock;
|
|
20
|
+
/**
|
|
21
|
+
* Infer relevant categories from a free-text intent description.
|
|
22
|
+
* Used by the Orchestrator to pick which node docs to inject.
|
|
23
|
+
*/
|
|
24
|
+
static inferCategories(intent: string): NodeCategory[];
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=N8nNodeKnowledgeBase.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"N8nNodeKnowledgeBase.d.ts","sourceRoot":"","sources":["../../src/workflow-design/N8nNodeKnowledgeBase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAsQ9E,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAkC;IAEnE,sDAAsD;IACtD,MAAM,CAAC,eAAe,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,YAAY,EAAE;IAIlE,4BAA4B;IAC5B,MAAM,CAAC,MAAM,IAAI,YAAY,EAAE;IAI/B,8CAA8C;IAC9C,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIzD;;;OAGG;IACH,MAAM,CAAC,kBAAkB,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,MAAM;IAU7D;;;OAGG;IACH,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,eAAe;IAQpE;;;OAGG;IACH,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,EAAE;CAmBvD"}
|