@edgible-team/cli 1.2.9 → 1.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/commands/ai/helpers.d.ts.map +1 -1
- package/dist/commands/ai/helpers.js +2 -1
- package/dist/commands/debug.d.ts.map +1 -1
- package/dist/commands/debug.js +178 -47
- package/dist/generated/compose-constants.d.ts +1 -1
- package/dist/generated/compose-constants.d.ts.map +1 -1
- package/dist/generated/compose-constants.js +1 -1
- package/dist/types/AgentConfig.d.ts +0 -13
- package/dist/types/AgentConfig.d.ts.map +1 -1
- package/dist/types/validation/schemas.d.ts +5 -0
- package/dist/types/validation/schemas.d.ts.map +1 -1
- package/dist/types/validation/schemas.js +4 -0
- package/package.json +1 -1
- package/recipes/compose/open-webui/docker-compose.yml +1 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/commands/ai/helpers.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/commands/ai/helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1395,7 +1395,8 @@ async function createOpenWebUIApplication(config) {
|
|
|
1395
1395
|
configuration: {
|
|
1396
1396
|
'dockerComposePath': dockerComposePathValue, // base64:... constant
|
|
1397
1397
|
'env': envVars,
|
|
1398
|
-
'isWorking': true
|
|
1398
|
+
'isWorking': true,
|
|
1399
|
+
'deleteVolumesOnDeletion': true // Delete volumes when application is deleted
|
|
1399
1400
|
},
|
|
1400
1401
|
requireOrgAuth: true // Enable authentication - X-Auth-Email header already passed by auth system
|
|
1401
1402
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../../src/commands/debug.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgBpC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../../src/commands/debug.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgBpC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA6lBzD"}
|
package/dist/commands/debug.js
CHANGED
|
@@ -67,76 +67,130 @@ function setupDebugCommands(program) {
|
|
|
67
67
|
console.log(chalk_1.default.blue.bold(' Full Debug Cycle'));
|
|
68
68
|
console.log(chalk_1.default.blue.bold('═══════════════════════════════════════════\n'));
|
|
69
69
|
console.log(chalk_1.default.gray('This will perform a complete agent lifecycle test:\n'));
|
|
70
|
-
console.log(chalk_1.default.gray(' 1.
|
|
71
|
-
console.log(chalk_1.default.gray(' 2.
|
|
70
|
+
console.log(chalk_1.default.gray(' 1. Teardown AI services'));
|
|
71
|
+
console.log(chalk_1.default.gray(' 2. Uninstall agent and delete all data'));
|
|
72
72
|
console.log(chalk_1.default.gray(' 3. Install agent'));
|
|
73
|
-
console.log(chalk_1.default.gray(' 4. Wait 2 minutes
|
|
73
|
+
console.log(chalk_1.default.gray(' 4. Wait 2 minutes for startup'));
|
|
74
74
|
console.log(chalk_1.default.gray(' 5. Setup AI with qwen:0.5b model'));
|
|
75
|
-
console.log(chalk_1.default.gray(' 6. Wait 1 minute
|
|
75
|
+
console.log(chalk_1.default.gray(' 6. Wait 1 minute for AI runtime'));
|
|
76
76
|
console.log(chalk_1.default.gray(' 7. Teardown AI services'));
|
|
77
|
-
console.log(chalk_1.default.gray(' 8. Uninstall agent
|
|
77
|
+
console.log(chalk_1.default.gray(' 8. Uninstall agent'));
|
|
78
|
+
console.log(chalk_1.default.gray(' 9. Collect all logs and diagnostics\n'));
|
|
78
79
|
const documentsFolder = getDocumentsFolder();
|
|
79
|
-
|
|
80
|
+
const finalLogPath = path.join(documentsFolder, 'debug_full_cycle.log');
|
|
81
|
+
console.log(chalk_1.default.cyan(`Final debug log will be saved to: ${finalLogPath}\n`));
|
|
82
|
+
// Array to collect all debug information
|
|
83
|
+
const debugSections = [];
|
|
80
84
|
try {
|
|
81
|
-
// Step 1:
|
|
82
|
-
console.log(chalk_1.default.blue.bold('\n[Step 1/
|
|
85
|
+
// Step 1: Teardown AI services
|
|
86
|
+
console.log(chalk_1.default.blue.bold('\n[Step 1/9] Tearing Down AI Services\n'));
|
|
83
87
|
try {
|
|
84
|
-
await (0,
|
|
88
|
+
await (0, teardown_1.handleAiTeardown)({ stopOllama: true, removeVolumes: true });
|
|
89
|
+
debugSections.push({
|
|
90
|
+
title: 'Initial AI Teardown',
|
|
91
|
+
content: 'AI services successfully torn down before starting debug cycle'
|
|
92
|
+
});
|
|
85
93
|
}
|
|
86
94
|
catch (error) {
|
|
87
|
-
|
|
95
|
+
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
96
|
+
debugSections.push({
|
|
97
|
+
title: 'Initial AI Teardown',
|
|
98
|
+
content: `AI services may not have been running: ${errorMsg}`
|
|
99
|
+
});
|
|
100
|
+
console.log(chalk_1.default.yellow('⚠ AI services may not have been running, continuing...\n'));
|
|
88
101
|
}
|
|
89
|
-
// Step 2:
|
|
90
|
-
console.log(chalk_1.default.blue.bold('\n[Step 2/
|
|
102
|
+
// Step 2: Uninstall agent and delete all data
|
|
103
|
+
console.log(chalk_1.default.blue.bold('\n[Step 2/9] Uninstalling Agent\n'));
|
|
91
104
|
try {
|
|
92
|
-
await (0,
|
|
105
|
+
await (0, uninstall_1.handleAgentUninstall)({ removeFiles: true, force: true }, instances_1.logger, instances_1.configManager);
|
|
106
|
+
debugSections.push({
|
|
107
|
+
title: 'Initial Agent Uninstall',
|
|
108
|
+
content: 'Agent successfully uninstalled before starting debug cycle'
|
|
109
|
+
});
|
|
93
110
|
}
|
|
94
111
|
catch (error) {
|
|
95
|
-
|
|
112
|
+
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
113
|
+
debugSections.push({
|
|
114
|
+
title: 'Initial Agent Uninstall',
|
|
115
|
+
content: `Agent may not have been installed: ${errorMsg}`
|
|
116
|
+
});
|
|
117
|
+
console.log(chalk_1.default.yellow('⚠ Agent may not have been installed, continuing...\n'));
|
|
96
118
|
}
|
|
97
119
|
// Step 3: Install agent
|
|
98
|
-
console.log(chalk_1.default.blue.bold('\n[Step 3/
|
|
120
|
+
console.log(chalk_1.default.blue.bold('\n[Step 3/9] Installing Agent\n'));
|
|
99
121
|
const platform = PlatformDetector_1.PlatformDetector.getPlatform();
|
|
100
122
|
const installationType = platform === 'darwin' ? 'launchd' : 'systemd';
|
|
101
123
|
await (0, install_1.handleAgentInstall)({ type: installationType, dev: false, local: false }, instances_1.logger, instances_1.configManager, instances_1.edgibleService, instances_1.authService, instances_1.localAgentManager);
|
|
102
|
-
|
|
103
|
-
|
|
124
|
+
debugSections.push({
|
|
125
|
+
title: 'Agent Installation',
|
|
126
|
+
content: `Agent installed successfully (${installationType} on ${platform})`
|
|
127
|
+
});
|
|
128
|
+
// Step 4: Wait 2 minutes for startup
|
|
129
|
+
console.log(chalk_1.default.blue.bold('\n[Step 4/9] Waiting 2 Minutes for Agent Startup\n'));
|
|
104
130
|
await waitWithProgress(120, 'Capturing startup behavior');
|
|
105
|
-
const
|
|
106
|
-
|
|
107
|
-
console.log(chalk_1.default.green(`✓ Startup logs saved to: ${startupLogPath}\n`));
|
|
131
|
+
const startupLogs = await captureAgentLogs('Startup Phase');
|
|
132
|
+
debugSections.push(startupLogs);
|
|
108
133
|
// Step 5: Setup AI with qwen:0.5b
|
|
109
|
-
console.log(chalk_1.default.blue.bold('\n[Step 5/
|
|
134
|
+
console.log(chalk_1.default.blue.bold('\n[Step 5/9] Setting Up AI with qwen:0.5b\n'));
|
|
110
135
|
await (0, setup_1.handleAiSetup)({
|
|
111
136
|
model: 'qwen:0.5b',
|
|
112
137
|
autoInstall: true,
|
|
113
138
|
noInteractive: true
|
|
114
139
|
});
|
|
115
|
-
|
|
116
|
-
|
|
140
|
+
debugSections.push({
|
|
141
|
+
title: 'AI Setup',
|
|
142
|
+
content: 'AI services set up with qwen:0.5b model'
|
|
143
|
+
});
|
|
144
|
+
// Step 6: Wait 1 minute for AI runtime
|
|
145
|
+
console.log(chalk_1.default.blue.bold('\n[Step 6/9] Waiting 1 Minute for AI Runtime\n'));
|
|
117
146
|
await waitWithProgress(60, 'Capturing runtime behavior');
|
|
118
|
-
const
|
|
119
|
-
|
|
120
|
-
|
|
147
|
+
const runtimeLogs = await captureAgentLogs('Runtime Phase');
|
|
148
|
+
debugSections.push(runtimeLogs);
|
|
149
|
+
// Step 6.5: Capture Docker exec curl output
|
|
150
|
+
console.log(chalk_1.default.blue.bold('\n[Step 6.5/9] Testing Ollama Connectivity\n'));
|
|
151
|
+
const ollamaTestResult = await testOllamaConnectivity();
|
|
152
|
+
debugSections.push(ollamaTestResult);
|
|
121
153
|
// Step 7: Teardown AI services
|
|
122
|
-
console.log(chalk_1.default.blue.bold('\n[Step 7/
|
|
154
|
+
console.log(chalk_1.default.blue.bold('\n[Step 7/9] Tearing Down AI Services\n'));
|
|
123
155
|
await (0, teardown_1.handleAiTeardown)({ stopOllama: true, removeVolumes: true });
|
|
156
|
+
debugSections.push({
|
|
157
|
+
title: 'Final AI Teardown',
|
|
158
|
+
content: 'AI services torn down successfully'
|
|
159
|
+
});
|
|
124
160
|
// Step 8: Uninstall agent
|
|
125
|
-
console.log(chalk_1.default.blue.bold('\n[Step 8/
|
|
161
|
+
console.log(chalk_1.default.blue.bold('\n[Step 8/9] Uninstalling Agent\n'));
|
|
126
162
|
await (0, uninstall_1.handleAgentUninstall)({ removeFiles: true, force: true }, instances_1.logger, instances_1.configManager);
|
|
163
|
+
debugSections.push({
|
|
164
|
+
title: 'Final Agent Uninstall',
|
|
165
|
+
content: 'Agent uninstalled successfully'
|
|
166
|
+
});
|
|
167
|
+
// Step 9: Write final log file
|
|
168
|
+
console.log(chalk_1.default.blue.bold('\n[Step 9/9] Generating Final Debug Log\n'));
|
|
169
|
+
await writeFinalDebugLog(finalLogPath, debugSections);
|
|
170
|
+
console.log(chalk_1.default.green(`✓ Debug log saved to: ${finalLogPath}\n`));
|
|
127
171
|
// Final summary
|
|
128
172
|
console.log(chalk_1.default.blue.bold('\n═══════════════════════════════════════════'));
|
|
129
173
|
console.log(chalk_1.default.green.bold(' ✓ Full Debug Cycle Complete!'));
|
|
130
174
|
console.log(chalk_1.default.blue.bold('═══════════════════════════════════════════\n'));
|
|
131
|
-
console.log(chalk_1.default.cyan('Debug
|
|
132
|
-
console.log(chalk_1.default.gray(` • ${
|
|
133
|
-
console.log(chalk_1.default.
|
|
134
|
-
console.log(chalk_1.default.yellow('Please send these log files to support for analysis.\n'));
|
|
175
|
+
console.log(chalk_1.default.cyan('Debug log saved:'));
|
|
176
|
+
console.log(chalk_1.default.gray(` • ${finalLogPath}\n`));
|
|
177
|
+
console.log(chalk_1.default.yellow('Please send this log file to support for analysis.\n'));
|
|
135
178
|
}
|
|
136
179
|
catch (error) {
|
|
137
180
|
instances_1.logger.error('Full debug cycle failed', error);
|
|
138
181
|
console.error(chalk_1.default.red('\n✗ Debug cycle failed:'), error instanceof Error ? error.message : String(error));
|
|
139
|
-
|
|
182
|
+
// Still try to write partial logs
|
|
183
|
+
try {
|
|
184
|
+
debugSections.push({
|
|
185
|
+
title: 'ERROR',
|
|
186
|
+
content: `Debug cycle failed: ${error instanceof Error ? error.message : String(error)}\n\nStack trace:\n${error instanceof Error ? error.stack : 'No stack trace available'}`
|
|
187
|
+
});
|
|
188
|
+
await writeFinalDebugLog(finalLogPath, debugSections);
|
|
189
|
+
console.log(chalk_1.default.yellow(`\nPartial debug log saved to: ${finalLogPath}\n`));
|
|
190
|
+
}
|
|
191
|
+
catch (writeError) {
|
|
192
|
+
console.error(chalk_1.default.red('Failed to write partial log:'), writeError instanceof Error ? writeError.message : String(writeError));
|
|
193
|
+
}
|
|
140
194
|
throw error;
|
|
141
195
|
}
|
|
142
196
|
}, {
|
|
@@ -526,33 +580,110 @@ function getDocumentsFolder() {
|
|
|
526
580
|
}
|
|
527
581
|
}
|
|
528
582
|
/**
|
|
529
|
-
*
|
|
583
|
+
* Capture agent logs and return as a debug section
|
|
530
584
|
*/
|
|
531
|
-
async function
|
|
585
|
+
async function captureAgentLogs(phase) {
|
|
532
586
|
const logFilePath = instances_1.localAgentManager.getLogFilePath();
|
|
533
587
|
if (!fs.existsSync(logFilePath)) {
|
|
534
588
|
console.log(chalk_1.default.yellow(`⚠ Log file not found at: ${logFilePath}`));
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
return;
|
|
589
|
+
return {
|
|
590
|
+
title: `Agent Logs - ${phase}`,
|
|
591
|
+
content: `Log file was not found at the time of capture\nLog path: ${logFilePath}\nTimestamp: ${new Date().toISOString()}`
|
|
592
|
+
};
|
|
540
593
|
}
|
|
594
|
+
try {
|
|
595
|
+
const logContent = fs.readFileSync(logFilePath, 'utf8');
|
|
596
|
+
return {
|
|
597
|
+
title: `Agent Logs - ${phase}`,
|
|
598
|
+
content: `Source: ${logFilePath}\nTimestamp: ${new Date().toISOString()}\n\n${logContent}`
|
|
599
|
+
};
|
|
600
|
+
}
|
|
601
|
+
catch (error) {
|
|
602
|
+
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
603
|
+
console.error(chalk_1.default.red(`✗ Failed to read logs: ${errorMsg}`));
|
|
604
|
+
return {
|
|
605
|
+
title: `Agent Logs - ${phase}`,
|
|
606
|
+
content: `Failed to read logs: ${errorMsg}`
|
|
607
|
+
};
|
|
608
|
+
}
|
|
609
|
+
}
|
|
610
|
+
/**
|
|
611
|
+
* Test Ollama connectivity from open-webui container
|
|
612
|
+
*/
|
|
613
|
+
async function testOllamaConnectivity() {
|
|
614
|
+
console.log(chalk_1.default.cyan('Testing Ollama connectivity from open-webui container...'));
|
|
615
|
+
try {
|
|
616
|
+
const output = (0, child_process_1.execSync)('docker exec open-webui curl http://host.docker.internal:11435', {
|
|
617
|
+
encoding: 'utf8',
|
|
618
|
+
timeout: 10000,
|
|
619
|
+
stdio: ['pipe', 'pipe', 'pipe']
|
|
620
|
+
});
|
|
621
|
+
console.log(chalk_1.default.green('✓ Ollama connectivity test completed\n'));
|
|
622
|
+
return {
|
|
623
|
+
title: 'Ollama Connectivity Test',
|
|
624
|
+
content: `Command: docker exec open-webui curl http://host.docker.internal:11435\nTimestamp: ${new Date().toISOString()}\n\nOutput:\n${output}`
|
|
625
|
+
};
|
|
626
|
+
}
|
|
627
|
+
catch (error) {
|
|
628
|
+
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
629
|
+
let errorOutput = errorMsg;
|
|
630
|
+
// Try to capture stderr if available
|
|
631
|
+
if (error && typeof error === 'object' && 'stderr' in error) {
|
|
632
|
+
const stderr = error.stderr;
|
|
633
|
+
errorOutput = `${errorMsg}\n\nStderr:\n${stderr.toString()}`;
|
|
634
|
+
}
|
|
635
|
+
console.log(chalk_1.default.yellow(`⚠ Ollama connectivity test failed: ${errorMsg}\n`));
|
|
636
|
+
return {
|
|
637
|
+
title: 'Ollama Connectivity Test',
|
|
638
|
+
content: `Command: docker exec open-webui curl http://host.docker.internal:11435\nTimestamp: ${new Date().toISOString()}\n\nError:\n${errorOutput}`
|
|
639
|
+
};
|
|
640
|
+
}
|
|
641
|
+
}
|
|
642
|
+
/**
|
|
643
|
+
* Write final debug log file with all collected sections
|
|
644
|
+
*/
|
|
645
|
+
async function writeFinalDebugLog(destinationPath, sections) {
|
|
541
646
|
try {
|
|
542
647
|
// Ensure destination directory exists
|
|
543
648
|
const destDir = path.dirname(destinationPath);
|
|
544
649
|
if (!fs.existsSync(destDir)) {
|
|
545
650
|
fs.mkdirSync(destDir, { recursive: true });
|
|
546
651
|
}
|
|
547
|
-
//
|
|
548
|
-
|
|
549
|
-
//
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
652
|
+
// Build the complete log file
|
|
653
|
+
const lines = [];
|
|
654
|
+
// Header
|
|
655
|
+
lines.push('═══════════════════════════════════════════════════════════════');
|
|
656
|
+
lines.push(' EDGIBLE DEBUG FULL CYCLE');
|
|
657
|
+
lines.push('═══════════════════════════════════════════════════════════════');
|
|
658
|
+
lines.push('');
|
|
659
|
+
lines.push(`Generated: ${new Date().toISOString()}`);
|
|
660
|
+
lines.push(`Platform: ${os.platform()} ${os.release()}`);
|
|
661
|
+
lines.push(`Architecture: ${os.arch()}`);
|
|
662
|
+
lines.push(`Node Version: ${process.version}`);
|
|
663
|
+
lines.push(`Hostname: ${os.hostname()}`);
|
|
664
|
+
lines.push('');
|
|
665
|
+
lines.push('═══════════════════════════════════════════════════════════════');
|
|
666
|
+
lines.push('');
|
|
667
|
+
// Add each section
|
|
668
|
+
for (const section of sections) {
|
|
669
|
+
lines.push('');
|
|
670
|
+
lines.push('───────────────────────────────────────────────────────────────');
|
|
671
|
+
lines.push(` ${section.title.toUpperCase()}`);
|
|
672
|
+
lines.push('───────────────────────────────────────────────────────────────');
|
|
673
|
+
lines.push('');
|
|
674
|
+
lines.push(section.content);
|
|
675
|
+
lines.push('');
|
|
676
|
+
}
|
|
677
|
+
// Footer
|
|
678
|
+
lines.push('═══════════════════════════════════════════════════════════════');
|
|
679
|
+
lines.push(' END OF LOG');
|
|
680
|
+
lines.push('═══════════════════════════════════════════════════════════════');
|
|
681
|
+
// Write to file
|
|
682
|
+
fs.writeFileSync(destinationPath, lines.join('\n'), 'utf8');
|
|
553
683
|
}
|
|
554
684
|
catch (error) {
|
|
555
|
-
|
|
685
|
+
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
686
|
+
console.error(chalk_1.default.red(`✗ Failed to write final log: ${errorMsg}`));
|
|
556
687
|
throw error;
|
|
557
688
|
}
|
|
558
689
|
}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* When used in application configuration with 'base64:' prefix,
|
|
6
6
|
* the agent will decode and write to working directory.
|
|
7
7
|
*/
|
|
8
|
-
export declare const OPEN_WEBUI_COMPOSE_BASE64 = "
|
|
8
|
+
export declare const OPEN_WEBUI_COMPOSE_BASE64 = "c2VydmljZXM6CiAgb3Blbi13ZWJ1aToKICAgIGltYWdlOiBnaGNyLmlvL29wZW4td2VidWkvb3Blbi13ZWJ1aToke1dFQlVJX0RPQ0tFUl9UQUctbWFpbn0KICAgIGNvbnRhaW5lcl9uYW1lOiBvcGVuLXdlYnVpCiAgICB2b2x1bWVzOgogICAgICAtIG9wZW4td2VidWk6L2FwcC9iYWNrZW5kL2RhdGEKICAgIHBvcnRzOgogICAgICAtICR7T1BFTl9XRUJVSV9QT1JULTMyMDB9OjgwODAKICAgIGVudmlyb25tZW50OgogICAgICAtICdFTkFCTEVfT0FVVEhfU0lHTlVQPXRydWUnCiAgICAgIC0gJ0VOQUJMRV9TSUdOVVA9dHJ1ZScKICAgICAgIyAtICdXRUJVSV9VUkw9b3Blbi13ZWJ1aS45ZmI4MzllOS1jZTJjLTRhYmQtOTRkNS0wNTFlNjk2Y2YxYjcuZWRnaWJsZS5jb20nCiAgICAgIC0gJ09MTEFNQV9CQVNFX1VSTD0ke09MTEFNQV9CQVNFX1VSTDotaHR0cDovL2hvc3QuZG9ja2VyLmludGVybmFsOjExNDM0fScKICAgICAgLSAnT0xMQU1BX0FQSV9LRVk9JHtPTExBTUFfQVBJX0tFWTotfScKICAgICAgIyAtICdXRUJVSV9TRUNSRVRfS0VZPTEyMycKICAgICAgLSAnV0VCVUlfQVVUSF9UUlVTVEVEX0VNQUlMX0hFQURFUj1YLUF1dGgtRW1haWwnCiAgICAgIC0gJ1dFQlVJX0FVVEhfVFJVU1RFRF9OQU1FX0hFQURFUj1YLUF1dGgtVXNlcicKICAgICAgIyAtICdXRUJVSV9BVVRIPWZhbHNlJwogICAgICAjIC0gJ1dFQlVJX1NFU1NJT05fQ09PS0lFX1NBTUVfU0lURT1sYXgnCiAgICAgICMgLSAnV0VCVUlfQVVUSF9DT09LSUVfU0FNRV9TSVRFPWxheCcKICAgICAgIyAtICdXRUJVSV9TRVNTSU9OX0NPT0tJRV9TRUNVUkU9ZmFsc2UnICAjIFNldCB0byBmYWxzZSBpZiB1c2luZyBIVFRQCiAgICAgICMgLSAnV0VCVUlfQVVUSF9DT09LSUVfU0VDVVJFPWZhbHNlJyAgICAgIyBTZXQgdG8gZmFsc2UgaWYgdXNpbmcgSFRUUAogICAgZXh0cmFfaG9zdHM6CiAgICAgIC0gaG9zdC5kb2NrZXIuaW50ZXJuYWw6aG9zdC1nYXRld2F5CgogICAgcmVzdGFydDogdW5sZXNzLXN0b3BwZWQKCnZvbHVtZXM6CiAgb3Blbi13ZWJ1aToge30KCiMgRGVmaW5lIHRoZSBETlMgbmV0d29yayBhcyBleHRlcm5hbCAoY3JlYXRlZCBieSBhZ2VudCkKbmV0d29ya3M6CiAgZWRnaWJsZS1kbnMtbmV0d29yazoKICAgIGV4dGVybmFsOiB0cnVlCg==";
|
|
9
9
|
/**
|
|
10
10
|
* Get the dockerComposePath value for Open WebUI application
|
|
11
11
|
* @returns Base64-prefixed compose content ready for API submission
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compose-constants.d.ts","sourceRoot":"","sources":["../../src/generated/compose-constants.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,
|
|
1
|
+
{"version":3,"file":"compose-constants.d.ts","sourceRoot":"","sources":["../../src/generated/compose-constants.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,6/CAA6/C,CAAC;AAEpiD;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CAEjD"}
|
|
@@ -11,7 +11,7 @@ exports.getOpenWebUIComposeValue = getOpenWebUIComposeValue;
|
|
|
11
11
|
* When used in application configuration with 'base64:' prefix,
|
|
12
12
|
* the agent will decode and write to working directory.
|
|
13
13
|
*/
|
|
14
|
-
exports.OPEN_WEBUI_COMPOSE_BASE64 = '
|
|
14
|
+
exports.OPEN_WEBUI_COMPOSE_BASE64 = 'c2VydmljZXM6CiAgb3Blbi13ZWJ1aToKICAgIGltYWdlOiBnaGNyLmlvL29wZW4td2VidWkvb3Blbi13ZWJ1aToke1dFQlVJX0RPQ0tFUl9UQUctbWFpbn0KICAgIGNvbnRhaW5lcl9uYW1lOiBvcGVuLXdlYnVpCiAgICB2b2x1bWVzOgogICAgICAtIG9wZW4td2VidWk6L2FwcC9iYWNrZW5kL2RhdGEKICAgIHBvcnRzOgogICAgICAtICR7T1BFTl9XRUJVSV9QT1JULTMyMDB9OjgwODAKICAgIGVudmlyb25tZW50OgogICAgICAtICdFTkFCTEVfT0FVVEhfU0lHTlVQPXRydWUnCiAgICAgIC0gJ0VOQUJMRV9TSUdOVVA9dHJ1ZScKICAgICAgIyAtICdXRUJVSV9VUkw9b3Blbi13ZWJ1aS45ZmI4MzllOS1jZTJjLTRhYmQtOTRkNS0wNTFlNjk2Y2YxYjcuZWRnaWJsZS5jb20nCiAgICAgIC0gJ09MTEFNQV9CQVNFX1VSTD0ke09MTEFNQV9CQVNFX1VSTDotaHR0cDovL2hvc3QuZG9ja2VyLmludGVybmFsOjExNDM0fScKICAgICAgLSAnT0xMQU1BX0FQSV9LRVk9JHtPTExBTUFfQVBJX0tFWTotfScKICAgICAgIyAtICdXRUJVSV9TRUNSRVRfS0VZPTEyMycKICAgICAgLSAnV0VCVUlfQVVUSF9UUlVTVEVEX0VNQUlMX0hFQURFUj1YLUF1dGgtRW1haWwnCiAgICAgIC0gJ1dFQlVJX0FVVEhfVFJVU1RFRF9OQU1FX0hFQURFUj1YLUF1dGgtVXNlcicKICAgICAgIyAtICdXRUJVSV9BVVRIPWZhbHNlJwogICAgICAjIC0gJ1dFQlVJX1NFU1NJT05fQ09PS0lFX1NBTUVfU0lURT1sYXgnCiAgICAgICMgLSAnV0VCVUlfQVVUSF9DT09LSUVfU0FNRV9TSVRFPWxheCcKICAgICAgIyAtICdXRUJVSV9TRVNTSU9OX0NPT0tJRV9TRUNVUkU9ZmFsc2UnICAjIFNldCB0byBmYWxzZSBpZiB1c2luZyBIVFRQCiAgICAgICMgLSAnV0VCVUlfQVVUSF9DT09LSUVfU0VDVVJFPWZhbHNlJyAgICAgIyBTZXQgdG8gZmFsc2UgaWYgdXNpbmcgSFRUUAogICAgZXh0cmFfaG9zdHM6CiAgICAgIC0gaG9zdC5kb2NrZXIuaW50ZXJuYWw6aG9zdC1nYXRld2F5CgogICAgcmVzdGFydDogdW5sZXNzLXN0b3BwZWQKCnZvbHVtZXM6CiAgb3Blbi13ZWJ1aToge30KCiMgRGVmaW5lIHRoZSBETlMgbmV0d29yayBhcyBleHRlcm5hbCAoY3JlYXRlZCBieSBhZ2VudCkKbmV0d29ya3M6CiAgZWRnaWJsZS1kbnMtbmV0d29yazoKICAgIGV4dGVybmFsOiB0cnVlCg==';
|
|
15
15
|
/**
|
|
16
16
|
* Get the dockerComposePath value for Open WebUI application
|
|
17
17
|
* @returns Base64-prefixed compose content ready for API submission
|
|
@@ -53,19 +53,6 @@ export interface AgentConfig {
|
|
|
53
53
|
* Defaults to 600000 (10 minutes)
|
|
54
54
|
*/
|
|
55
55
|
fullSyncInterval?: number;
|
|
56
|
-
/**
|
|
57
|
-
* DNS server configuration for container hostname resolution
|
|
58
|
-
*/
|
|
59
|
-
dns?: {
|
|
60
|
-
enabled?: boolean;
|
|
61
|
-
containerName?: string;
|
|
62
|
-
networkName?: string;
|
|
63
|
-
networkSubnet?: string;
|
|
64
|
-
dnsServerIp?: string;
|
|
65
|
-
hostGatewayIp?: string;
|
|
66
|
-
configPath?: string;
|
|
67
|
-
upstreamDns?: string[];
|
|
68
|
-
};
|
|
69
56
|
}
|
|
70
57
|
export interface HealthStatus {
|
|
71
58
|
status: 'healthy' | 'unhealthy' | 'timeout' | 'error' | 'pending';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentConfig.d.ts","sourceRoot":"","sources":["../../src/types/AgentConfig.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC5C,YAAY,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IACnD,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC5C,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC9C,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC/C,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC7C,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC7C,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC7C,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;CACjD;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,SAAS,GAAG,SAAS,CAAC;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,OAAO,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC9C,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,aAAa,EAAE,OAAO,CAAC;IACvB,mBAAmB,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,aAAa,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAC;IACvC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"AgentConfig.d.ts","sourceRoot":"","sources":["../../src/types/AgentConfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -86,9 +86,11 @@ export declare const CreateApplicationSchema: z.ZodObject<{
|
|
|
86
86
|
healthCheckPath: z.ZodOptional<z.ZodString>;
|
|
87
87
|
dockerComposePath: z.ZodOptional<z.ZodString>;
|
|
88
88
|
systemdService: z.ZodOptional<z.ZodString>;
|
|
89
|
+
deleteVolumesOnDeletion: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
89
90
|
}, "strip", z.ZodTypeAny, {
|
|
90
91
|
port: number;
|
|
91
92
|
protocol: "http" | "https" | "tcp" | "udp";
|
|
93
|
+
deleteVolumesOnDeletion: boolean;
|
|
92
94
|
command?: string | undefined;
|
|
93
95
|
logFile?: string | undefined;
|
|
94
96
|
workingDirectory?: string | undefined;
|
|
@@ -104,6 +106,7 @@ export declare const CreateApplicationSchema: z.ZodObject<{
|
|
|
104
106
|
workingDirectory?: string | undefined;
|
|
105
107
|
env?: Record<string, string> | undefined;
|
|
106
108
|
dockerComposePath?: string | undefined;
|
|
109
|
+
deleteVolumesOnDeletion?: boolean | undefined;
|
|
107
110
|
healthCheckPath?: string | undefined;
|
|
108
111
|
systemdService?: string | undefined;
|
|
109
112
|
}>;
|
|
@@ -122,6 +125,7 @@ export declare const CreateApplicationSchema: z.ZodObject<{
|
|
|
122
125
|
configuration: {
|
|
123
126
|
port: number;
|
|
124
127
|
protocol: "http" | "https" | "tcp" | "udp";
|
|
128
|
+
deleteVolumesOnDeletion: boolean;
|
|
125
129
|
command?: string | undefined;
|
|
126
130
|
logFile?: string | undefined;
|
|
127
131
|
workingDirectory?: string | undefined;
|
|
@@ -152,6 +156,7 @@ export declare const CreateApplicationSchema: z.ZodObject<{
|
|
|
152
156
|
workingDirectory?: string | undefined;
|
|
153
157
|
env?: Record<string, string> | undefined;
|
|
154
158
|
dockerComposePath?: string | undefined;
|
|
159
|
+
deleteVolumesOnDeletion?: boolean | undefined;
|
|
155
160
|
healthCheckPath?: string | undefined;
|
|
156
161
|
systemdService?: string | undefined;
|
|
157
162
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../src/types/validation/schemas.ts"],"names":[],"mappings":"AAGE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAG1B,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;EAKnC,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;;EAGnC,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;EAEhC,CAAC;AAGH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;EAK3B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;EAK3B,CAAC;AAEH,eAAO,MAAM,aAAa;;;;;;EAExB,CAAC;AAOH,eAAO,MAAM,uBAAuB
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../src/types/validation/schemas.ts"],"names":[],"mappings":"AAGE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAG1B,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;EAKnC,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;;EAGnC,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;EAEhC,CAAC;AAGH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;EAK3B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;EAK3B,CAAC;AAEH,eAAO,MAAM,aAAa;;;;;;EAExB,CAAC;AAOH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqClC,CAAC;AAQH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;EAQlC,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;EAE/B,CAAC;AAGH,eAAO,MAAM,yBAAyB;;;;;;EAEpC,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;;EAGnC,CAAC;AAEH,eAAO,MAAM,4BAA4B;;;;;;;;;EAGvC,CAAC;AAGH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAc7B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAU7B,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;EAE1B,CAAC;AAGH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;EAKzC,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;EAE7B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;EAE9B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;EAE7B,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;EAGlC,CAAC;AAGH,eAAO,MAAM,+BAA+B;;;;;;;;;;;;EAI1C,CAAC;AAEH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;EAKrC,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;EAEjC,CAAC;AAGH,eAAO,MAAM,kBAAkB;;;;;;;;;EAmB7B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;EAE7B,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;EAQpC,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;;;;;EAGpC,CAAC;AAGH,eAAO,MAAM,0CAA0C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAerD,CAAC;AAGH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAY/B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;EAO/B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;EAE5B,CAAC;AAGH,eAAO,MAAM,kCAAkC;;;;;;EAE7C,CAAC;AAGH,eAAO,MAAM,2BAA2B;;;;;;;;;EAGtC,CAAC;AAGH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqBrC,CAAC;AAGH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAC/E,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAC/E,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC/D,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC/D,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAC7E,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAC7E,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AACnE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AACnE,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAC3F,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AACnE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AACnE,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AACjF,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AACjF,MAAM,MAAM,yCAAyC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0CAA0C,CAAC,CAAC"}
|
|
@@ -56,6 +56,10 @@ exports.CreateApplicationSchema = zod_1.z.object({
|
|
|
56
56
|
.optional()
|
|
57
57
|
.describe('Path to docker-compose file OR base64-encoded content prefixed with "base64:"'),
|
|
58
58
|
systemdService: zod_1.z.string().optional(),
|
|
59
|
+
deleteVolumesOnDeletion: zod_1.z.boolean()
|
|
60
|
+
.optional()
|
|
61
|
+
.default(false)
|
|
62
|
+
.describe('Delete docker volumes when application is permanently deleted'),
|
|
59
63
|
}),
|
|
60
64
|
hostnames: zod_1.z
|
|
61
65
|
.array(zod_1.z
|
package/package.json
CHANGED
|
@@ -22,15 +22,7 @@ services:
|
|
|
22
22
|
# - 'WEBUI_AUTH_COOKIE_SECURE=false' # Set to false if using HTTP
|
|
23
23
|
extra_hosts:
|
|
24
24
|
- host.docker.internal:host-gateway
|
|
25
|
-
|
|
26
|
-
networks:
|
|
27
|
-
- edgible-dns-network
|
|
28
|
-
# Use Edgible DNS server for application hostname resolution
|
|
29
|
-
# The DNS server runs at 172.20.0.2 within the edgible-dns-network
|
|
30
|
-
# and resolves application hostnames to the host gateway (172.20.0.1)
|
|
31
|
-
dns:
|
|
32
|
-
- 172.20.0.2 # Edgible DNS server (resolves app hostnames)
|
|
33
|
-
- 8.8.8.8 # Fallback public DNS
|
|
25
|
+
|
|
34
26
|
restart: unless-stopped
|
|
35
27
|
|
|
36
28
|
volumes:
|