@yagr/agent 0.2.9 → 0.2.11
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/cli.js +251 -9
- package/dist/cli.js.map +1 -1
- package/dist/config/n8n-config-service.d.ts +2 -1
- package/dist/config/n8n-config-service.d.ts.map +1 -1
- package/dist/config/n8n-config-service.js +2 -1
- package/dist/config/n8n-config-service.js.map +1 -1
- package/dist/config/yagr-config-service.d.ts +1 -1
- package/dist/config/yagr-config-service.d.ts.map +1 -1
- package/dist/config/yagr-home.d.ts +7 -0
- package/dist/config/yagr-home.d.ts.map +1 -1
- package/dist/config/yagr-home.js +19 -0
- package/dist/config/yagr-home.js.map +1 -1
- package/dist/gateway/format-message.d.ts +3 -0
- package/dist/gateway/format-message.d.ts.map +1 -1
- package/dist/gateway/format-message.js +63 -10
- package/dist/gateway/format-message.js.map +1 -1
- package/dist/gateway/interactive-ui.d.ts.map +1 -1
- package/dist/gateway/interactive-ui.js +49 -4
- package/dist/gateway/interactive-ui.js.map +1 -1
- package/dist/gateway/local-open-bridge.d.ts +3 -0
- package/dist/gateway/local-open-bridge.d.ts.map +1 -0
- package/dist/gateway/local-open-bridge.js +54 -0
- package/dist/gateway/local-open-bridge.js.map +1 -0
- package/dist/gateway/webui.d.ts.map +1 -1
- package/dist/gateway/webui.js +50 -53
- package/dist/gateway/webui.js.map +1 -1
- package/dist/gateway/workflow-links.d.ts +12 -0
- package/dist/gateway/workflow-links.d.ts.map +1 -0
- package/dist/gateway/workflow-links.js +53 -0
- package/dist/gateway/workflow-links.js.map +1 -0
- package/dist/llm/anthropic-account.d.ts +20 -0
- package/dist/llm/anthropic-account.d.ts.map +1 -0
- package/dist/llm/anthropic-account.js +111 -0
- package/dist/llm/anthropic-account.js.map +1 -0
- package/dist/llm/copilot-account.d.ts +36 -0
- package/dist/llm/copilot-account.d.ts.map +1 -0
- package/dist/llm/copilot-account.js +573 -0
- package/dist/llm/copilot-account.js.map +1 -0
- package/dist/llm/create-language-model.d.ts +2 -2
- package/dist/llm/create-language-model.d.ts.map +1 -1
- package/dist/llm/create-language-model.js +187 -38
- package/dist/llm/create-language-model.js.map +1 -1
- package/dist/llm/google-account.d.ts +31 -0
- package/dist/llm/google-account.d.ts.map +1 -0
- package/dist/llm/google-account.js +851 -0
- package/dist/llm/google-account.js.map +1 -0
- package/dist/llm/model-catalog-cache.d.ts +4 -0
- package/dist/llm/model-catalog-cache.d.ts.map +1 -0
- package/dist/llm/model-catalog-cache.js +46 -0
- package/dist/llm/model-catalog-cache.js.map +1 -0
- package/dist/llm/openai-account.d.ts +33 -0
- package/dist/llm/openai-account.d.ts.map +1 -0
- package/dist/llm/openai-account.js +578 -0
- package/dist/llm/openai-account.js.map +1 -0
- package/dist/llm/provider-discovery.d.ts +3 -0
- package/dist/llm/provider-discovery.d.ts.map +1 -0
- package/dist/llm/provider-discovery.js +40 -0
- package/dist/llm/provider-discovery.js.map +1 -0
- package/dist/llm/provider-registry.d.ts +37 -0
- package/dist/llm/provider-registry.d.ts.map +1 -0
- package/dist/llm/provider-registry.js +186 -0
- package/dist/llm/provider-registry.js.map +1 -0
- package/dist/llm/proxy-runtime.d.ts +37 -0
- package/dist/llm/proxy-runtime.d.ts.map +1 -0
- package/dist/llm/proxy-runtime.js +462 -0
- package/dist/llm/proxy-runtime.js.map +1 -0
- package/dist/llm/test-model-policy.d.ts +3 -0
- package/dist/llm/test-model-policy.d.ts.map +1 -0
- package/dist/llm/test-model-policy.js +16 -0
- package/dist/llm/test-model-policy.js.map +1 -0
- package/dist/n8n-local/bootstrap.d.ts +12 -0
- package/dist/n8n-local/bootstrap.d.ts.map +1 -0
- package/dist/n8n-local/bootstrap.js +281 -0
- package/dist/n8n-local/bootstrap.js.map +1 -0
- package/dist/n8n-local/browser-auth.d.ts +12 -0
- package/dist/n8n-local/browser-auth.d.ts.map +1 -0
- package/dist/n8n-local/browser-auth.js +159 -0
- package/dist/n8n-local/browser-auth.js.map +1 -0
- package/dist/n8n-local/detect.d.ts +50 -0
- package/dist/n8n-local/detect.d.ts.map +1 -0
- package/dist/n8n-local/detect.js +207 -0
- package/dist/n8n-local/detect.js.map +1 -0
- package/dist/n8n-local/direct-manager.d.ts +15 -0
- package/dist/n8n-local/direct-manager.d.ts.map +1 -0
- package/dist/n8n-local/direct-manager.js +232 -0
- package/dist/n8n-local/direct-manager.js.map +1 -0
- package/dist/n8n-local/docker-manager.d.ts +18 -0
- package/dist/n8n-local/docker-manager.d.ts.map +1 -0
- package/dist/n8n-local/docker-manager.js +217 -0
- package/dist/n8n-local/docker-manager.js.map +1 -0
- package/dist/n8n-local/managed-runtime.d.ts +17 -0
- package/dist/n8n-local/managed-runtime.d.ts.map +1 -0
- package/dist/n8n-local/managed-runtime.js +122 -0
- package/dist/n8n-local/managed-runtime.js.map +1 -0
- package/dist/n8n-local/owner-credentials.d.ts +15 -0
- package/dist/n8n-local/owner-credentials.d.ts.map +1 -0
- package/dist/n8n-local/owner-credentials.js +50 -0
- package/dist/n8n-local/owner-credentials.js.map +1 -0
- package/dist/n8n-local/plan.d.ts +16 -0
- package/dist/n8n-local/plan.d.ts.map +1 -0
- package/dist/n8n-local/plan.js +48 -0
- package/dist/n8n-local/plan.js.map +1 -0
- package/dist/n8n-local/state.d.ts +42 -0
- package/dist/n8n-local/state.d.ts.map +1 -0
- package/dist/n8n-local/state.js +108 -0
- package/dist/n8n-local/state.js.map +1 -0
- package/dist/n8n-local/workflow-open.d.ts +21 -0
- package/dist/n8n-local/workflow-open.d.ts.map +1 -0
- package/dist/n8n-local/workflow-open.js +50 -0
- package/dist/n8n-local/workflow-open.js.map +1 -0
- package/dist/runtime/context-compaction.d.ts.map +1 -1
- package/dist/runtime/context-compaction.js +7 -0
- package/dist/runtime/context-compaction.js.map +1 -1
- package/dist/runtime/run-engine.d.ts.map +1 -1
- package/dist/runtime/run-engine.js +52 -1
- package/dist/runtime/run-engine.js.map +1 -1
- package/dist/setup/setup-wizard.d.ts +36 -3
- package/dist/setup/setup-wizard.d.ts.map +1 -1
- package/dist/setup/setup-wizard.js +470 -62
- package/dist/setup/setup-wizard.js.map +1 -1
- package/dist/setup.d.ts +2 -1
- package/dist/setup.d.ts.map +1 -1
- package/dist/setup.js +204 -89
- package/dist/setup.js.map +1 -1
- package/dist/system/open-external.d.ts +2 -0
- package/dist/system/open-external.d.ts.map +1 -0
- package/dist/system/open-external.js +25 -0
- package/dist/system/open-external.js.map +1 -0
- package/dist/system/package-manager.d.ts +6 -0
- package/dist/system/package-manager.d.ts.map +1 -0
- package/dist/system/package-manager.js +13 -0
- package/dist/system/package-manager.js.map +1 -0
- package/dist/tools/build-tools.d.ts +110 -65
- package/dist/tools/build-tools.d.ts.map +1 -1
- package/dist/tools/deploy.d.ts +14 -14
- package/dist/tools/generate-workflow.d.ts +5 -5
- package/dist/tools/n8nac.d.ts +96 -53
- package/dist/tools/n8nac.d.ts.map +1 -1
- package/dist/tools/n8nac.js +52 -20
- package/dist/tools/n8nac.js.map +1 -1
- package/dist/tools/observer.d.ts +1 -0
- package/dist/tools/observer.d.ts.map +1 -1
- package/dist/tools/observer.js.map +1 -1
- package/dist/tools/present-workflow-result.d.ts +2 -0
- package/dist/tools/present-workflow-result.d.ts.map +1 -1
- package/dist/tools/present-workflow-result.js +11 -2
- package/dist/tools/present-workflow-result.js.map +1 -1
- package/dist/tools/request-required-action.d.ts +7 -7
- package/dist/tools/request-required-action.js +4 -4
- package/dist/tools/request-required-action.js.map +1 -1
- package/dist/tools/validate.d.ts +14 -14
- package/dist/tools/write-workspace-file.d.ts +5 -5
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/webui/app.js +14 -1
- package/dist/webui/app.js.map +2 -2
- package/package.json +15 -2
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
import { execFile } from 'node:child_process';
|
|
2
|
+
import crypto from 'node:crypto';
|
|
3
|
+
import fs from 'node:fs';
|
|
4
|
+
import { promisify } from 'node:util';
|
|
5
|
+
import { DEFAULT_N8N_PORT, inspectLocalN8nBootstrap } from './detect.js';
|
|
6
|
+
import { buildManagedN8nState, ensureManagedN8nDirs, readManagedN8nState, resolveManagedN8nBootstrapStage, updateManagedN8nState, } from './state.js';
|
|
7
|
+
const execFileAsync = promisify(execFile);
|
|
8
|
+
const DEFAULT_N8N_IMAGE = 'docker.n8n.io/n8nio/n8n:stable';
|
|
9
|
+
const CONTAINER_N8N_PORT = 5678;
|
|
10
|
+
const DEFAULT_HEALTH_TIMEOUT_MS = 180_000;
|
|
11
|
+
const DEFAULT_EDITOR_TIMEOUT_MS = 90_000;
|
|
12
|
+
export async function installManagedDockerN8n(options = {}) {
|
|
13
|
+
const assessment = await inspectLocalN8nBootstrap();
|
|
14
|
+
if (!assessment.docker.available) {
|
|
15
|
+
throw new Error('Docker is not running. Choose the local managed n8n option without Docker, or install/run Docker.');
|
|
16
|
+
}
|
|
17
|
+
if (assessment.docker.reachable === false) {
|
|
18
|
+
throw new Error('Docker is not running. Choose the local managed n8n option without Docker, or install/run Docker.');
|
|
19
|
+
}
|
|
20
|
+
const paths = ensureManagedN8nDirs();
|
|
21
|
+
const existingState = readManagedN8nState();
|
|
22
|
+
const port = options.port ?? existingState?.port ?? assessment.preferredPort ?? DEFAULT_N8N_PORT;
|
|
23
|
+
const image = options.image ?? existingState?.image ?? DEFAULT_N8N_IMAGE;
|
|
24
|
+
const bootstrapStage = resolveManagedN8nBootstrapStage(`http://127.0.0.1:${port}`);
|
|
25
|
+
writeDockerComposeFiles({ image, port });
|
|
26
|
+
updateManagedN8nState(() => buildManagedN8nState({
|
|
27
|
+
image,
|
|
28
|
+
port,
|
|
29
|
+
status: 'starting',
|
|
30
|
+
bootstrapStage,
|
|
31
|
+
}));
|
|
32
|
+
await runDockerCompose(['up', '-d', '--pull', 'missing']);
|
|
33
|
+
await waitForManagedN8nHealth(`http://127.0.0.1:${port}`);
|
|
34
|
+
await waitForManagedN8nEditorReadyBestEffort(`http://127.0.0.1:${port}`);
|
|
35
|
+
return updateManagedN8nState((current) => ({
|
|
36
|
+
...(current ?? buildManagedN8nState({ image, port })),
|
|
37
|
+
status: 'ready',
|
|
38
|
+
bootstrapStage: current?.bootstrapStage ?? bootstrapStage,
|
|
39
|
+
lastError: undefined,
|
|
40
|
+
}));
|
|
41
|
+
function writeDockerComposeFiles(input) {
|
|
42
|
+
fs.writeFileSync(paths.envFile, buildEnvFile(input));
|
|
43
|
+
fs.writeFileSync(paths.composeFile, buildComposeFile());
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
export async function startManagedDockerN8n() {
|
|
47
|
+
const state = readManagedN8nState();
|
|
48
|
+
if (!state) {
|
|
49
|
+
throw new Error('No Yagr-managed local n8n instance is installed yet. Run `yagr n8n local install` first.');
|
|
50
|
+
}
|
|
51
|
+
updateManagedN8nState((current) => ({
|
|
52
|
+
...(current ?? state),
|
|
53
|
+
status: 'starting',
|
|
54
|
+
lastError: undefined,
|
|
55
|
+
}));
|
|
56
|
+
await runDockerCompose(['up', '-d']);
|
|
57
|
+
await waitForManagedN8nHealth(state.url);
|
|
58
|
+
await waitForManagedN8nEditorReadyBestEffort(state.url);
|
|
59
|
+
return updateManagedN8nState((current) => ({
|
|
60
|
+
...(current ?? state),
|
|
61
|
+
status: 'ready',
|
|
62
|
+
lastError: undefined,
|
|
63
|
+
}));
|
|
64
|
+
}
|
|
65
|
+
export async function getManagedDockerN8nStatus() {
|
|
66
|
+
const state = readManagedN8nState();
|
|
67
|
+
if (!state) {
|
|
68
|
+
return { installed: false, running: false, healthy: false };
|
|
69
|
+
}
|
|
70
|
+
const running = await isComposeServiceRunning();
|
|
71
|
+
const healthy = running ? await isManagedN8nHealthy(state.url) : false;
|
|
72
|
+
return {
|
|
73
|
+
installed: true,
|
|
74
|
+
running,
|
|
75
|
+
healthy,
|
|
76
|
+
url: state.url,
|
|
77
|
+
state,
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
export async function stopManagedDockerN8n() {
|
|
81
|
+
const state = readManagedN8nState();
|
|
82
|
+
if (!state) {
|
|
83
|
+
throw new Error('No Yagr-managed local n8n instance is installed yet.');
|
|
84
|
+
}
|
|
85
|
+
await runDockerCompose(['down']);
|
|
86
|
+
return updateManagedN8nState((current) => ({
|
|
87
|
+
...(current ?? state),
|
|
88
|
+
status: 'stopped',
|
|
89
|
+
lastError: undefined,
|
|
90
|
+
}));
|
|
91
|
+
}
|
|
92
|
+
export async function getManagedDockerN8nLogs(tail = 100) {
|
|
93
|
+
const state = readManagedN8nState();
|
|
94
|
+
if (!state) {
|
|
95
|
+
throw new Error('No Yagr-managed local n8n instance is installed yet.');
|
|
96
|
+
}
|
|
97
|
+
const { stdout, stderr } = await runDockerCompose(['logs', '--tail', String(tail)]);
|
|
98
|
+
return [stdout, stderr].filter(Boolean).join('\n').trim();
|
|
99
|
+
}
|
|
100
|
+
function buildEnvFile(input) {
|
|
101
|
+
return [
|
|
102
|
+
`N8N_IMAGE=${input.image}`,
|
|
103
|
+
`YAGR_N8N_HOST_PORT=${input.port}`,
|
|
104
|
+
'GENERIC_TIMEZONE=UTC',
|
|
105
|
+
'TZ=UTC',
|
|
106
|
+
'N8N_HOST=127.0.0.1',
|
|
107
|
+
'N8N_LISTEN_ADDRESS=0.0.0.0',
|
|
108
|
+
'N8N_PROTOCOL=http',
|
|
109
|
+
`N8N_EDITOR_BASE_URL=http://127.0.0.1:${input.port}`,
|
|
110
|
+
'N8N_SECURE_COOKIE=false',
|
|
111
|
+
'N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true',
|
|
112
|
+
'QUEUE_HEALTH_CHECK_ACTIVE=true',
|
|
113
|
+
'',
|
|
114
|
+
].join('\n');
|
|
115
|
+
}
|
|
116
|
+
function buildComposeFile() {
|
|
117
|
+
return [
|
|
118
|
+
'services:',
|
|
119
|
+
' n8n:',
|
|
120
|
+
' image: ${N8N_IMAGE}',
|
|
121
|
+
' restart: unless-stopped',
|
|
122
|
+
' ports:',
|
|
123
|
+
` - "127.0.0.1:\${YAGR_N8N_HOST_PORT}:${CONTAINER_N8N_PORT}"`,
|
|
124
|
+
' env_file:',
|
|
125
|
+
' - .env',
|
|
126
|
+
' volumes:',
|
|
127
|
+
' - ./data:/home/node/.n8n',
|
|
128
|
+
'',
|
|
129
|
+
].join('\n');
|
|
130
|
+
}
|
|
131
|
+
async function runDockerCompose(args) {
|
|
132
|
+
const { rootDir, composeFile } = ensureManagedN8nDirs();
|
|
133
|
+
return execFileAsync('docker', ['compose', '-f', composeFile, ...args], {
|
|
134
|
+
cwd: rootDir,
|
|
135
|
+
timeout: 120_000,
|
|
136
|
+
env: {
|
|
137
|
+
...process.env,
|
|
138
|
+
COMPOSE_PROJECT_NAME: getComposeProjectName(rootDir),
|
|
139
|
+
},
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
function getComposeProjectName(rootDir) {
|
|
143
|
+
const digest = crypto.createHash('sha1').update(rootDir).digest('hex').slice(0, 10);
|
|
144
|
+
return `yagr-n8n-${digest}`;
|
|
145
|
+
}
|
|
146
|
+
async function isComposeServiceRunning() {
|
|
147
|
+
try {
|
|
148
|
+
const { stdout } = await runDockerCompose(['ps', '--status', 'running', '--services']);
|
|
149
|
+
return stdout.split(/\r?\n/).map((line) => line.trim()).includes('n8n');
|
|
150
|
+
}
|
|
151
|
+
catch {
|
|
152
|
+
return false;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
async function isManagedN8nHealthy(url) {
|
|
156
|
+
try {
|
|
157
|
+
const response = await fetch(`${url}/healthz`);
|
|
158
|
+
return response.ok;
|
|
159
|
+
}
|
|
160
|
+
catch {
|
|
161
|
+
return false;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
async function isManagedN8nEditorReady(url) {
|
|
165
|
+
try {
|
|
166
|
+
const response = await fetch(url);
|
|
167
|
+
if (!response.ok) {
|
|
168
|
+
return false;
|
|
169
|
+
}
|
|
170
|
+
const body = await response.text();
|
|
171
|
+
if (!body.trim()) {
|
|
172
|
+
return false;
|
|
173
|
+
}
|
|
174
|
+
return !body.toLowerCase().includes('n8n is starting up');
|
|
175
|
+
}
|
|
176
|
+
catch {
|
|
177
|
+
return false;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
async function waitForManagedN8nHealth(url, timeoutMs = DEFAULT_HEALTH_TIMEOUT_MS) {
|
|
181
|
+
const deadline = Date.now() + timeoutMs;
|
|
182
|
+
while (Date.now() < deadline) {
|
|
183
|
+
if (await isManagedN8nHealthy(url)) {
|
|
184
|
+
return;
|
|
185
|
+
}
|
|
186
|
+
await new Promise((resolve) => setTimeout(resolve, 1500));
|
|
187
|
+
}
|
|
188
|
+
updateManagedN8nState((current) => ({
|
|
189
|
+
...(current ?? buildManagedN8nState({ image: DEFAULT_N8N_IMAGE, port: DEFAULT_N8N_PORT })),
|
|
190
|
+
status: 'error',
|
|
191
|
+
lastError: `Timed out waiting for ${url} to become healthy.`,
|
|
192
|
+
}));
|
|
193
|
+
throw new Error(`Timed out waiting for ${url} to become healthy.`);
|
|
194
|
+
}
|
|
195
|
+
async function waitForManagedN8nEditorReady(url, timeoutMs = DEFAULT_EDITOR_TIMEOUT_MS) {
|
|
196
|
+
const deadline = Date.now() + timeoutMs;
|
|
197
|
+
while (Date.now() < deadline) {
|
|
198
|
+
if (await isManagedN8nEditorReady(url)) {
|
|
199
|
+
return;
|
|
200
|
+
}
|
|
201
|
+
await new Promise((resolve) => setTimeout(resolve, 1500));
|
|
202
|
+
}
|
|
203
|
+
updateManagedN8nState((current) => ({
|
|
204
|
+
...(current ?? buildManagedN8nState({ image: DEFAULT_N8N_IMAGE, port: DEFAULT_N8N_PORT })),
|
|
205
|
+
lastError: `Timed out waiting for the n8n editor at ${url} to become ready.`,
|
|
206
|
+
}));
|
|
207
|
+
throw new Error(`Timed out waiting for the n8n editor at ${url} to become ready.`);
|
|
208
|
+
}
|
|
209
|
+
async function waitForManagedN8nEditorReadyBestEffort(url) {
|
|
210
|
+
try {
|
|
211
|
+
await waitForManagedN8nEditorReady(url);
|
|
212
|
+
}
|
|
213
|
+
catch {
|
|
214
|
+
// Do not fail installation on editor warmup only.
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
//# sourceMappingURL=docker-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docker-manager.js","sourceRoot":"","sources":["../../src/n8n-local/docker-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { YagrN8nConfigService } from '../config/n8n-config-service.js';
|
|
2
|
+
import { type ManagedN8nInstanceState } from './state.js';
|
|
3
|
+
export type ConfiguredN8nRuntimeMode = 'unconfigured' | 'managed-local' | 'legacy-managed-match' | 'external';
|
|
4
|
+
export interface ConfiguredN8nLaunchPreparation {
|
|
5
|
+
mode: ConfiguredN8nRuntimeMode;
|
|
6
|
+
started: boolean;
|
|
7
|
+
state?: ManagedN8nInstanceState;
|
|
8
|
+
warning?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function getConfiguredManagedN8nState(configService?: YagrN8nConfigService): ManagedN8nInstanceState | undefined;
|
|
11
|
+
export declare function ensureConfiguredManagedN8nRunning(configService?: YagrN8nConfigService): Promise<{
|
|
12
|
+
state?: ManagedN8nInstanceState;
|
|
13
|
+
started: boolean;
|
|
14
|
+
}>;
|
|
15
|
+
export declare function getConfiguredExternalN8nReachabilityWarning(configService?: YagrN8nConfigService): Promise<string | undefined>;
|
|
16
|
+
export declare function prepareConfiguredN8nForLaunch(configService?: YagrN8nConfigService): Promise<ConfiguredN8nLaunchPreparation>;
|
|
17
|
+
//# sourceMappingURL=managed-runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"managed-runtime.d.ts","sourceRoot":"","sources":["../../src/n8n-local/managed-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AASvE,OAAO,EAAuB,KAAK,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAE/E,MAAM,MAAM,wBAAwB,GAChC,cAAc,GACd,eAAe,GACf,sBAAsB,GACtB,UAAU,CAAC;AAEf,MAAM,WAAW,8BAA8B;IAC7C,IAAI,EAAE,wBAAwB,CAAC;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,uBAAuB,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAwDD,wBAAgB,4BAA4B,CAC1C,aAAa,uBAA6B,GACzC,uBAAuB,GAAG,SAAS,CAcrC;AAED,wBAAsB,iCAAiC,CACrD,aAAa,uBAA6B,GACzC,OAAO,CAAC;IAAE,KAAK,CAAC,EAAE,uBAAuB,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAqBhE;AAED,wBAAsB,2CAA2C,CAC/D,aAAa,uBAA6B,GACzC,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAsB7B;AAED,wBAAsB,6BAA6B,CACjD,aAAa,uBAA6B,GACzC,OAAO,CAAC,8BAA8B,CAAC,CAwBzC"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { YagrN8nConfigService } from '../config/n8n-config-service.js';
|
|
2
|
+
import { getManagedDirectN8nStatus, startManagedDirectN8n, } from './direct-manager.js';
|
|
3
|
+
import { getManagedDockerN8nStatus, startManagedDockerN8n, } from './docker-manager.js';
|
|
4
|
+
import { readManagedN8nState } from './state.js';
|
|
5
|
+
function normalizeUrlOrigin(url) {
|
|
6
|
+
if (!url) {
|
|
7
|
+
return undefined;
|
|
8
|
+
}
|
|
9
|
+
try {
|
|
10
|
+
return new URL(url).origin;
|
|
11
|
+
}
|
|
12
|
+
catch {
|
|
13
|
+
return url.replace(/\/$/, '');
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
function resolveConfiguredRuntimeSource(configService) {
|
|
17
|
+
const localConfig = configService.getLocalConfig();
|
|
18
|
+
const managedState = readManagedN8nState();
|
|
19
|
+
if (!localConfig.host) {
|
|
20
|
+
return {
|
|
21
|
+
source: 'unconfigured',
|
|
22
|
+
localConfig,
|
|
23
|
+
managedState,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
if (localConfig.runtimeSource) {
|
|
27
|
+
return {
|
|
28
|
+
source: localConfig.runtimeSource,
|
|
29
|
+
localConfig,
|
|
30
|
+
managedState,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
const configuredHost = normalizeUrlOrigin(localConfig.host);
|
|
34
|
+
const managedHost = normalizeUrlOrigin(managedState?.url);
|
|
35
|
+
if (configuredHost && managedHost && configuredHost === managedHost) {
|
|
36
|
+
return {
|
|
37
|
+
source: 'legacy-managed-match',
|
|
38
|
+
localConfig,
|
|
39
|
+
managedState,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
return {
|
|
43
|
+
source: 'external',
|
|
44
|
+
localConfig,
|
|
45
|
+
managedState,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
export function getConfiguredManagedN8nState(configService = new YagrN8nConfigService()) {
|
|
49
|
+
const { source, localConfig, managedState } = resolveConfiguredRuntimeSource(configService);
|
|
50
|
+
if (source !== 'managed-local' && source !== 'legacy-managed-match') {
|
|
51
|
+
return undefined;
|
|
52
|
+
}
|
|
53
|
+
const configuredHost = normalizeUrlOrigin(localConfig.host);
|
|
54
|
+
if (!configuredHost || !managedState) {
|
|
55
|
+
return undefined;
|
|
56
|
+
}
|
|
57
|
+
return normalizeUrlOrigin(managedState.url) === configuredHost
|
|
58
|
+
? managedState
|
|
59
|
+
: undefined;
|
|
60
|
+
}
|
|
61
|
+
export async function ensureConfiguredManagedN8nRunning(configService = new YagrN8nConfigService()) {
|
|
62
|
+
const managedState = getConfiguredManagedN8nState(configService);
|
|
63
|
+
if (!managedState) {
|
|
64
|
+
return { started: false };
|
|
65
|
+
}
|
|
66
|
+
if (managedState.strategy === 'direct') {
|
|
67
|
+
const status = await getManagedDirectN8nStatus();
|
|
68
|
+
if (status.running && status.healthy && status.state) {
|
|
69
|
+
return { state: status.state, started: false };
|
|
70
|
+
}
|
|
71
|
+
return { state: await startManagedDirectN8n(), started: true };
|
|
72
|
+
}
|
|
73
|
+
const status = await getManagedDockerN8nStatus();
|
|
74
|
+
if (status.running && status.healthy && status.state) {
|
|
75
|
+
return { state: status.state, started: false };
|
|
76
|
+
}
|
|
77
|
+
return { state: await startManagedDockerN8n(), started: true };
|
|
78
|
+
}
|
|
79
|
+
export async function getConfiguredExternalN8nReachabilityWarning(configService = new YagrN8nConfigService()) {
|
|
80
|
+
const { source, localConfig } = resolveConfiguredRuntimeSource(configService);
|
|
81
|
+
if (source !== 'external') {
|
|
82
|
+
return undefined;
|
|
83
|
+
}
|
|
84
|
+
if (!localConfig.host) {
|
|
85
|
+
return undefined;
|
|
86
|
+
}
|
|
87
|
+
try {
|
|
88
|
+
const response = await fetch(new URL('/healthz', localConfig.host), {
|
|
89
|
+
method: 'GET',
|
|
90
|
+
});
|
|
91
|
+
if (response.ok) {
|
|
92
|
+
return undefined;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
catch {
|
|
96
|
+
// Fall through to the same warning message.
|
|
97
|
+
}
|
|
98
|
+
return `Configured external n8n instance is not reachable at ${localConfig.host}. Yagr will not restart manually-managed instances automatically.`;
|
|
99
|
+
}
|
|
100
|
+
export async function prepareConfiguredN8nForLaunch(configService = new YagrN8nConfigService()) {
|
|
101
|
+
const { source } = resolveConfiguredRuntimeSource(configService);
|
|
102
|
+
if (source === 'managed-local' || source === 'legacy-managed-match') {
|
|
103
|
+
const ensured = await ensureConfiguredManagedN8nRunning(configService);
|
|
104
|
+
return {
|
|
105
|
+
mode: source,
|
|
106
|
+
started: ensured.started,
|
|
107
|
+
state: ensured.state,
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
if (source === 'external') {
|
|
111
|
+
return {
|
|
112
|
+
mode: source,
|
|
113
|
+
started: false,
|
|
114
|
+
warning: await getConfiguredExternalN8nReachabilityWarning(configService),
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
return {
|
|
118
|
+
mode: source,
|
|
119
|
+
started: false,
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=managed-runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"managed-runtime.js","sourceRoot":"","sources":["../../src/n8n-local/managed-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EACL,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAgC,MAAM,YAAY,CAAC;AAe/E,SAAS,kBAAkB,CAAC,GAAuB;IACjD,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,CAAC;QACH,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAChC,CAAC;AACH,CAAC;AAED,SAAS,8BAA8B,CAAC,aAAmC;IAKzE,MAAM,WAAW,GAAG,aAAa,CAAC,cAAc,EAAE,CAAC;IACnD,MAAM,YAAY,GAAG,mBAAmB,EAAE,CAAC;IAE3C,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QACtB,OAAO;YACL,MAAM,EAAE,cAAc;YACtB,WAAW;YACX,YAAY;SACb,CAAC;IACJ,CAAC;IAED,IAAI,WAAW,CAAC,aAAa,EAAE,CAAC;QAC9B,OAAO;YACL,MAAM,EAAE,WAAW,CAAC,aAAa;YACjC,WAAW;YACX,YAAY;SACb,CAAC;IACJ,CAAC;IAED,MAAM,cAAc,GAAG,kBAAkB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC5D,MAAM,WAAW,GAAG,kBAAkB,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;IAE1D,IAAI,cAAc,IAAI,WAAW,IAAI,cAAc,KAAK,WAAW,EAAE,CAAC;QACpE,OAAO;YACL,MAAM,EAAE,sBAAsB;YAC9B,WAAW;YACX,YAAY;SACb,CAAC;IACJ,CAAC;IAED,OAAO;QACL,MAAM,EAAE,UAAU;QAClB,WAAW;QACX,YAAY;KACb,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,aAAa,GAAG,IAAI,oBAAoB,EAAE;IAE1C,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,8BAA8B,CAAC,aAAa,CAAC,CAAC;IAC5F,IAAI,MAAM,KAAK,eAAe,IAAI,MAAM,KAAK,sBAAsB,EAAE,CAAC;QACpE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,cAAc,GAAG,kBAAkB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC5D,IAAI,CAAC,cAAc,IAAI,CAAC,YAAY,EAAE,CAAC;QACrC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,kBAAkB,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,cAAc;QAC5D,CAAC,CAAC,YAAY;QACd,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iCAAiC,CACrD,aAAa,GAAG,IAAI,oBAAoB,EAAE;IAE1C,MAAM,YAAY,GAAG,4BAA4B,CAAC,aAAa,CAAC,CAAC;IACjE,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC;IAED,IAAI,YAAY,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,MAAM,yBAAyB,EAAE,CAAC;QACjD,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACrD,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QACjD,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACjE,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,yBAAyB,EAAE,CAAC;IACjD,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACrD,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACjD,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACjE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2CAA2C,CAC/D,aAAa,GAAG,IAAI,oBAAoB,EAAE;IAE1C,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,8BAA8B,CAAC,aAAa,CAAC,CAAC;IAC9E,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;QAC1B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QACtB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,CAAC,EAAE;YAClE,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;QACH,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;YAChB,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,4CAA4C;IAC9C,CAAC;IAED,OAAO,wDAAwD,WAAW,CAAC,IAAI,mEAAmE,CAAC;AACrJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,aAAa,GAAG,IAAI,oBAAoB,EAAE;IAE1C,MAAM,EAAE,MAAM,EAAE,GAAG,8BAA8B,CAAC,aAAa,CAAC,CAAC;IAEjE,IAAI,MAAM,KAAK,eAAe,IAAI,MAAM,KAAK,sBAAsB,EAAE,CAAC;QACpE,MAAM,OAAO,GAAG,MAAM,iCAAiC,CAAC,aAAa,CAAC,CAAC;QACvE,OAAO;YACL,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;QAC1B,OAAO;YACL,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,MAAM,2CAA2C,CAAC,aAAa,CAAC;SAC1E,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,KAAK;KACf,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface ManagedN8nOwnerCredentials {
|
|
2
|
+
url: string;
|
|
3
|
+
email: string;
|
|
4
|
+
password: string;
|
|
5
|
+
firstName: string;
|
|
6
|
+
lastName: string;
|
|
7
|
+
createdAt: string;
|
|
8
|
+
}
|
|
9
|
+
export declare class ManagedN8nOwnerCredentialService {
|
|
10
|
+
private readonly store;
|
|
11
|
+
constructor();
|
|
12
|
+
get(url: string): ManagedN8nOwnerCredentials | undefined;
|
|
13
|
+
save(credentials: ManagedN8nOwnerCredentials): ManagedN8nOwnerCredentials;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=owner-credentials.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"owner-credentials.d.ts","sourceRoot":"","sources":["../../src/n8n-local/owner-credentials.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,0BAA0B;IACzC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAMD,qBAAa,gCAAgC;IAC3C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAuC;;IAW7D,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,0BAA0B,GAAG,SAAS;IAcxD,IAAI,CAAC,WAAW,EAAE,0BAA0B,GAAG,0BAA0B;CAgB1E"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import Conf from 'conf';
|
|
2
|
+
import { ensureYagrHomeDir, getYagrPaths } from '../config/yagr-home.js';
|
|
3
|
+
export class ManagedN8nOwnerCredentialService {
|
|
4
|
+
store;
|
|
5
|
+
constructor() {
|
|
6
|
+
const paths = getYagrPaths();
|
|
7
|
+
ensureYagrHomeDir();
|
|
8
|
+
this.store = new Conf({
|
|
9
|
+
cwd: paths.homeDir,
|
|
10
|
+
configName: 'n8n-local-owner-credentials',
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
get(url) {
|
|
14
|
+
const instances = this.store.get('instances') ?? {};
|
|
15
|
+
const normalizedUrl = normalizeUrl(url);
|
|
16
|
+
const entry = instances[normalizedUrl];
|
|
17
|
+
if (!entry) {
|
|
18
|
+
return undefined;
|
|
19
|
+
}
|
|
20
|
+
return {
|
|
21
|
+
url: normalizedUrl,
|
|
22
|
+
...entry,
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
save(credentials) {
|
|
26
|
+
const normalizedUrl = normalizeUrl(credentials.url);
|
|
27
|
+
const instances = this.store.get('instances') ?? {};
|
|
28
|
+
instances[normalizedUrl] = {
|
|
29
|
+
email: credentials.email,
|
|
30
|
+
password: credentials.password,
|
|
31
|
+
firstName: credentials.firstName,
|
|
32
|
+
lastName: credentials.lastName,
|
|
33
|
+
createdAt: credentials.createdAt,
|
|
34
|
+
};
|
|
35
|
+
this.store.set('instances', instances);
|
|
36
|
+
return {
|
|
37
|
+
...credentials,
|
|
38
|
+
url: normalizedUrl,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
function normalizeUrl(url) {
|
|
43
|
+
try {
|
|
44
|
+
return new URL(url).origin;
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
return url.replace(/\/$/, '');
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=owner-credentials.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"owner-credentials.js","sourceRoot":"","sources":["../../src/n8n-local/owner-credentials.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAezE,MAAM,OAAO,gCAAgC;IAC1B,KAAK,CAAuC;IAE7D;QACE,MAAM,KAAK,GAAG,YAAY,EAAE,CAAC;QAC7B,iBAAiB,EAAE,CAAC;QACpB,IAAI,CAAC,KAAK,GAAG,IAAI,IAAI,CAAiC;YACpD,GAAG,EAAE,KAAK,CAAC,OAAO;YAClB,UAAU,EAAE,6BAA6B;SAC1C,CAAC,CAAC;IACL,CAAC;IAED,GAAG,CAAC,GAAW;QACb,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QACpD,MAAM,aAAa,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QACxC,MAAM,KAAK,GAAG,SAAS,CAAC,aAAa,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO;YACL,GAAG,EAAE,aAAa;YAClB,GAAG,KAAK;SACT,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,WAAuC;QAC1C,MAAM,aAAa,GAAG,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACpD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QACpD,SAAS,CAAC,aAAa,CAAC,GAAG;YACzB,KAAK,EAAE,WAAW,CAAC,KAAK;YACxB,QAAQ,EAAE,WAAW,CAAC,QAAQ;YAC9B,SAAS,EAAE,WAAW,CAAC,SAAS;YAChC,QAAQ,EAAE,WAAW,CAAC,QAAQ;YAC9B,SAAS,EAAE,WAAW,CAAC,SAAS;SACjC,CAAC;QACF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QACvC,OAAO;YACL,GAAG,WAAW;YACd,GAAG,EAAE,aAAa;SACnB,CAAC;IACJ,CAAC;CACF;AAED,SAAS,YAAY,CAAC,GAAW;IAC/B,IAAI,CAAC;QACH,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAChC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { LocalN8nBootstrapAssessment, LocalN8nBootstrapStrategy } from './detect.js';
|
|
2
|
+
export type N8nBootstrapTarget = 'local-managed' | 'existing-instance';
|
|
3
|
+
export type N8nBootstrapAutomationLevel = 'silent' | 'assisted' | 'guided';
|
|
4
|
+
export interface N8nBootstrapPlan {
|
|
5
|
+
target: N8nBootstrapTarget;
|
|
6
|
+
runtimeStrategy?: LocalN8nBootstrapStrategy;
|
|
7
|
+
automationLevel: N8nBootstrapAutomationLevel;
|
|
8
|
+
canProceed: boolean;
|
|
9
|
+
preferredUrl?: string;
|
|
10
|
+
reasons: string[];
|
|
11
|
+
}
|
|
12
|
+
export declare function createN8nBootstrapPlan(input: {
|
|
13
|
+
target: N8nBootstrapTarget;
|
|
14
|
+
assessment?: LocalN8nBootstrapAssessment;
|
|
15
|
+
}): N8nBootstrapPlan;
|
|
16
|
+
//# sourceMappingURL=plan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../src/n8n-local/plan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAE1F,MAAM,MAAM,kBAAkB,GAAG,eAAe,GAAG,mBAAmB,CAAC;AACvE,MAAM,MAAM,2BAA2B,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;AAE3E,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,kBAAkB,CAAC;IAC3B,eAAe,CAAC,EAAE,yBAAyB,CAAC;IAC5C,eAAe,EAAE,2BAA2B,CAAC;IAC7C,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAC5C,MAAM,EAAE,kBAAkB,CAAC;IAC3B,UAAU,CAAC,EAAE,2BAA2B,CAAC;CAC1C,GAAG,gBAAgB,CAkDnB"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
export function createN8nBootstrapPlan(input) {
|
|
2
|
+
if (input.target === 'existing-instance') {
|
|
3
|
+
return {
|
|
4
|
+
target: input.target,
|
|
5
|
+
automationLevel: 'guided',
|
|
6
|
+
canProceed: true,
|
|
7
|
+
reasons: [
|
|
8
|
+
'Existing n8n instances stay available as a guided integration path.',
|
|
9
|
+
],
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
if (!input.assessment) {
|
|
13
|
+
return {
|
|
14
|
+
target: input.target,
|
|
15
|
+
automationLevel: 'assisted',
|
|
16
|
+
canProceed: false,
|
|
17
|
+
reasons: [
|
|
18
|
+
'Local bootstrap requires a machine assessment before Yagr can choose a runtime strategy.',
|
|
19
|
+
],
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
const { assessment } = input;
|
|
23
|
+
if (assessment.recommendedStrategy === 'docker' || assessment.recommendedStrategy === 'direct') {
|
|
24
|
+
return {
|
|
25
|
+
target: input.target,
|
|
26
|
+
runtimeStrategy: assessment.recommendedStrategy,
|
|
27
|
+
automationLevel: 'silent',
|
|
28
|
+
canProceed: true,
|
|
29
|
+
preferredUrl: assessment.preferredUrl,
|
|
30
|
+
reasons: [
|
|
31
|
+
`A ${assessment.recommendedStrategy} runtime is available for a Yagr-managed local n8n instance.`,
|
|
32
|
+
'Silent local bootstrap is the primary target for Yagr-managed instances.',
|
|
33
|
+
],
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
return {
|
|
37
|
+
target: input.target,
|
|
38
|
+
runtimeStrategy: assessment.recommendedStrategy,
|
|
39
|
+
automationLevel: 'assisted',
|
|
40
|
+
canProceed: false,
|
|
41
|
+
preferredUrl: assessment.preferredUrl,
|
|
42
|
+
reasons: [
|
|
43
|
+
...assessment.blockers,
|
|
44
|
+
'Yagr should fall back to an assisted local bootstrap path until the missing prerequisite is installed.',
|
|
45
|
+
],
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=plan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/n8n-local/plan.ts"],"names":[],"mappings":"AAcA,MAAM,UAAU,sBAAsB,CAAC,KAGtC;IACC,IAAI,KAAK,CAAC,MAAM,KAAK,mBAAmB,EAAE,CAAC;QACzC,OAAO;YACL,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,eAAe,EAAE,QAAQ;YACzB,UAAU,EAAE,IAAI;YAChB,OAAO,EAAE;gBACP,qEAAqE;aACtE;SACF,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QACtB,OAAO;YACL,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,eAAe,EAAE,UAAU;YAC3B,UAAU,EAAE,KAAK;YACjB,OAAO,EAAE;gBACP,0FAA0F;aAC3F;SACF,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAE7B,IAAI,UAAU,CAAC,mBAAmB,KAAK,QAAQ,IAAI,UAAU,CAAC,mBAAmB,KAAK,QAAQ,EAAE,CAAC;QAC/F,OAAO;YACL,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,eAAe,EAAE,UAAU,CAAC,mBAAmB;YAC/C,eAAe,EAAE,QAAQ;YACzB,UAAU,EAAE,IAAI;YAChB,YAAY,EAAE,UAAU,CAAC,YAAY;YACrC,OAAO,EAAE;gBACP,KAAK,UAAU,CAAC,mBAAmB,8DAA8D;gBACjG,0EAA0E;aAC3E;SACF,CAAC;IACJ,CAAC;IAED,OAAO;QACL,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,eAAe,EAAE,UAAU,CAAC,mBAAmB;QAC/C,eAAe,EAAE,UAAU;QAC3B,UAAU,EAAE,KAAK;QACjB,YAAY,EAAE,UAAU,CAAC,YAAY;QACrC,OAAO,EAAE;YACP,GAAG,UAAU,CAAC,QAAQ;YACtB,wGAAwG;SACzG;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
export interface ManagedN8nInstanceState {
|
|
2
|
+
strategy: 'docker' | 'direct';
|
|
3
|
+
image?: string;
|
|
4
|
+
port: number;
|
|
5
|
+
url: string;
|
|
6
|
+
composeFile?: string;
|
|
7
|
+
envFile?: string;
|
|
8
|
+
dataDir: string;
|
|
9
|
+
logFile?: string;
|
|
10
|
+
pid?: number;
|
|
11
|
+
status: 'created' | 'starting' | 'ready' | 'stopped' | 'error';
|
|
12
|
+
bootstrapStage: 'runtime-only' | 'owner-pending' | 'api-key-pending' | 'connected';
|
|
13
|
+
createdAt: string;
|
|
14
|
+
updatedAt: string;
|
|
15
|
+
lastError?: string;
|
|
16
|
+
}
|
|
17
|
+
export interface ManagedN8nPaths {
|
|
18
|
+
rootDir: string;
|
|
19
|
+
stateFile: string;
|
|
20
|
+
composeFile: string;
|
|
21
|
+
envFile: string;
|
|
22
|
+
dataDir: string;
|
|
23
|
+
logFile: string;
|
|
24
|
+
}
|
|
25
|
+
export declare function getManagedN8nPaths(): ManagedN8nPaths;
|
|
26
|
+
export declare function ensureManagedN8nDirs(): ManagedN8nPaths;
|
|
27
|
+
export declare function readManagedN8nState(): ManagedN8nInstanceState | undefined;
|
|
28
|
+
export declare function writeManagedN8nState(state: ManagedN8nInstanceState): ManagedN8nInstanceState;
|
|
29
|
+
export declare function buildManagedN8nState(input: {
|
|
30
|
+
strategy?: ManagedN8nInstanceState['strategy'];
|
|
31
|
+
image: string;
|
|
32
|
+
port: number;
|
|
33
|
+
status?: ManagedN8nInstanceState['status'];
|
|
34
|
+
bootstrapStage?: ManagedN8nInstanceState['bootstrapStage'];
|
|
35
|
+
lastError?: string;
|
|
36
|
+
pid?: number;
|
|
37
|
+
logFile?: string;
|
|
38
|
+
}): ManagedN8nInstanceState;
|
|
39
|
+
export declare function updateManagedN8nState(updater: (current: ManagedN8nInstanceState | undefined) => ManagedN8nInstanceState): ManagedN8nInstanceState;
|
|
40
|
+
export declare function markManagedN8nBootstrapStage(url: string, bootstrapStage: ManagedN8nInstanceState['bootstrapStage']): ManagedN8nInstanceState | undefined;
|
|
41
|
+
export declare function resolveManagedN8nBootstrapStage(url: string): ManagedN8nInstanceState['bootstrapStage'];
|
|
42
|
+
//# sourceMappingURL=state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/n8n-local/state.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;IAC/D,cAAc,EAAE,cAAc,GAAG,eAAe,GAAG,iBAAiB,GAAG,WAAW,CAAC;IACnF,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,kBAAkB,IAAI,eAAe,CAUpD;AAED,wBAAgB,oBAAoB,IAAI,eAAe,CAMtD;AAED,wBAAgB,mBAAmB,IAAI,uBAAuB,GAAG,SAAS,CAWzE;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,uBAAuB,GAAG,uBAAuB,CAI5F;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE;IAC1C,QAAQ,CAAC,EAAE,uBAAuB,CAAC,UAAU,CAAC,CAAC;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IAC3C,cAAc,CAAC,EAAE,uBAAuB,CAAC,gBAAgB,CAAC,CAAC;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,uBAAuB,CAoB1B;AAED,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,CAAC,OAAO,EAAE,uBAAuB,GAAG,SAAS,KAAK,uBAAuB,GACjF,uBAAuB,CAQzB;AAED,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,MAAM,EACX,cAAc,EAAE,uBAAuB,CAAC,gBAAgB,CAAC,GACxD,uBAAuB,GAAG,SAAS,CAYrC;AAED,wBAAgB,+BAA+B,CAAC,GAAG,EAAE,MAAM,GAAG,uBAAuB,CAAC,gBAAgB,CAAC,CAmBtG"}
|