AmazonS3
tcp/443
CloudFront
tcp/80
Open service 2600:9000:26db:f400:1f:b35d:8d40:93a1:80 · app.siya.com
2026-01-12 08:48
HTTP/1.1 301 Moved Permanently Server: CloudFront Date: Mon, 12 Jan 2026 08:48:10 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://app.siya.com/ X-Cache: Redirect from cloudfront Via: 1.1 d11d7fba872e54649066e59f703ad3e6.cloudfront.net (CloudFront) X-Amz-Cf-Pop: MUC50-P3 Alt-Svc: h3=":443"; ma=86400 X-Amz-Cf-Id: P4pE3goT9QhpU6yIeMdiEhePck-8tVXM9dsAhhq78mbjHbwdF8j3OQ== Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 18.173.154.7:80 · app.siya.com
2026-01-12 08:48
HTTP/1.1 301 Moved Permanently Server: CloudFront Date: Mon, 12 Jan 2026 08:48:10 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://app.siya.com/ X-Cache: Redirect from cloudfront Via: 1.1 08cfbbb6f1b1bf4bc1e8ab1a071b4154.cloudfront.net (CloudFront) X-Amz-Cf-Pop: MUC50-P3 Alt-Svc: h3=":443"; ma=86400 X-Amz-Cf-Id: vPtd6V_xBguPusfIFqSicnpTQOIkjk0uIooDHG3x3Wb_dH7xr0LUlA== Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 2600:9000:26db:3000:1f:b35d:8d40:93a1:80 · app.siya.com
2026-01-12 08:48
HTTP/1.1 301 Moved Permanently Server: CloudFront Date: Mon, 12 Jan 2026 08:48:11 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://app.siya.com/ X-Cache: Redirect from cloudfront Via: 1.1 55965767fb32678a90a721ccc878aa86.cloudfront.net (CloudFront) X-Amz-Cf-Pop: MUC50-P3 Alt-Svc: h3=":443"; ma=86400 X-Amz-Cf-Id: IyYNURWbmybaWNiV50nWz3LJvcJdIMskKlAs6S2SqgSWvIEhQly-QA== Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 2600:9000:26db:5e00:1f:b35d:8d40:93a1:443 · app.siya.com
2026-01-12 08:48
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 88164
Connection: close
Date: Mon, 12 Jan 2026 08:48:11 GMT
Last-Modified: Mon, 12 Jan 2026 02:32:33 GMT
x-amz-version-id: null
ETag: "38472a1cc73bec3d5c0cbccdb8300f85"
Server: AmazonS3
X-Cache: Miss from cloudfront
Via: 1.1 918459d66ab0cca4258acacb6d3f6edc.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: MUC50-P3
Alt-Svc: h3=":443"; ma=86400
X-Amz-Cf-Id: lGGTIku4JLqYdqu3joXJ_rr0zHhLcZgkPc-ly9PbCSs3gTeGP5sg3A==
Page title: SIYA
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>SIYA</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link rel="stylesheet" href="./styles.css">
<link rel="stylesheet" href="./mobile.css">
<link rel="stylesheet" href="./index.css">
<link rel="stylesheet" href="./css/mcp-loader.css">
<link rel="stylesheet" href="./css/agent-selector.css">
<link rel="stylesheet" href="./css/power-toggle.css">
<link rel="stylesheet" href="./css/model-selector.css">
<link rel="stylesheet" href="./css/profile-dropdown.css">
<link rel="stylesheet" href="./css/settings-menu.css">
<link rel="stylesheet" href="./css/history-sidebar.css">
<link rel="stylesheet" href="./css/dropdown-menu.css">
<link rel="stylesheet" href="./css/file-viewer.css">
<link rel="stylesheet" href="./css/scroll-buttons.css">
<link rel="stylesheet" href="./css/automations-modal.css">
<link rel="stylesheet" href="./css/voice-recording.css">
<link rel="stylesheet" href="./css/session-prompt.css">
<link rel="stylesheet" href="./css/landing.css">
<link rel="icon" href="assets/siya-icon.png" type="image/png" />
<!-- Initial Loader Styles - Must load immediately -->
<style id="initial-loader-animation">
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
#initial-health-loader {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: white;
display: flex;
justify-content: center;
align-items: center;
z-index: 99998;
}
#initial-health-loader .spinner {
width: 40px;
height: 40px;
border: 3px solid #e3f2fd;
border-top: 3px solid #2196F3;
border-radius: 50%;
animation: spin 0.8s linear infinite;
}
body.loading {
display: none !important;
}
</style>
<!-- Early Authentication Check - Must be first to prevent unauthorized access -->
<script>
// Immediate authentication check before any page rendering
(function() {
// Check if user is logged in
const isLoggedIn = localStorage.getItem('isLoggedIn');
if (!isLoggedIn || isLoggedIn !== 'true') {
// Not logged in - redirect to login
window.location.replace('login.html');
}
// Check hasVmAccess to determine which view to show
const userInfo = localStorage.getItem('userInfo');
let hasVmAccess = true; // Default to true
if (userInfo) {
try {
const parsedInfo = JSON.parse(userInfo);
hasVmAccess = parsedInfo?.hasVmAccess ?? true;
} catch (e) {
console.error('Error parsing userInfo:', e);
}
}
// Store hasVmAccess for use after page loads
window.__hasVmAccess = hasVmAccess;
})();
</script>
<script src="./js/dynamic-favicon.js"></script>
<script src="./js/tab-visibility.js"></script>
<!-- Add showdown library -->
<script src="https://cdn.jsdelivr.net/npm/showdown/dist/showdown.min.js"></script>
<!-- Add DOMPurify for XSS protection -->
<script src="https://cdn.jsdelivr.net/npm/dompurify@3.0.8/dist/purify.min.js"></script>
<!-- Add Monaco Editor -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.44.0/min/vs/loader.min.js"></script>
<!-- Add PostEventSource library -->
<script src="./stream-post-client.js"></script>
<!-- Add domain config FIRST - must load before all other scripts -->
<script src
Open service 2600:9000:26db:e600:1f:b35d:8d40:93a1:80 · app.siya.com
2026-01-12 08:48
HTTP/1.1 301 Moved Permanently Server: CloudFront Date: Mon, 12 Jan 2026 08:48:10 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://app.siya.com/ X-Cache: Redirect from cloudfront Via: 1.1 94313a5530517e71f4769858ce013d58.cloudfront.net (CloudFront) X-Amz-Cf-Pop: MUC50-P3 Alt-Svc: h3=":443"; ma=86400 X-Amz-Cf-Id: -N26JaY7SrfZDlu89mNclm6a5jznz_f0ixfgxK39xgW5k_AQDts6JQ== Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 18.173.154.91:443 · app.siya.com
2026-01-12 08:48
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 88164
Connection: close
Date: Mon, 12 Jan 2026 08:48:12 GMT
Last-Modified: Mon, 12 Jan 2026 02:32:33 GMT
x-amz-version-id: null
ETag: "38472a1cc73bec3d5c0cbccdb8300f85"
Server: AmazonS3
X-Cache: Miss from cloudfront
Via: 1.1 306e1cc20ffb597e5d6d7d7cc23384f4.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: MUC50-P3
Alt-Svc: h3=":443"; ma=86400
X-Amz-Cf-Id: 9DRJm8BgM1C3-4gm1evc_UfShOpmSN9fw7WOr780o8W9BSstazRUIA==
Page title: SIYA
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>SIYA</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link rel="stylesheet" href="./styles.css">
<link rel="stylesheet" href="./mobile.css">
<link rel="stylesheet" href="./index.css">
<link rel="stylesheet" href="./css/mcp-loader.css">
<link rel="stylesheet" href="./css/agent-selector.css">
<link rel="stylesheet" href="./css/power-toggle.css">
<link rel="stylesheet" href="./css/model-selector.css">
<link rel="stylesheet" href="./css/profile-dropdown.css">
<link rel="stylesheet" href="./css/settings-menu.css">
<link rel="stylesheet" href="./css/history-sidebar.css">
<link rel="stylesheet" href="./css/dropdown-menu.css">
<link rel="stylesheet" href="./css/file-viewer.css">
<link rel="stylesheet" href="./css/scroll-buttons.css">
<link rel="stylesheet" href="./css/automations-modal.css">
<link rel="stylesheet" href="./css/voice-recording.css">
<link rel="stylesheet" href="./css/session-prompt.css">
<link rel="stylesheet" href="./css/landing.css">
<link rel="icon" href="assets/siya-icon.png" type="image/png" />
<!-- Initial Loader Styles - Must load immediately -->
<style id="initial-loader-animation">
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
#initial-health-loader {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: white;
display: flex;
justify-content: center;
align-items: center;
z-index: 99998;
}
#initial-health-loader .spinner {
width: 40px;
height: 40px;
border: 3px solid #e3f2fd;
border-top: 3px solid #2196F3;
border-radius: 50%;
animation: spin 0.8s linear infinite;
}
body.loading {
display: none !important;
}
</style>
<!-- Early Authentication Check - Must be first to prevent unauthorized access -->
<script>
// Immediate authentication check before any page rendering
(function() {
// Check if user is logged in
const isLoggedIn = localStorage.getItem('isLoggedIn');
if (!isLoggedIn || isLoggedIn !== 'true') {
// Not logged in - redirect to login
window.location.replace('login.html');
}
// Check hasVmAccess to determine which view to show
const userInfo = localStorage.getItem('userInfo');
let hasVmAccess = true; // Default to true
if (userInfo) {
try {
const parsedInfo = JSON.parse(userInfo);
hasVmAccess = parsedInfo?.hasVmAccess ?? true;
} catch (e) {
console.error('Error parsing userInfo:', e);
}
}
// Store hasVmAccess for use after page loads
window.__hasVmAccess = hasVmAccess;
})();
</script>
<script src="./js/dynamic-favicon.js"></script>
<script src="./js/tab-visibility.js"></script>
<!-- Add showdown library -->
<script src="https://cdn.jsdelivr.net/npm/showdown/dist/showdown.min.js"></script>
<!-- Add DOMPurify for XSS protection -->
<script src="https://cdn.jsdelivr.net/npm/dompurify@3.0.8/dist/purify.min.js"></script>
<!-- Add Monaco Editor -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.44.0/min/vs/loader.min.js"></script>
<!-- Add PostEventSource library -->
<script src="./stream-post-client.js"></script>
<!-- Add domain config FIRST - must load before all other scripts -->
<script src
Open service 18.173.154.7:443 · app.siya.com
2026-01-12 08:48
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 88164
Connection: close
Date: Mon, 12 Jan 2026 08:48:12 GMT
Last-Modified: Mon, 12 Jan 2026 02:32:33 GMT
x-amz-version-id: null
ETag: "38472a1cc73bec3d5c0cbccdb8300f85"
Server: AmazonS3
X-Cache: Miss from cloudfront
Via: 1.1 3721bbb571fa1179150d81f8194461ae.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: MUC50-P3
Alt-Svc: h3=":443"; ma=86400
X-Amz-Cf-Id: L1vcTv9LdcadTC9wRGtxhmk3nrVOWKC1S-qhoo0AI0yBZrRm5GvAZA==
Page title: SIYA
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>SIYA</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link rel="stylesheet" href="./styles.css">
<link rel="stylesheet" href="./mobile.css">
<link rel="stylesheet" href="./index.css">
<link rel="stylesheet" href="./css/mcp-loader.css">
<link rel="stylesheet" href="./css/agent-selector.css">
<link rel="stylesheet" href="./css/power-toggle.css">
<link rel="stylesheet" href="./css/model-selector.css">
<link rel="stylesheet" href="./css/profile-dropdown.css">
<link rel="stylesheet" href="./css/settings-menu.css">
<link rel="stylesheet" href="./css/history-sidebar.css">
<link rel="stylesheet" href="./css/dropdown-menu.css">
<link rel="stylesheet" href="./css/file-viewer.css">
<link rel="stylesheet" href="./css/scroll-buttons.css">
<link rel="stylesheet" href="./css/automations-modal.css">
<link rel="stylesheet" href="./css/voice-recording.css">
<link rel="stylesheet" href="./css/session-prompt.css">
<link rel="stylesheet" href="./css/landing.css">
<link rel="icon" href="assets/siya-icon.png" type="image/png" />
<!-- Initial Loader Styles - Must load immediately -->
<style id="initial-loader-animation">
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
#initial-health-loader {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: white;
display: flex;
justify-content: center;
align-items: center;
z-index: 99998;
}
#initial-health-loader .spinner {
width: 40px;
height: 40px;
border: 3px solid #e3f2fd;
border-top: 3px solid #2196F3;
border-radius: 50%;
animation: spin 0.8s linear infinite;
}
body.loading {
display: none !important;
}
</style>
<!-- Early Authentication Check - Must be first to prevent unauthorized access -->
<script>
// Immediate authentication check before any page rendering
(function() {
// Check if user is logged in
const isLoggedIn = localStorage.getItem('isLoggedIn');
if (!isLoggedIn || isLoggedIn !== 'true') {
// Not logged in - redirect to login
window.location.replace('login.html');
}
// Check hasVmAccess to determine which view to show
const userInfo = localStorage.getItem('userInfo');
let hasVmAccess = true; // Default to true
if (userInfo) {
try {
const parsedInfo = JSON.parse(userInfo);
hasVmAccess = parsedInfo?.hasVmAccess ?? true;
} catch (e) {
console.error('Error parsing userInfo:', e);
}
}
// Store hasVmAccess for use after page loads
window.__hasVmAccess = hasVmAccess;
})();
</script>
<script src="./js/dynamic-favicon.js"></script>
<script src="./js/tab-visibility.js"></script>
<!-- Add showdown library -->
<script src="https://cdn.jsdelivr.net/npm/showdown/dist/showdown.min.js"></script>
<!-- Add DOMPurify for XSS protection -->
<script src="https://cdn.jsdelivr.net/npm/dompurify@3.0.8/dist/purify.min.js"></script>
<!-- Add Monaco Editor -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.44.0/min/vs/loader.min.js"></script>
<!-- Add PostEventSource library -->
<script src="./stream-post-client.js"></script>
<!-- Add domain config FIRST - must load before all other scripts -->
<script src
Open service 2600:9000:26db:6c00:1f:b35d:8d40:93a1:443 · app.siya.com
2026-01-12 08:48
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 88164
Connection: close
Date: Mon, 12 Jan 2026 08:48:11 GMT
Last-Modified: Mon, 12 Jan 2026 02:32:33 GMT
x-amz-version-id: null
ETag: "38472a1cc73bec3d5c0cbccdb8300f85"
Server: AmazonS3
X-Cache: Miss from cloudfront
Via: 1.1 d11d7fba872e54649066e59f703ad3e6.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: MUC50-P3
Alt-Svc: h3=":443"; ma=86400
X-Amz-Cf-Id: JkJrwVDSB5fQ7b4BSqSih12bx6iZvplfOWuaZi5gj19_CSEXvdm2aA==
Page title: SIYA
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>SIYA</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link rel="stylesheet" href="./styles.css">
<link rel="stylesheet" href="./mobile.css">
<link rel="stylesheet" href="./index.css">
<link rel="stylesheet" href="./css/mcp-loader.css">
<link rel="stylesheet" href="./css/agent-selector.css">
<link rel="stylesheet" href="./css/power-toggle.css">
<link rel="stylesheet" href="./css/model-selector.css">
<link rel="stylesheet" href="./css/profile-dropdown.css">
<link rel="stylesheet" href="./css/settings-menu.css">
<link rel="stylesheet" href="./css/history-sidebar.css">
<link rel="stylesheet" href="./css/dropdown-menu.css">
<link rel="stylesheet" href="./css/file-viewer.css">
<link rel="stylesheet" href="./css/scroll-buttons.css">
<link rel="stylesheet" href="./css/automations-modal.css">
<link rel="stylesheet" href="./css/voice-recording.css">
<link rel="stylesheet" href="./css/session-prompt.css">
<link rel="stylesheet" href="./css/landing.css">
<link rel="icon" href="assets/siya-icon.png" type="image/png" />
<!-- Initial Loader Styles - Must load immediately -->
<style id="initial-loader-animation">
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
#initial-health-loader {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: white;
display: flex;
justify-content: center;
align-items: center;
z-index: 99998;
}
#initial-health-loader .spinner {
width: 40px;
height: 40px;
border: 3px solid #e3f2fd;
border-top: 3px solid #2196F3;
border-radius: 50%;
animation: spin 0.8s linear infinite;
}
body.loading {
display: none !important;
}
</style>
<!-- Early Authentication Check - Must be first to prevent unauthorized access -->
<script>
// Immediate authentication check before any page rendering
(function() {
// Check if user is logged in
const isLoggedIn = localStorage.getItem('isLoggedIn');
if (!isLoggedIn || isLoggedIn !== 'true') {
// Not logged in - redirect to login
window.location.replace('login.html');
}
// Check hasVmAccess to determine which view to show
const userInfo = localStorage.getItem('userInfo');
let hasVmAccess = true; // Default to true
if (userInfo) {
try {
const parsedInfo = JSON.parse(userInfo);
hasVmAccess = parsedInfo?.hasVmAccess ?? true;
} catch (e) {
console.error('Error parsing userInfo:', e);
}
}
// Store hasVmAccess for use after page loads
window.__hasVmAccess = hasVmAccess;
})();
</script>
<script src="./js/dynamic-favicon.js"></script>
<script src="./js/tab-visibility.js"></script>
<!-- Add showdown library -->
<script src="https://cdn.jsdelivr.net/npm/showdown/dist/showdown.min.js"></script>
<!-- Add DOMPurify for XSS protection -->
<script src="https://cdn.jsdelivr.net/npm/dompurify@3.0.8/dist/purify.min.js"></script>
<!-- Add Monaco Editor -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.44.0/min/vs/loader.min.js"></script>
<!-- Add PostEventSource library -->
<script src="./stream-post-client.js"></script>
<!-- Add domain config FIRST - must load before all other scripts -->
<script src
Open service 2600:9000:26db:3000:1f:b35d:8d40:93a1:443 · app.siya.com
2026-01-12 08:48
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 88164
Connection: close
Date: Mon, 12 Jan 2026 08:48:11 GMT
Last-Modified: Mon, 12 Jan 2026 02:32:33 GMT
x-amz-version-id: null
ETag: "38472a1cc73bec3d5c0cbccdb8300f85"
Server: AmazonS3
X-Cache: Miss from cloudfront
Via: 1.1 66e1af4a9e82225c770ca97b3baaf86e.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: MUC50-P3
Alt-Svc: h3=":443"; ma=86400
X-Amz-Cf-Id: zt-V3cw8Pv2jzq-d8MGg7WetjEL5zpXEp5J35gn9XDcaAr2qVigBTw==
Page title: SIYA
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>SIYA</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link rel="stylesheet" href="./styles.css">
<link rel="stylesheet" href="./mobile.css">
<link rel="stylesheet" href="./index.css">
<link rel="stylesheet" href="./css/mcp-loader.css">
<link rel="stylesheet" href="./css/agent-selector.css">
<link rel="stylesheet" href="./css/power-toggle.css">
<link rel="stylesheet" href="./css/model-selector.css">
<link rel="stylesheet" href="./css/profile-dropdown.css">
<link rel="stylesheet" href="./css/settings-menu.css">
<link rel="stylesheet" href="./css/history-sidebar.css">
<link rel="stylesheet" href="./css/dropdown-menu.css">
<link rel="stylesheet" href="./css/file-viewer.css">
<link rel="stylesheet" href="./css/scroll-buttons.css">
<link rel="stylesheet" href="./css/automations-modal.css">
<link rel="stylesheet" href="./css/voice-recording.css">
<link rel="stylesheet" href="./css/session-prompt.css">
<link rel="stylesheet" href="./css/landing.css">
<link rel="icon" href="assets/siya-icon.png" type="image/png" />
<!-- Initial Loader Styles - Must load immediately -->
<style id="initial-loader-animation">
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
#initial-health-loader {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: white;
display: flex;
justify-content: center;
align-items: center;
z-index: 99998;
}
#initial-health-loader .spinner {
width: 40px;
height: 40px;
border: 3px solid #e3f2fd;
border-top: 3px solid #2196F3;
border-radius: 50%;
animation: spin 0.8s linear infinite;
}
body.loading {
display: none !important;
}
</style>
<!-- Early Authentication Check - Must be first to prevent unauthorized access -->
<script>
// Immediate authentication check before any page rendering
(function() {
// Check if user is logged in
const isLoggedIn = localStorage.getItem('isLoggedIn');
if (!isLoggedIn || isLoggedIn !== 'true') {
// Not logged in - redirect to login
window.location.replace('login.html');
}
// Check hasVmAccess to determine which view to show
const userInfo = localStorage.getItem('userInfo');
let hasVmAccess = true; // Default to true
if (userInfo) {
try {
const parsedInfo = JSON.parse(userInfo);
hasVmAccess = parsedInfo?.hasVmAccess ?? true;
} catch (e) {
console.error('Error parsing userInfo:', e);
}
}
// Store hasVmAccess for use after page loads
window.__hasVmAccess = hasVmAccess;
})();
</script>
<script src="./js/dynamic-favicon.js"></script>
<script src="./js/tab-visibility.js"></script>
<!-- Add showdown library -->
<script src="https://cdn.jsdelivr.net/npm/showdown/dist/showdown.min.js"></script>
<!-- Add DOMPurify for XSS protection -->
<script src="https://cdn.jsdelivr.net/npm/dompurify@3.0.8/dist/purify.min.js"></script>
<!-- Add Monaco Editor -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.44.0/min/vs/loader.min.js"></script>
<!-- Add PostEventSource library -->
<script src="./stream-post-client.js"></script>
<!-- Add domain config FIRST - must load before all other scripts -->
<script src
Open service 2600:9000:26db:8200:1f:b35d:8d40:93a1:80 · app.siya.com
2026-01-12 08:48
HTTP/1.1 301 Moved Permanently Server: CloudFront Date: Mon, 12 Jan 2026 08:48:10 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://app.siya.com/ X-Cache: Redirect from cloudfront Via: 1.1 19392de11dadb918bd6f24e199ea180e.cloudfront.net (CloudFront) X-Amz-Cf-Pop: MUC50-P3 Alt-Svc: h3=":443"; ma=86400 X-Amz-Cf-Id: 1JyfFv1gIEkmV9UL6QvdLqFzXUETP1w59M9K5ffcd85UY5F-kXp_VQ== Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 2600:9000:26db:5e00:1f:b35d:8d40:93a1:80 · app.siya.com
2026-01-12 08:48
HTTP/1.1 301 Moved Permanently Server: CloudFront Date: Mon, 12 Jan 2026 08:48:10 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://app.siya.com/ X-Cache: Redirect from cloudfront Via: 1.1 d11d7fba872e54649066e59f703ad3e6.cloudfront.net (CloudFront) X-Amz-Cf-Pop: MUC50-P3 Alt-Svc: h3=":443"; ma=86400 X-Amz-Cf-Id: Fwhv482GCIq31LmPxmVBWghSNLQrp-FzVqb_fZ43L2u3Q3RALr2kMw== Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 2600:9000:26db:ec00:1f:b35d:8d40:93a1:80 · app.siya.com
2026-01-12 08:48
HTTP/1.1 301 Moved Permanently Server: CloudFront Date: Mon, 12 Jan 2026 08:48:10 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://app.siya.com/ X-Cache: Redirect from cloudfront Via: 1.1 55965767fb32678a90a721ccc878aa86.cloudfront.net (CloudFront) X-Amz-Cf-Pop: MUC50-P3 Alt-Svc: h3=":443"; ma=86400 X-Amz-Cf-Id: ez6xHTDvWPf-ZkINSrkoqU2gYLyvwwEkkErCwQB76yvRqtSkBBmDsg== Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 2600:9000:26db:4000:1f:b35d:8d40:93a1:443 · app.siya.com
2026-01-12 08:48
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 88164
Connection: close
Date: Mon, 12 Jan 2026 08:48:12 GMT
Last-Modified: Mon, 12 Jan 2026 02:32:33 GMT
x-amz-version-id: null
ETag: "38472a1cc73bec3d5c0cbccdb8300f85"
Server: AmazonS3
X-Cache: Miss from cloudfront
Via: 1.1 918459d66ab0cca4258acacb6d3f6edc.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: MUC50-P3
Alt-Svc: h3=":443"; ma=86400
X-Amz-Cf-Id: zBSBoCCjmXKt2uGn59jC9fyvqPKV6UQOZ6q5Y13GCTnXSWo5_d76nw==
Page title: SIYA
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>SIYA</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link rel="stylesheet" href="./styles.css">
<link rel="stylesheet" href="./mobile.css">
<link rel="stylesheet" href="./index.css">
<link rel="stylesheet" href="./css/mcp-loader.css">
<link rel="stylesheet" href="./css/agent-selector.css">
<link rel="stylesheet" href="./css/power-toggle.css">
<link rel="stylesheet" href="./css/model-selector.css">
<link rel="stylesheet" href="./css/profile-dropdown.css">
<link rel="stylesheet" href="./css/settings-menu.css">
<link rel="stylesheet" href="./css/history-sidebar.css">
<link rel="stylesheet" href="./css/dropdown-menu.css">
<link rel="stylesheet" href="./css/file-viewer.css">
<link rel="stylesheet" href="./css/scroll-buttons.css">
<link rel="stylesheet" href="./css/automations-modal.css">
<link rel="stylesheet" href="./css/voice-recording.css">
<link rel="stylesheet" href="./css/session-prompt.css">
<link rel="stylesheet" href="./css/landing.css">
<link rel="icon" href="assets/siya-icon.png" type="image/png" />
<!-- Initial Loader Styles - Must load immediately -->
<style id="initial-loader-animation">
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
#initial-health-loader {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: white;
display: flex;
justify-content: center;
align-items: center;
z-index: 99998;
}
#initial-health-loader .spinner {
width: 40px;
height: 40px;
border: 3px solid #e3f2fd;
border-top: 3px solid #2196F3;
border-radius: 50%;
animation: spin 0.8s linear infinite;
}
body.loading {
display: none !important;
}
</style>
<!-- Early Authentication Check - Must be first to prevent unauthorized access -->
<script>
// Immediate authentication check before any page rendering
(function() {
// Check if user is logged in
const isLoggedIn = localStorage.getItem('isLoggedIn');
if (!isLoggedIn || isLoggedIn !== 'true') {
// Not logged in - redirect to login
window.location.replace('login.html');
}
// Check hasVmAccess to determine which view to show
const userInfo = localStorage.getItem('userInfo');
let hasVmAccess = true; // Default to true
if (userInfo) {
try {
const parsedInfo = JSON.parse(userInfo);
hasVmAccess = parsedInfo?.hasVmAccess ?? true;
} catch (e) {
console.error('Error parsing userInfo:', e);
}
}
// Store hasVmAccess for use after page loads
window.__hasVmAccess = hasVmAccess;
})();
</script>
<script src="./js/dynamic-favicon.js"></script>
<script src="./js/tab-visibility.js"></script>
<!-- Add showdown library -->
<script src="https://cdn.jsdelivr.net/npm/showdown/dist/showdown.min.js"></script>
<!-- Add DOMPurify for XSS protection -->
<script src="https://cdn.jsdelivr.net/npm/dompurify@3.0.8/dist/purify.min.js"></script>
<!-- Add Monaco Editor -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.44.0/min/vs/loader.min.js"></script>
<!-- Add PostEventSource library -->
<script src="./stream-post-client.js"></script>
<!-- Add domain config FIRST - must load before all other scripts -->
<script src
Open service 18.173.154.91:80 · app.siya.com
2026-01-12 08:48
HTTP/1.1 301 Moved Permanently Server: CloudFront Date: Mon, 12 Jan 2026 08:48:10 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://app.siya.com/ X-Cache: Redirect from cloudfront Via: 1.1 3f7bbc22c659b2b7470c819d073f58b6.cloudfront.net (CloudFront) X-Amz-Cf-Pop: MUC50-P3 Alt-Svc: h3=":443"; ma=86400 X-Amz-Cf-Id: jcxB3BtFUjdBMKyGoUw1l5sJLjH-3gN9H5nNJYvQt8XSqUheAdU54A== Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 2600:9000:26db:ec00:1f:b35d:8d40:93a1:443 · app.siya.com
2026-01-12 08:48
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 88164
Connection: close
Date: Mon, 12 Jan 2026 08:48:12 GMT
Last-Modified: Mon, 12 Jan 2026 02:32:33 GMT
x-amz-version-id: null
ETag: "38472a1cc73bec3d5c0cbccdb8300f85"
Server: AmazonS3
X-Cache: Miss from cloudfront
Via: 1.1 bc5539655ffc88be2596a0239ddfae52.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: MUC50-P3
Alt-Svc: h3=":443"; ma=86400
X-Amz-Cf-Id: yCUZcau5e71XwOiGB6SMYFXrjfuin7zC_IkxRTHwCVUOYT71twVxrw==
Page title: SIYA
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>SIYA</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link rel="stylesheet" href="./styles.css">
<link rel="stylesheet" href="./mobile.css">
<link rel="stylesheet" href="./index.css">
<link rel="stylesheet" href="./css/mcp-loader.css">
<link rel="stylesheet" href="./css/agent-selector.css">
<link rel="stylesheet" href="./css/power-toggle.css">
<link rel="stylesheet" href="./css/model-selector.css">
<link rel="stylesheet" href="./css/profile-dropdown.css">
<link rel="stylesheet" href="./css/settings-menu.css">
<link rel="stylesheet" href="./css/history-sidebar.css">
<link rel="stylesheet" href="./css/dropdown-menu.css">
<link rel="stylesheet" href="./css/file-viewer.css">
<link rel="stylesheet" href="./css/scroll-buttons.css">
<link rel="stylesheet" href="./css/automations-modal.css">
<link rel="stylesheet" href="./css/voice-recording.css">
<link rel="stylesheet" href="./css/session-prompt.css">
<link rel="stylesheet" href="./css/landing.css">
<link rel="icon" href="assets/siya-icon.png" type="image/png" />
<!-- Initial Loader Styles - Must load immediately -->
<style id="initial-loader-animation">
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
#initial-health-loader {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: white;
display: flex;
justify-content: center;
align-items: center;
z-index: 99998;
}
#initial-health-loader .spinner {
width: 40px;
height: 40px;
border: 3px solid #e3f2fd;
border-top: 3px solid #2196F3;
border-radius: 50%;
animation: spin 0.8s linear infinite;
}
body.loading {
display: none !important;
}
</style>
<!-- Early Authentication Check - Must be first to prevent unauthorized access -->
<script>
// Immediate authentication check before any page rendering
(function() {
// Check if user is logged in
const isLoggedIn = localStorage.getItem('isLoggedIn');
if (!isLoggedIn || isLoggedIn !== 'true') {
// Not logged in - redirect to login
window.location.replace('login.html');
}
// Check hasVmAccess to determine which view to show
const userInfo = localStorage.getItem('userInfo');
let hasVmAccess = true; // Default to true
if (userInfo) {
try {
const parsedInfo = JSON.parse(userInfo);
hasVmAccess = parsedInfo?.hasVmAccess ?? true;
} catch (e) {
console.error('Error parsing userInfo:', e);
}
}
// Store hasVmAccess for use after page loads
window.__hasVmAccess = hasVmAccess;
})();
</script>
<script src="./js/dynamic-favicon.js"></script>
<script src="./js/tab-visibility.js"></script>
<!-- Add showdown library -->
<script src="https://cdn.jsdelivr.net/npm/showdown/dist/showdown.min.js"></script>
<!-- Add DOMPurify for XSS protection -->
<script src="https://cdn.jsdelivr.net/npm/dompurify@3.0.8/dist/purify.min.js"></script>
<!-- Add Monaco Editor -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.44.0/min/vs/loader.min.js"></script>
<!-- Add PostEventSource library -->
<script src="./stream-post-client.js"></script>
<!-- Add domain config FIRST - must load before all other scripts -->
<script src
Open service 2600:9000:26db:8200:1f:b35d:8d40:93a1:443 · app.siya.com
2026-01-12 08:48
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 88164
Connection: close
Date: Mon, 12 Jan 2026 08:48:12 GMT
Last-Modified: Mon, 12 Jan 2026 02:32:33 GMT
x-amz-version-id: null
ETag: "38472a1cc73bec3d5c0cbccdb8300f85"
Server: AmazonS3
X-Cache: Miss from cloudfront
Via: 1.1 d45f06116647d4cd21c9ad69cb1b14fc.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: MUC50-P3
Alt-Svc: h3=":443"; ma=86400
X-Amz-Cf-Id: TxT9ShmSEhY-ENn6PsPfbi2wjkNLFc6I-UGXqcLcsQMYWgKrP1VQaQ==
Page title: SIYA
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>SIYA</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link rel="stylesheet" href="./styles.css">
<link rel="stylesheet" href="./mobile.css">
<link rel="stylesheet" href="./index.css">
<link rel="stylesheet" href="./css/mcp-loader.css">
<link rel="stylesheet" href="./css/agent-selector.css">
<link rel="stylesheet" href="./css/power-toggle.css">
<link rel="stylesheet" href="./css/model-selector.css">
<link rel="stylesheet" href="./css/profile-dropdown.css">
<link rel="stylesheet" href="./css/settings-menu.css">
<link rel="stylesheet" href="./css/history-sidebar.css">
<link rel="stylesheet" href="./css/dropdown-menu.css">
<link rel="stylesheet" href="./css/file-viewer.css">
<link rel="stylesheet" href="./css/scroll-buttons.css">
<link rel="stylesheet" href="./css/automations-modal.css">
<link rel="stylesheet" href="./css/voice-recording.css">
<link rel="stylesheet" href="./css/session-prompt.css">
<link rel="stylesheet" href="./css/landing.css">
<link rel="icon" href="assets/siya-icon.png" type="image/png" />
<!-- Initial Loader Styles - Must load immediately -->
<style id="initial-loader-animation">
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
#initial-health-loader {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: white;
display: flex;
justify-content: center;
align-items: center;
z-index: 99998;
}
#initial-health-loader .spinner {
width: 40px;
height: 40px;
border: 3px solid #e3f2fd;
border-top: 3px solid #2196F3;
border-radius: 50%;
animation: spin 0.8s linear infinite;
}
body.loading {
display: none !important;
}
</style>
<!-- Early Authentication Check - Must be first to prevent unauthorized access -->
<script>
// Immediate authentication check before any page rendering
(function() {
// Check if user is logged in
const isLoggedIn = localStorage.getItem('isLoggedIn');
if (!isLoggedIn || isLoggedIn !== 'true') {
// Not logged in - redirect to login
window.location.replace('login.html');
}
// Check hasVmAccess to determine which view to show
const userInfo = localStorage.getItem('userInfo');
let hasVmAccess = true; // Default to true
if (userInfo) {
try {
const parsedInfo = JSON.parse(userInfo);
hasVmAccess = parsedInfo?.hasVmAccess ?? true;
} catch (e) {
console.error('Error parsing userInfo:', e);
}
}
// Store hasVmAccess for use after page loads
window.__hasVmAccess = hasVmAccess;
})();
</script>
<script src="./js/dynamic-favicon.js"></script>
<script src="./js/tab-visibility.js"></script>
<!-- Add showdown library -->
<script src="https://cdn.jsdelivr.net/npm/showdown/dist/showdown.min.js"></script>
<!-- Add DOMPurify for XSS protection -->
<script src="https://cdn.jsdelivr.net/npm/dompurify@3.0.8/dist/purify.min.js"></script>
<!-- Add Monaco Editor -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.44.0/min/vs/loader.min.js"></script>
<!-- Add PostEventSource library -->
<script src="./stream-post-client.js"></script>
<!-- Add domain config FIRST - must load before all other scripts -->
<script src
Open service 2600:9000:26db:6c00:1f:b35d:8d40:93a1:80 · app.siya.com
2026-01-12 08:48
HTTP/1.1 301 Moved Permanently Server: CloudFront Date: Mon, 12 Jan 2026 08:48:10 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://app.siya.com/ X-Cache: Redirect from cloudfront Via: 1.1 d32cecfb780f448e04918056be10c37a.cloudfront.net (CloudFront) X-Amz-Cf-Pop: MUC50-P3 Alt-Svc: h3=":443"; ma=86400 X-Amz-Cf-Id: wmi8OrEA7U2QNv0d1lMfYLHUhejgG9kMXADfDvEkrIJxXRPlUm5ohg== Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 2600:9000:26db:4000:1f:b35d:8d40:93a1:80 · app.siya.com
2026-01-12 08:48
HTTP/1.1 301 Moved Permanently Server: CloudFront Date: Mon, 12 Jan 2026 08:48:10 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://app.siya.com/ X-Cache: Redirect from cloudfront Via: 1.1 bc5539655ffc88be2596a0239ddfae52.cloudfront.net (CloudFront) X-Amz-Cf-Pop: MUC50-P3 Alt-Svc: h3=":443"; ma=86400 X-Amz-Cf-Id: tIlWBYzCBS9u4mQJQu-l2g_jMG7fIBus0tNfknRcefw0Zoa1NVKQAw== Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 18.173.154.2:443 · app.siya.com
2026-01-12 08:48
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 88164
Connection: close
Date: Mon, 12 Jan 2026 08:48:11 GMT
Last-Modified: Mon, 12 Jan 2026 02:32:33 GMT
x-amz-version-id: null
ETag: "38472a1cc73bec3d5c0cbccdb8300f85"
Server: AmazonS3
X-Cache: Miss from cloudfront
Via: 1.1 f4ef6af6f595152791fb5c57054106ea.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: MUC50-P3
Alt-Svc: h3=":443"; ma=86400
X-Amz-Cf-Id: OVH5LC2NHtllY0vGhmRBqGoc-yhshXrkd40bqct8l_8NrAO2hFsojQ==
Page title: SIYA
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>SIYA</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link rel="stylesheet" href="./styles.css">
<link rel="stylesheet" href="./mobile.css">
<link rel="stylesheet" href="./index.css">
<link rel="stylesheet" href="./css/mcp-loader.css">
<link rel="stylesheet" href="./css/agent-selector.css">
<link rel="stylesheet" href="./css/power-toggle.css">
<link rel="stylesheet" href="./css/model-selector.css">
<link rel="stylesheet" href="./css/profile-dropdown.css">
<link rel="stylesheet" href="./css/settings-menu.css">
<link rel="stylesheet" href="./css/history-sidebar.css">
<link rel="stylesheet" href="./css/dropdown-menu.css">
<link rel="stylesheet" href="./css/file-viewer.css">
<link rel="stylesheet" href="./css/scroll-buttons.css">
<link rel="stylesheet" href="./css/automations-modal.css">
<link rel="stylesheet" href="./css/voice-recording.css">
<link rel="stylesheet" href="./css/session-prompt.css">
<link rel="stylesheet" href="./css/landing.css">
<link rel="icon" href="assets/siya-icon.png" type="image/png" />
<!-- Initial Loader Styles - Must load immediately -->
<style id="initial-loader-animation">
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
#initial-health-loader {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: white;
display: flex;
justify-content: center;
align-items: center;
z-index: 99998;
}
#initial-health-loader .spinner {
width: 40px;
height: 40px;
border: 3px solid #e3f2fd;
border-top: 3px solid #2196F3;
border-radius: 50%;
animation: spin 0.8s linear infinite;
}
body.loading {
display: none !important;
}
</style>
<!-- Early Authentication Check - Must be first to prevent unauthorized access -->
<script>
// Immediate authentication check before any page rendering
(function() {
// Check if user is logged in
const isLoggedIn = localStorage.getItem('isLoggedIn');
if (!isLoggedIn || isLoggedIn !== 'true') {
// Not logged in - redirect to login
window.location.replace('login.html');
}
// Check hasVmAccess to determine which view to show
const userInfo = localStorage.getItem('userInfo');
let hasVmAccess = true; // Default to true
if (userInfo) {
try {
const parsedInfo = JSON.parse(userInfo);
hasVmAccess = parsedInfo?.hasVmAccess ?? true;
} catch (e) {
console.error('Error parsing userInfo:', e);
}
}
// Store hasVmAccess for use after page loads
window.__hasVmAccess = hasVmAccess;
})();
</script>
<script src="./js/dynamic-favicon.js"></script>
<script src="./js/tab-visibility.js"></script>
<!-- Add showdown library -->
<script src="https://cdn.jsdelivr.net/npm/showdown/dist/showdown.min.js"></script>
<!-- Add DOMPurify for XSS protection -->
<script src="https://cdn.jsdelivr.net/npm/dompurify@3.0.8/dist/purify.min.js"></script>
<!-- Add Monaco Editor -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.44.0/min/vs/loader.min.js"></script>
<!-- Add PostEventSource library -->
<script src="./stream-post-client.js"></script>
<!-- Add domain config FIRST - must load before all other scripts -->
<script src
Open service 18.173.154.2:80 · app.siya.com
2026-01-12 08:48
HTTP/1.1 301 Moved Permanently Server: CloudFront Date: Mon, 12 Jan 2026 08:48:10 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://app.siya.com/ X-Cache: Redirect from cloudfront Via: 1.1 2d22bd8fe92380401bbc1d8cc010e5a0.cloudfront.net (CloudFront) X-Amz-Cf-Pop: MUC50-P3 Alt-Svc: h3=":443"; ma=86400 X-Amz-Cf-Id: MM1fHyFnSbiq2ADTkT67xs_aHm7rwghZQoqUlXaTj3ktU5zvgsgV0w== Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 2600:9000:26db:e600:1f:b35d:8d40:93a1:443 · app.siya.com
2026-01-12 08:48
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 88164
Connection: close
Date: Mon, 12 Jan 2026 08:48:11 GMT
Last-Modified: Mon, 12 Jan 2026 02:32:33 GMT
x-amz-version-id: null
ETag: "38472a1cc73bec3d5c0cbccdb8300f85"
Server: AmazonS3
X-Cache: Miss from cloudfront
Via: 1.1 fd4a06b35c482e680f7f3fd9baaa0090.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: MUC50-P3
Alt-Svc: h3=":443"; ma=86400
X-Amz-Cf-Id: KjYR9y_UKn-sdznr3NmdMHgiEP5UmnfpTCnpLRbJwAsZ8WL3n5dcAQ==
Page title: SIYA
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>SIYA</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link rel="stylesheet" href="./styles.css">
<link rel="stylesheet" href="./mobile.css">
<link rel="stylesheet" href="./index.css">
<link rel="stylesheet" href="./css/mcp-loader.css">
<link rel="stylesheet" href="./css/agent-selector.css">
<link rel="stylesheet" href="./css/power-toggle.css">
<link rel="stylesheet" href="./css/model-selector.css">
<link rel="stylesheet" href="./css/profile-dropdown.css">
<link rel="stylesheet" href="./css/settings-menu.css">
<link rel="stylesheet" href="./css/history-sidebar.css">
<link rel="stylesheet" href="./css/dropdown-menu.css">
<link rel="stylesheet" href="./css/file-viewer.css">
<link rel="stylesheet" href="./css/scroll-buttons.css">
<link rel="stylesheet" href="./css/automations-modal.css">
<link rel="stylesheet" href="./css/voice-recording.css">
<link rel="stylesheet" href="./css/session-prompt.css">
<link rel="stylesheet" href="./css/landing.css">
<link rel="icon" href="assets/siya-icon.png" type="image/png" />
<!-- Initial Loader Styles - Must load immediately -->
<style id="initial-loader-animation">
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
#initial-health-loader {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: white;
display: flex;
justify-content: center;
align-items: center;
z-index: 99998;
}
#initial-health-loader .spinner {
width: 40px;
height: 40px;
border: 3px solid #e3f2fd;
border-top: 3px solid #2196F3;
border-radius: 50%;
animation: spin 0.8s linear infinite;
}
body.loading {
display: none !important;
}
</style>
<!-- Early Authentication Check - Must be first to prevent unauthorized access -->
<script>
// Immediate authentication check before any page rendering
(function() {
// Check if user is logged in
const isLoggedIn = localStorage.getItem('isLoggedIn');
if (!isLoggedIn || isLoggedIn !== 'true') {
// Not logged in - redirect to login
window.location.replace('login.html');
}
// Check hasVmAccess to determine which view to show
const userInfo = localStorage.getItem('userInfo');
let hasVmAccess = true; // Default to true
if (userInfo) {
try {
const parsedInfo = JSON.parse(userInfo);
hasVmAccess = parsedInfo?.hasVmAccess ?? true;
} catch (e) {
console.error('Error parsing userInfo:', e);
}
}
// Store hasVmAccess for use after page loads
window.__hasVmAccess = hasVmAccess;
})();
</script>
<script src="./js/dynamic-favicon.js"></script>
<script src="./js/tab-visibility.js"></script>
<!-- Add showdown library -->
<script src="https://cdn.jsdelivr.net/npm/showdown/dist/showdown.min.js"></script>
<!-- Add DOMPurify for XSS protection -->
<script src="https://cdn.jsdelivr.net/npm/dompurify@3.0.8/dist/purify.min.js"></script>
<!-- Add Monaco Editor -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.44.0/min/vs/loader.min.js"></script>
<!-- Add PostEventSource library -->
<script src="./stream-post-client.js"></script>
<!-- Add domain config FIRST - must load before all other scripts -->
<script src
Open service 18.173.154.96:443 · app.siya.com
2026-01-12 08:48
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 88164
Connection: close
Date: Mon, 12 Jan 2026 08:48:11 GMT
Last-Modified: Mon, 12 Jan 2026 02:32:33 GMT
x-amz-version-id: null
ETag: "38472a1cc73bec3d5c0cbccdb8300f85"
Server: AmazonS3
X-Cache: Miss from cloudfront
Via: 1.1 b9c5f3514baef1f70c91fc9b0be37d2e.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: MUC50-P3
Alt-Svc: h3=":443"; ma=86400
X-Amz-Cf-Id: D86LDh-8FVv7HKqE-LQP8zBA9LuRo0VCFuH1C_77N6ZhpyHFMmmnKQ==
Page title: SIYA
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>SIYA</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link rel="stylesheet" href="./styles.css">
<link rel="stylesheet" href="./mobile.css">
<link rel="stylesheet" href="./index.css">
<link rel="stylesheet" href="./css/mcp-loader.css">
<link rel="stylesheet" href="./css/agent-selector.css">
<link rel="stylesheet" href="./css/power-toggle.css">
<link rel="stylesheet" href="./css/model-selector.css">
<link rel="stylesheet" href="./css/profile-dropdown.css">
<link rel="stylesheet" href="./css/settings-menu.css">
<link rel="stylesheet" href="./css/history-sidebar.css">
<link rel="stylesheet" href="./css/dropdown-menu.css">
<link rel="stylesheet" href="./css/file-viewer.css">
<link rel="stylesheet" href="./css/scroll-buttons.css">
<link rel="stylesheet" href="./css/automations-modal.css">
<link rel="stylesheet" href="./css/voice-recording.css">
<link rel="stylesheet" href="./css/session-prompt.css">
<link rel="stylesheet" href="./css/landing.css">
<link rel="icon" href="assets/siya-icon.png" type="image/png" />
<!-- Initial Loader Styles - Must load immediately -->
<style id="initial-loader-animation">
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
#initial-health-loader {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: white;
display: flex;
justify-content: center;
align-items: center;
z-index: 99998;
}
#initial-health-loader .spinner {
width: 40px;
height: 40px;
border: 3px solid #e3f2fd;
border-top: 3px solid #2196F3;
border-radius: 50%;
animation: spin 0.8s linear infinite;
}
body.loading {
display: none !important;
}
</style>
<!-- Early Authentication Check - Must be first to prevent unauthorized access -->
<script>
// Immediate authentication check before any page rendering
(function() {
// Check if user is logged in
const isLoggedIn = localStorage.getItem('isLoggedIn');
if (!isLoggedIn || isLoggedIn !== 'true') {
// Not logged in - redirect to login
window.location.replace('login.html');
}
// Check hasVmAccess to determine which view to show
const userInfo = localStorage.getItem('userInfo');
let hasVmAccess = true; // Default to true
if (userInfo) {
try {
const parsedInfo = JSON.parse(userInfo);
hasVmAccess = parsedInfo?.hasVmAccess ?? true;
} catch (e) {
console.error('Error parsing userInfo:', e);
}
}
// Store hasVmAccess for use after page loads
window.__hasVmAccess = hasVmAccess;
})();
</script>
<script src="./js/dynamic-favicon.js"></script>
<script src="./js/tab-visibility.js"></script>
<!-- Add showdown library -->
<script src="https://cdn.jsdelivr.net/npm/showdown/dist/showdown.min.js"></script>
<!-- Add DOMPurify for XSS protection -->
<script src="https://cdn.jsdelivr.net/npm/dompurify@3.0.8/dist/purify.min.js"></script>
<!-- Add Monaco Editor -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.44.0/min/vs/loader.min.js"></script>
<!-- Add PostEventSource library -->
<script src="./stream-post-client.js"></script>
<!-- Add domain config FIRST - must load before all other scripts -->
<script src
Open service 18.173.154.96:80 · app.siya.com
2026-01-12 08:48
HTTP/1.1 301 Moved Permanently Server: CloudFront Date: Mon, 12 Jan 2026 08:48:10 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://app.siya.com/ X-Cache: Redirect from cloudfront Via: 1.1 bc8243121fd94c5b2714caac07caccde.cloudfront.net (CloudFront) X-Amz-Cf-Pop: MUC50-P3 Alt-Svc: h3=":443"; ma=86400 X-Amz-Cf-Id: XgAZy7DBJQT3fffob2iWUOBDYeg-0SM4kCz-eGR8T0tf5KKBrMP_1w== Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 2600:9000:26db:f400:1f:b35d:8d40:93a1:443 · app.siya.com
2026-01-12 08:48
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 88164
Connection: close
Date: Mon, 12 Jan 2026 08:48:11 GMT
Last-Modified: Mon, 12 Jan 2026 02:32:33 GMT
x-amz-version-id: null
ETag: "38472a1cc73bec3d5c0cbccdb8300f85"
Server: AmazonS3
X-Cache: Miss from cloudfront
Via: 1.1 5951b29f5460c0b6d21eb11bce7b8168.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: MUC50-P3
Alt-Svc: h3=":443"; ma=86400
X-Amz-Cf-Id: Jgk6LwEitfhRHQ_KMR21eJOzz3g7GEywt7lrSOUZrtjC5Oeev6hqQg==
Page title: SIYA
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>SIYA</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link rel="stylesheet" href="./styles.css">
<link rel="stylesheet" href="./mobile.css">
<link rel="stylesheet" href="./index.css">
<link rel="stylesheet" href="./css/mcp-loader.css">
<link rel="stylesheet" href="./css/agent-selector.css">
<link rel="stylesheet" href="./css/power-toggle.css">
<link rel="stylesheet" href="./css/model-selector.css">
<link rel="stylesheet" href="./css/profile-dropdown.css">
<link rel="stylesheet" href="./css/settings-menu.css">
<link rel="stylesheet" href="./css/history-sidebar.css">
<link rel="stylesheet" href="./css/dropdown-menu.css">
<link rel="stylesheet" href="./css/file-viewer.css">
<link rel="stylesheet" href="./css/scroll-buttons.css">
<link rel="stylesheet" href="./css/automations-modal.css">
<link rel="stylesheet" href="./css/voice-recording.css">
<link rel="stylesheet" href="./css/session-prompt.css">
<link rel="stylesheet" href="./css/landing.css">
<link rel="icon" href="assets/siya-icon.png" type="image/png" />
<!-- Initial Loader Styles - Must load immediately -->
<style id="initial-loader-animation">
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
#initial-health-loader {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: white;
display: flex;
justify-content: center;
align-items: center;
z-index: 99998;
}
#initial-health-loader .spinner {
width: 40px;
height: 40px;
border: 3px solid #e3f2fd;
border-top: 3px solid #2196F3;
border-radius: 50%;
animation: spin 0.8s linear infinite;
}
body.loading {
display: none !important;
}
</style>
<!-- Early Authentication Check - Must be first to prevent unauthorized access -->
<script>
// Immediate authentication check before any page rendering
(function() {
// Check if user is logged in
const isLoggedIn = localStorage.getItem('isLoggedIn');
if (!isLoggedIn || isLoggedIn !== 'true') {
// Not logged in - redirect to login
window.location.replace('login.html');
}
// Check hasVmAccess to determine which view to show
const userInfo = localStorage.getItem('userInfo');
let hasVmAccess = true; // Default to true
if (userInfo) {
try {
const parsedInfo = JSON.parse(userInfo);
hasVmAccess = parsedInfo?.hasVmAccess ?? true;
} catch (e) {
console.error('Error parsing userInfo:', e);
}
}
// Store hasVmAccess for use after page loads
window.__hasVmAccess = hasVmAccess;
})();
</script>
<script src="./js/dynamic-favicon.js"></script>
<script src="./js/tab-visibility.js"></script>
<!-- Add showdown library -->
<script src="https://cdn.jsdelivr.net/npm/showdown/dist/showdown.min.js"></script>
<!-- Add DOMPurify for XSS protection -->
<script src="https://cdn.jsdelivr.net/npm/dompurify@3.0.8/dist/purify.min.js"></script>
<!-- Add Monaco Editor -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.44.0/min/vs/loader.min.js"></script>
<!-- Add PostEventSource library -->
<script src="./stream-post-client.js"></script>
<!-- Add domain config FIRST - must load before all other scripts -->
<script src
Open service 2600:9000:26db:5a00:1f:b35d:8d40:93a1:443 · app.siya.com
2026-01-09 11:26
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 88159
Connection: close
Date: Fri, 09 Jan 2026 11:26:23 GMT
Last-Modified: Fri, 09 Jan 2026 05:51:10 GMT
x-amz-version-id: null
ETag: "40f5f050437d6c3346c31ff8bbbfc356"
Server: AmazonS3
X-Cache: Miss from cloudfront
Via: 1.1 67b5b59d34e71a36a3955bf957ea9ed2.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: MUC50-P3
Alt-Svc: h3=":443"; ma=86400
X-Amz-Cf-Id: U5KZ2Bp8xDMIGDVSm1cI_QkLJoODw_mOGHyGLaTqTSYG7p56rxU9DQ==
Page title: SIYA
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>SIYA</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link rel="stylesheet" href="./styles.css">
<link rel="stylesheet" href="./mobile.css">
<link rel="stylesheet" href="./index.css">
<link rel="stylesheet" href="./css/mcp-loader.css">
<link rel="stylesheet" href="./css/agent-selector.css">
<link rel="stylesheet" href="./css/power-toggle.css">
<link rel="stylesheet" href="./css/model-selector.css">
<link rel="stylesheet" href="./css/profile-dropdown.css">
<link rel="stylesheet" href="./css/settings-menu.css">
<link rel="stylesheet" href="./css/history-sidebar.css">
<link rel="stylesheet" href="./css/dropdown-menu.css">
<link rel="stylesheet" href="./css/file-viewer.css">
<link rel="stylesheet" href="./css/scroll-buttons.css">
<link rel="stylesheet" href="./css/automations-modal.css">
<link rel="stylesheet" href="./css/voice-recording.css">
<link rel="stylesheet" href="./css/session-prompt.css">
<link rel="stylesheet" href="./css/landing.css">
<link rel="icon" href="assets/siya-icon.png" type="image/png" />
<!-- Initial Loader Styles - Must load immediately -->
<style id="initial-loader-animation">
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
#initial-health-loader {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: white;
display: flex;
justify-content: center;
align-items: center;
z-index: 99998;
}
#initial-health-loader .spinner {
width: 40px;
height: 40px;
border: 3px solid #e3f2fd;
border-top: 3px solid #2196F3;
border-radius: 50%;
animation: spin 0.8s linear infinite;
}
body.loading {
display: none !important;
}
</style>
<!-- Early Authentication Check - Must be first to prevent unauthorized access -->
<script>
// Immediate authentication check before any page rendering
(function() {
// Check if user is logged in
const isLoggedIn = localStorage.getItem('isLoggedIn');
if (!isLoggedIn || isLoggedIn !== 'true') {
// Not logged in - redirect to login
window.location.replace('login.html');
}
// Check hasVmAccess to determine which view to show
const userInfo = localStorage.getItem('userInfo');
let hasVmAccess = true; // Default to true
if (userInfo) {
try {
const parsedInfo = JSON.parse(userInfo);
hasVmAccess = parsedInfo?.hasVmAccess ?? true;
} catch (e) {
console.error('Error parsing userInfo:', e);
}
}
// Store hasVmAccess for use after page loads
window.__hasVmAccess = hasVmAccess;
})();
</script>
<script src="./js/dynamic-favicon.js"></script>
<script src="./js/tab-visibility.js"></script>
<!-- Add showdown library -->
<script src="https://cdn.jsdelivr.net/npm/showdown/dist/showdown.min.js"></script>
<!-- Add DOMPurify for XSS protection -->
<script src="https://cdn.jsdelivr.net/npm/dompurify@3.0.8/dist/purify.min.js"></script>
<!-- Add Monaco Editor -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.44.0/min/vs/loader.min.js"></script>
<!-- Add PostEventSource library -->
<script src="./stream-post-client.js"></script>
<!-- Add domain config FIRST - must load before all other scripts -->
<script src
Open service 2600:9000:26db:5a00:1f:b35d:8d40:93a1:80 · app.siya.com
2026-01-09 11:26
HTTP/1.1 301 Moved Permanently Server: CloudFront Date: Fri, 09 Jan 2026 11:26:21 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://app.siya.com/ X-Cache: Redirect from cloudfront Via: 1.1 d32cecfb780f448e04918056be10c37a.cloudfront.net (CloudFront) X-Amz-Cf-Pop: MUC50-P3 Alt-Svc: h3=":443"; ma=86400 X-Amz-Cf-Id: X26ouw28LoBqs9pUBw2YSG0CQAh5-7g6eyttd-gO7Fp5GvbyTmx3Mg== Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 2600:9000:26db:9a00:1f:b35d:8d40:93a1:80 · app.siya.com
2026-01-09 11:26
HTTP/1.1 301 Moved Permanently Server: CloudFront Date: Fri, 09 Jan 2026 11:26:22 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://app.siya.com/ X-Cache: Redirect from cloudfront Via: 1.1 66e1af4a9e82225c770ca97b3baaf86e.cloudfront.net (CloudFront) X-Amz-Cf-Pop: MUC50-P3 Alt-Svc: h3=":443"; ma=86400 X-Amz-Cf-Id: RS1oSXAWUwaltJuc_9KIV4Sg7rVio9K2F8atnBDN9KlKFtfmPkE9rg== Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 2600:9000:26db:2e00:1f:b35d:8d40:93a1:80 · app.siya.com
2026-01-09 11:26
HTTP/1.1 301 Moved Permanently Server: CloudFront Date: Fri, 09 Jan 2026 11:26:21 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://app.siya.com/ X-Cache: Redirect from cloudfront Via: 1.1 d32cecfb780f448e04918056be10c37a.cloudfront.net (CloudFront) X-Amz-Cf-Pop: MUC50-P3 Alt-Svc: h3=":443"; ma=86400 X-Amz-Cf-Id: I5OpK19BZRId6BfC9HFzlpYyq9qH__zm00QDuM2AiGJQSl-NLCQ6uA== Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 2600:9000:26db:3c00:1f:b35d:8d40:93a1:80 · app.siya.com
2026-01-09 11:26
HTTP/1.1 301 Moved Permanently Server: CloudFront Date: Fri, 09 Jan 2026 11:26:22 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://app.siya.com/ X-Cache: Redirect from cloudfront Via: 1.1 667b60dd320c04dc9adf041517122fc2.cloudfront.net (CloudFront) X-Amz-Cf-Pop: MUC50-P3 Alt-Svc: h3=":443"; ma=86400 X-Amz-Cf-Id: n_PD57ckCkY-4QGIpd8-R6fUSyrCr36vW94W2dghg4nRo_tm-Jgsog== Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 18.173.154.96:80 · app.siya.com
2026-01-09 11:26
HTTP/1.1 301 Moved Permanently Server: CloudFront Date: Fri, 09 Jan 2026 11:26:21 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://app.siya.com/ X-Cache: Redirect from cloudfront Via: 1.1 129b4a1f09d5313624ec15fced944d6e.cloudfront.net (CloudFront) X-Amz-Cf-Pop: MUC50-P3 Alt-Svc: h3=":443"; ma=86400 X-Amz-Cf-Id: YrOZmNPCXRYdcWkBFnwIRdMM79Tv3tPkGS62w5MXibq8fDHXhBVd6g== Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 2600:9000:26db:3c00:1f:b35d:8d40:93a1:443 · app.siya.com
2026-01-09 11:26
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 88159
Connection: close
Date: Fri, 09 Jan 2026 11:26:23 GMT
Last-Modified: Fri, 09 Jan 2026 05:51:10 GMT
x-amz-version-id: null
ETag: "40f5f050437d6c3346c31ff8bbbfc356"
Server: AmazonS3
X-Cache: Miss from cloudfront
Via: 1.1 bc8243121fd94c5b2714caac07caccde.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: MUC50-P3
Alt-Svc: h3=":443"; ma=86400
X-Amz-Cf-Id: updKeJk1DOFg1eCG9ozJ91g4MKEOlewu2gn_P1Ve2cEZ0mnyrp0y4g==
Page title: SIYA
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>SIYA</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link rel="stylesheet" href="./styles.css">
<link rel="stylesheet" href="./mobile.css">
<link rel="stylesheet" href="./index.css">
<link rel="stylesheet" href="./css/mcp-loader.css">
<link rel="stylesheet" href="./css/agent-selector.css">
<link rel="stylesheet" href="./css/power-toggle.css">
<link rel="stylesheet" href="./css/model-selector.css">
<link rel="stylesheet" href="./css/profile-dropdown.css">
<link rel="stylesheet" href="./css/settings-menu.css">
<link rel="stylesheet" href="./css/history-sidebar.css">
<link rel="stylesheet" href="./css/dropdown-menu.css">
<link rel="stylesheet" href="./css/file-viewer.css">
<link rel="stylesheet" href="./css/scroll-buttons.css">
<link rel="stylesheet" href="./css/automations-modal.css">
<link rel="stylesheet" href="./css/voice-recording.css">
<link rel="stylesheet" href="./css/session-prompt.css">
<link rel="stylesheet" href="./css/landing.css">
<link rel="icon" href="assets/siya-icon.png" type="image/png" />
<!-- Initial Loader Styles - Must load immediately -->
<style id="initial-loader-animation">
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
#initial-health-loader {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: white;
display: flex;
justify-content: center;
align-items: center;
z-index: 99998;
}
#initial-health-loader .spinner {
width: 40px;
height: 40px;
border: 3px solid #e3f2fd;
border-top: 3px solid #2196F3;
border-radius: 50%;
animation: spin 0.8s linear infinite;
}
body.loading {
display: none !important;
}
</style>
<!-- Early Authentication Check - Must be first to prevent unauthorized access -->
<script>
// Immediate authentication check before any page rendering
(function() {
// Check if user is logged in
const isLoggedIn = localStorage.getItem('isLoggedIn');
if (!isLoggedIn || isLoggedIn !== 'true') {
// Not logged in - redirect to login
window.location.replace('login.html');
}
// Check hasVmAccess to determine which view to show
const userInfo = localStorage.getItem('userInfo');
let hasVmAccess = true; // Default to true
if (userInfo) {
try {
const parsedInfo = JSON.parse(userInfo);
hasVmAccess = parsedInfo?.hasVmAccess ?? true;
} catch (e) {
console.error('Error parsing userInfo:', e);
}
}
// Store hasVmAccess for use after page loads
window.__hasVmAccess = hasVmAccess;
})();
</script>
<script src="./js/dynamic-favicon.js"></script>
<script src="./js/tab-visibility.js"></script>
<!-- Add showdown library -->
<script src="https://cdn.jsdelivr.net/npm/showdown/dist/showdown.min.js"></script>
<!-- Add DOMPurify for XSS protection -->
<script src="https://cdn.jsdelivr.net/npm/dompurify@3.0.8/dist/purify.min.js"></script>
<!-- Add Monaco Editor -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.44.0/min/vs/loader.min.js"></script>
<!-- Add PostEventSource library -->
<script src="./stream-post-client.js"></script>
<!-- Add domain config FIRST - must load before all other scripts -->
<script src
Open service 2600:9000:26db:8800:1f:b35d:8d40:93a1:443 · app.siya.com
2026-01-09 11:26
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 88159
Connection: close
Date: Fri, 09 Jan 2026 11:26:23 GMT
Last-Modified: Fri, 09 Jan 2026 05:51:10 GMT
x-amz-version-id: null
ETag: "40f5f050437d6c3346c31ff8bbbfc356"
Server: AmazonS3
X-Cache: Miss from cloudfront
Via: 1.1 bc5539655ffc88be2596a0239ddfae52.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: MUC50-P3
Alt-Svc: h3=":443"; ma=86400
X-Amz-Cf-Id: coXphVUAidDCdwRs1PVe7hltYYu53gf_n4k-aRoTzMKGJANWePP4uA==
Page title: SIYA
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>SIYA</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link rel="stylesheet" href="./styles.css">
<link rel="stylesheet" href="./mobile.css">
<link rel="stylesheet" href="./index.css">
<link rel="stylesheet" href="./css/mcp-loader.css">
<link rel="stylesheet" href="./css/agent-selector.css">
<link rel="stylesheet" href="./css/power-toggle.css">
<link rel="stylesheet" href="./css/model-selector.css">
<link rel="stylesheet" href="./css/profile-dropdown.css">
<link rel="stylesheet" href="./css/settings-menu.css">
<link rel="stylesheet" href="./css/history-sidebar.css">
<link rel="stylesheet" href="./css/dropdown-menu.css">
<link rel="stylesheet" href="./css/file-viewer.css">
<link rel="stylesheet" href="./css/scroll-buttons.css">
<link rel="stylesheet" href="./css/automations-modal.css">
<link rel="stylesheet" href="./css/voice-recording.css">
<link rel="stylesheet" href="./css/session-prompt.css">
<link rel="stylesheet" href="./css/landing.css">
<link rel="icon" href="assets/siya-icon.png" type="image/png" />
<!-- Initial Loader Styles - Must load immediately -->
<style id="initial-loader-animation">
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
#initial-health-loader {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: white;
display: flex;
justify-content: center;
align-items: center;
z-index: 99998;
}
#initial-health-loader .spinner {
width: 40px;
height: 40px;
border: 3px solid #e3f2fd;
border-top: 3px solid #2196F3;
border-radius: 50%;
animation: spin 0.8s linear infinite;
}
body.loading {
display: none !important;
}
</style>
<!-- Early Authentication Check - Must be first to prevent unauthorized access -->
<script>
// Immediate authentication check before any page rendering
(function() {
// Check if user is logged in
const isLoggedIn = localStorage.getItem('isLoggedIn');
if (!isLoggedIn || isLoggedIn !== 'true') {
// Not logged in - redirect to login
window.location.replace('login.html');
}
// Check hasVmAccess to determine which view to show
const userInfo = localStorage.getItem('userInfo');
let hasVmAccess = true; // Default to true
if (userInfo) {
try {
const parsedInfo = JSON.parse(userInfo);
hasVmAccess = parsedInfo?.hasVmAccess ?? true;
} catch (e) {
console.error('Error parsing userInfo:', e);
}
}
// Store hasVmAccess for use after page loads
window.__hasVmAccess = hasVmAccess;
})();
</script>
<script src="./js/dynamic-favicon.js"></script>
<script src="./js/tab-visibility.js"></script>
<!-- Add showdown library -->
<script src="https://cdn.jsdelivr.net/npm/showdown/dist/showdown.min.js"></script>
<!-- Add DOMPurify for XSS protection -->
<script src="https://cdn.jsdelivr.net/npm/dompurify@3.0.8/dist/purify.min.js"></script>
<!-- Add Monaco Editor -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.44.0/min/vs/loader.min.js"></script>
<!-- Add PostEventSource library -->
<script src="./stream-post-client.js"></script>
<!-- Add domain config FIRST - must load before all other scripts -->
<script src
Open service 2600:9000:26db:b400:1f:b35d:8d40:93a1:80 · app.siya.com
2026-01-09 11:26
HTTP/1.1 301 Moved Permanently Server: CloudFront Date: Fri, 09 Jan 2026 11:26:21 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://app.siya.com/ X-Cache: Redirect from cloudfront Via: 1.1 19392de11dadb918bd6f24e199ea180e.cloudfront.net (CloudFront) X-Amz-Cf-Pop: MUC50-P3 Alt-Svc: h3=":443"; ma=86400 X-Amz-Cf-Id: BoSjMra3Z0QyctNK4M3QKT-DYvlII5_K5nFlHFjX-ExIC6TjXDcn5A== Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 2600:9000:26db:5c00:1f:b35d:8d40:93a1:80 · app.siya.com
2026-01-09 11:26
HTTP/1.1 301 Moved Permanently Server: CloudFront Date: Fri, 09 Jan 2026 11:26:21 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://app.siya.com/ X-Cache: Redirect from cloudfront Via: 1.1 9564791ed47030dad53c797ee814c66e.cloudfront.net (CloudFront) X-Amz-Cf-Pop: MUC50-P3 Alt-Svc: h3=":443"; ma=86400 X-Amz-Cf-Id: 6kAwrLoxEuDa3gkKkGF1qEnKrnShL49LOzaDiDmu7Cc_RQsYkQpWMw== Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 18.173.154.7:443 · app.siya.com
2026-01-09 11:26
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 88159
Connection: close
Server: AmazonS3
Date: Fri, 09 Jan 2026 11:26:23 GMT
Last-Modified: Fri, 09 Jan 2026 05:51:10 GMT
x-amz-version-id: null
ETag: "40f5f050437d6c3346c31ff8bbbfc356"
X-Cache: Miss from cloudfront
Via: 1.1 19392de11dadb918bd6f24e199ea180e.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: MUC50-P3
Alt-Svc: h3=":443"; ma=86400
X-Amz-Cf-Id: BbgKU6I5TmKG01sxzEvBDNVfl8kCh-C765APZlkvUGxveJz5nJzfdg==
Page title: SIYA
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>SIYA</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link rel="stylesheet" href="./styles.css">
<link rel="stylesheet" href="./mobile.css">
<link rel="stylesheet" href="./index.css">
<link rel="stylesheet" href="./css/mcp-loader.css">
<link rel="stylesheet" href="./css/agent-selector.css">
<link rel="stylesheet" href="./css/power-toggle.css">
<link rel="stylesheet" href="./css/model-selector.css">
<link rel="stylesheet" href="./css/profile-dropdown.css">
<link rel="stylesheet" href="./css/settings-menu.css">
<link rel="stylesheet" href="./css/history-sidebar.css">
<link rel="stylesheet" href="./css/dropdown-menu.css">
<link rel="stylesheet" href="./css/file-viewer.css">
<link rel="stylesheet" href="./css/scroll-buttons.css">
<link rel="stylesheet" href="./css/automations-modal.css">
<link rel="stylesheet" href="./css/voice-recording.css">
<link rel="stylesheet" href="./css/session-prompt.css">
<link rel="stylesheet" href="./css/landing.css">
<link rel="icon" href="assets/siya-icon.png" type="image/png" />
<!-- Initial Loader Styles - Must load immediately -->
<style id="initial-loader-animation">
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
#initial-health-loader {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: white;
display: flex;
justify-content: center;
align-items: center;
z-index: 99998;
}
#initial-health-loader .spinner {
width: 40px;
height: 40px;
border: 3px solid #e3f2fd;
border-top: 3px solid #2196F3;
border-radius: 50%;
animation: spin 0.8s linear infinite;
}
body.loading {
display: none !important;
}
</style>
<!-- Early Authentication Check - Must be first to prevent unauthorized access -->
<script>
// Immediate authentication check before any page rendering
(function() {
// Check if user is logged in
const isLoggedIn = localStorage.getItem('isLoggedIn');
if (!isLoggedIn || isLoggedIn !== 'true') {
// Not logged in - redirect to login
window.location.replace('login.html');
}
// Check hasVmAccess to determine which view to show
const userInfo = localStorage.getItem('userInfo');
let hasVmAccess = true; // Default to true
if (userInfo) {
try {
const parsedInfo = JSON.parse(userInfo);
hasVmAccess = parsedInfo?.hasVmAccess ?? true;
} catch (e) {
console.error('Error parsing userInfo:', e);
}
}
// Store hasVmAccess for use after page loads
window.__hasVmAccess = hasVmAccess;
})();
</script>
<script src="./js/dynamic-favicon.js"></script>
<script src="./js/tab-visibility.js"></script>
<!-- Add showdown library -->
<script src="https://cdn.jsdelivr.net/npm/showdown/dist/showdown.min.js"></script>
<!-- Add DOMPurify for XSS protection -->
<script src="https://cdn.jsdelivr.net/npm/dompurify@3.0.8/dist/purify.min.js"></script>
<!-- Add Monaco Editor -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.44.0/min/vs/loader.min.js"></script>
<!-- Add PostEventSource library -->
<script src="./stream-post-client.js"></script>
<!-- Add domain config FIRST - must load before all other scripts -->
<script src
Open service 18.173.154.91:443 · app.siya.com
2026-01-09 11:26
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 88159
Connection: close
Date: Fri, 09 Jan 2026 11:26:23 GMT
Last-Modified: Fri, 09 Jan 2026 05:51:10 GMT
x-amz-version-id: null
ETag: "40f5f050437d6c3346c31ff8bbbfc356"
Server: AmazonS3
X-Cache: Miss from cloudfront
Via: 1.1 595547cdc2fce94aba8498c84797701a.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: MUC50-P3
Alt-Svc: h3=":443"; ma=86400
X-Amz-Cf-Id: 9CNGYlZ6P0tQkhMuTCu3oxCrhhrXInS3umcx3ud4e00narKYRONKwQ==
Page title: SIYA
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>SIYA</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link rel="stylesheet" href="./styles.css">
<link rel="stylesheet" href="./mobile.css">
<link rel="stylesheet" href="./index.css">
<link rel="stylesheet" href="./css/mcp-loader.css">
<link rel="stylesheet" href="./css/agent-selector.css">
<link rel="stylesheet" href="./css/power-toggle.css">
<link rel="stylesheet" href="./css/model-selector.css">
<link rel="stylesheet" href="./css/profile-dropdown.css">
<link rel="stylesheet" href="./css/settings-menu.css">
<link rel="stylesheet" href="./css/history-sidebar.css">
<link rel="stylesheet" href="./css/dropdown-menu.css">
<link rel="stylesheet" href="./css/file-viewer.css">
<link rel="stylesheet" href="./css/scroll-buttons.css">
<link rel="stylesheet" href="./css/automations-modal.css">
<link rel="stylesheet" href="./css/voice-recording.css">
<link rel="stylesheet" href="./css/session-prompt.css">
<link rel="stylesheet" href="./css/landing.css">
<link rel="icon" href="assets/siya-icon.png" type="image/png" />
<!-- Initial Loader Styles - Must load immediately -->
<style id="initial-loader-animation">
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
#initial-health-loader {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: white;
display: flex;
justify-content: center;
align-items: center;
z-index: 99998;
}
#initial-health-loader .spinner {
width: 40px;
height: 40px;
border: 3px solid #e3f2fd;
border-top: 3px solid #2196F3;
border-radius: 50%;
animation: spin 0.8s linear infinite;
}
body.loading {
display: none !important;
}
</style>
<!-- Early Authentication Check - Must be first to prevent unauthorized access -->
<script>
// Immediate authentication check before any page rendering
(function() {
// Check if user is logged in
const isLoggedIn = localStorage.getItem('isLoggedIn');
if (!isLoggedIn || isLoggedIn !== 'true') {
// Not logged in - redirect to login
window.location.replace('login.html');
}
// Check hasVmAccess to determine which view to show
const userInfo = localStorage.getItem('userInfo');
let hasVmAccess = true; // Default to true
if (userInfo) {
try {
const parsedInfo = JSON.parse(userInfo);
hasVmAccess = parsedInfo?.hasVmAccess ?? true;
} catch (e) {
console.error('Error parsing userInfo:', e);
}
}
// Store hasVmAccess for use after page loads
window.__hasVmAccess = hasVmAccess;
})();
</script>
<script src="./js/dynamic-favicon.js"></script>
<script src="./js/tab-visibility.js"></script>
<!-- Add showdown library -->
<script src="https://cdn.jsdelivr.net/npm/showdown/dist/showdown.min.js"></script>
<!-- Add DOMPurify for XSS protection -->
<script src="https://cdn.jsdelivr.net/npm/dompurify@3.0.8/dist/purify.min.js"></script>
<!-- Add Monaco Editor -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.44.0/min/vs/loader.min.js"></script>
<!-- Add PostEventSource library -->
<script src="./stream-post-client.js"></script>
<!-- Add domain config FIRST - must load before all other scripts -->
<script src
Open service 2600:9000:26db:2e00:1f:b35d:8d40:93a1:443 · app.siya.com
2026-01-09 11:26
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 88159
Connection: close
Date: Fri, 09 Jan 2026 11:26:23 GMT
Last-Modified: Fri, 09 Jan 2026 05:51:10 GMT
x-amz-version-id: null
ETag: "40f5f050437d6c3346c31ff8bbbfc356"
Server: AmazonS3
X-Cache: Miss from cloudfront
Via: 1.1 66e1af4a9e82225c770ca97b3baaf86e.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: MUC50-P3
Alt-Svc: h3=":443"; ma=86400
X-Amz-Cf-Id: 0PtHFlnacr-ehhik11LxhxA3obW-zau3fvAQy6yYs1Mp3gNEdkz8Ow==
Page title: SIYA
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>SIYA</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link rel="stylesheet" href="./styles.css">
<link rel="stylesheet" href="./mobile.css">
<link rel="stylesheet" href="./index.css">
<link rel="stylesheet" href="./css/mcp-loader.css">
<link rel="stylesheet" href="./css/agent-selector.css">
<link rel="stylesheet" href="./css/power-toggle.css">
<link rel="stylesheet" href="./css/model-selector.css">
<link rel="stylesheet" href="./css/profile-dropdown.css">
<link rel="stylesheet" href="./css/settings-menu.css">
<link rel="stylesheet" href="./css/history-sidebar.css">
<link rel="stylesheet" href="./css/dropdown-menu.css">
<link rel="stylesheet" href="./css/file-viewer.css">
<link rel="stylesheet" href="./css/scroll-buttons.css">
<link rel="stylesheet" href="./css/automations-modal.css">
<link rel="stylesheet" href="./css/voice-recording.css">
<link rel="stylesheet" href="./css/session-prompt.css">
<link rel="stylesheet" href="./css/landing.css">
<link rel="icon" href="assets/siya-icon.png" type="image/png" />
<!-- Initial Loader Styles - Must load immediately -->
<style id="initial-loader-animation">
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
#initial-health-loader {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: white;
display: flex;
justify-content: center;
align-items: center;
z-index: 99998;
}
#initial-health-loader .spinner {
width: 40px;
height: 40px;
border: 3px solid #e3f2fd;
border-top: 3px solid #2196F3;
border-radius: 50%;
animation: spin 0.8s linear infinite;
}
body.loading {
display: none !important;
}
</style>
<!-- Early Authentication Check - Must be first to prevent unauthorized access -->
<script>
// Immediate authentication check before any page rendering
(function() {
// Check if user is logged in
const isLoggedIn = localStorage.getItem('isLoggedIn');
if (!isLoggedIn || isLoggedIn !== 'true') {
// Not logged in - redirect to login
window.location.replace('login.html');
}
// Check hasVmAccess to determine which view to show
const userInfo = localStorage.getItem('userInfo');
let hasVmAccess = true; // Default to true
if (userInfo) {
try {
const parsedInfo = JSON.parse(userInfo);
hasVmAccess = parsedInfo?.hasVmAccess ?? true;
} catch (e) {
console.error('Error parsing userInfo:', e);
}
}
// Store hasVmAccess for use after page loads
window.__hasVmAccess = hasVmAccess;
})();
</script>
<script src="./js/dynamic-favicon.js"></script>
<script src="./js/tab-visibility.js"></script>
<!-- Add showdown library -->
<script src="https://cdn.jsdelivr.net/npm/showdown/dist/showdown.min.js"></script>
<!-- Add DOMPurify for XSS protection -->
<script src="https://cdn.jsdelivr.net/npm/dompurify@3.0.8/dist/purify.min.js"></script>
<!-- Add Monaco Editor -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.44.0/min/vs/loader.min.js"></script>
<!-- Add PostEventSource library -->
<script src="./stream-post-client.js"></script>
<!-- Add domain config FIRST - must load before all other scripts -->
<script src
Open service 2600:9000:26db:8800:1f:b35d:8d40:93a1:80 · app.siya.com
2026-01-09 11:26
HTTP/1.1 301 Moved Permanently Server: CloudFront Date: Fri, 09 Jan 2026 11:26:21 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://app.siya.com/ X-Cache: Redirect from cloudfront Via: 1.1 d32cecfb780f448e04918056be10c37a.cloudfront.net (CloudFront) X-Amz-Cf-Pop: MUC50-P3 Alt-Svc: h3=":443"; ma=86400 X-Amz-Cf-Id: CrjoAk7CWqQ79Zb6AjyOXQQMXj2jlckgnLP2F_4FpaWoH5zZ9xppBQ== Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 2600:9000:26db:b400:1f:b35d:8d40:93a1:443 · app.siya.com
2026-01-09 11:26
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 88159
Connection: close
Date: Fri, 09 Jan 2026 11:26:23 GMT
Last-Modified: Fri, 09 Jan 2026 05:51:10 GMT
x-amz-version-id: null
ETag: "40f5f050437d6c3346c31ff8bbbfc356"
Server: AmazonS3
X-Cache: Miss from cloudfront
Via: 1.1 67b5b59d34e71a36a3955bf957ea9ed2.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: MUC50-P3
Alt-Svc: h3=":443"; ma=86400
X-Amz-Cf-Id: mFEAgXTrdeRKaReoILCUOy-_sWPNAZdnrA58MILhBvEM-h7OTqo1yw==
Page title: SIYA
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>SIYA</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link rel="stylesheet" href="./styles.css">
<link rel="stylesheet" href="./mobile.css">
<link rel="stylesheet" href="./index.css">
<link rel="stylesheet" href="./css/mcp-loader.css">
<link rel="stylesheet" href="./css/agent-selector.css">
<link rel="stylesheet" href="./css/power-toggle.css">
<link rel="stylesheet" href="./css/model-selector.css">
<link rel="stylesheet" href="./css/profile-dropdown.css">
<link rel="stylesheet" href="./css/settings-menu.css">
<link rel="stylesheet" href="./css/history-sidebar.css">
<link rel="stylesheet" href="./css/dropdown-menu.css">
<link rel="stylesheet" href="./css/file-viewer.css">
<link rel="stylesheet" href="./css/scroll-buttons.css">
<link rel="stylesheet" href="./css/automations-modal.css">
<link rel="stylesheet" href="./css/voice-recording.css">
<link rel="stylesheet" href="./css/session-prompt.css">
<link rel="stylesheet" href="./css/landing.css">
<link rel="icon" href="assets/siya-icon.png" type="image/png" />
<!-- Initial Loader Styles - Must load immediately -->
<style id="initial-loader-animation">
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
#initial-health-loader {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: white;
display: flex;
justify-content: center;
align-items: center;
z-index: 99998;
}
#initial-health-loader .spinner {
width: 40px;
height: 40px;
border: 3px solid #e3f2fd;
border-top: 3px solid #2196F3;
border-radius: 50%;
animation: spin 0.8s linear infinite;
}
body.loading {
display: none !important;
}
</style>
<!-- Early Authentication Check - Must be first to prevent unauthorized access -->
<script>
// Immediate authentication check before any page rendering
(function() {
// Check if user is logged in
const isLoggedIn = localStorage.getItem('isLoggedIn');
if (!isLoggedIn || isLoggedIn !== 'true') {
// Not logged in - redirect to login
window.location.replace('login.html');
}
// Check hasVmAccess to determine which view to show
const userInfo = localStorage.getItem('userInfo');
let hasVmAccess = true; // Default to true
if (userInfo) {
try {
const parsedInfo = JSON.parse(userInfo);
hasVmAccess = parsedInfo?.hasVmAccess ?? true;
} catch (e) {
console.error('Error parsing userInfo:', e);
}
}
// Store hasVmAccess for use after page loads
window.__hasVmAccess = hasVmAccess;
})();
</script>
<script src="./js/dynamic-favicon.js"></script>
<script src="./js/tab-visibility.js"></script>
<!-- Add showdown library -->
<script src="https://cdn.jsdelivr.net/npm/showdown/dist/showdown.min.js"></script>
<!-- Add DOMPurify for XSS protection -->
<script src="https://cdn.jsdelivr.net/npm/dompurify@3.0.8/dist/purify.min.js"></script>
<!-- Add Monaco Editor -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.44.0/min/vs/loader.min.js"></script>
<!-- Add PostEventSource library -->
<script src="./stream-post-client.js"></script>
<!-- Add domain config FIRST - must load before all other scripts -->
<script src
Open service 2600:9000:26db:6200:1f:b35d:8d40:93a1:443 · app.siya.com
2026-01-09 11:26
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 88159
Connection: close
Date: Fri, 09 Jan 2026 11:26:23 GMT
Last-Modified: Fri, 09 Jan 2026 05:51:10 GMT
x-amz-version-id: null
ETag: "40f5f050437d6c3346c31ff8bbbfc356"
Server: AmazonS3
X-Cache: Miss from cloudfront
Via: 1.1 bc5539655ffc88be2596a0239ddfae52.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: MUC50-P3
Alt-Svc: h3=":443"; ma=86400
X-Amz-Cf-Id: uHNcEhUnHZXgMzOfp4lbFH5mL_pOOzM29T5cs5CPI3D9l5zTAzMNWQ==
Page title: SIYA
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>SIYA</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link rel="stylesheet" href="./styles.css">
<link rel="stylesheet" href="./mobile.css">
<link rel="stylesheet" href="./index.css">
<link rel="stylesheet" href="./css/mcp-loader.css">
<link rel="stylesheet" href="./css/agent-selector.css">
<link rel="stylesheet" href="./css/power-toggle.css">
<link rel="stylesheet" href="./css/model-selector.css">
<link rel="stylesheet" href="./css/profile-dropdown.css">
<link rel="stylesheet" href="./css/settings-menu.css">
<link rel="stylesheet" href="./css/history-sidebar.css">
<link rel="stylesheet" href="./css/dropdown-menu.css">
<link rel="stylesheet" href="./css/file-viewer.css">
<link rel="stylesheet" href="./css/scroll-buttons.css">
<link rel="stylesheet" href="./css/automations-modal.css">
<link rel="stylesheet" href="./css/voice-recording.css">
<link rel="stylesheet" href="./css/session-prompt.css">
<link rel="stylesheet" href="./css/landing.css">
<link rel="icon" href="assets/siya-icon.png" type="image/png" />
<!-- Initial Loader Styles - Must load immediately -->
<style id="initial-loader-animation">
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
#initial-health-loader {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: white;
display: flex;
justify-content: center;
align-items: center;
z-index: 99998;
}
#initial-health-loader .spinner {
width: 40px;
height: 40px;
border: 3px solid #e3f2fd;
border-top: 3px solid #2196F3;
border-radius: 50%;
animation: spin 0.8s linear infinite;
}
body.loading {
display: none !important;
}
</style>
<!-- Early Authentication Check - Must be first to prevent unauthorized access -->
<script>
// Immediate authentication check before any page rendering
(function() {
// Check if user is logged in
const isLoggedIn = localStorage.getItem('isLoggedIn');
if (!isLoggedIn || isLoggedIn !== 'true') {
// Not logged in - redirect to login
window.location.replace('login.html');
}
// Check hasVmAccess to determine which view to show
const userInfo = localStorage.getItem('userInfo');
let hasVmAccess = true; // Default to true
if (userInfo) {
try {
const parsedInfo = JSON.parse(userInfo);
hasVmAccess = parsedInfo?.hasVmAccess ?? true;
} catch (e) {
console.error('Error parsing userInfo:', e);
}
}
// Store hasVmAccess for use after page loads
window.__hasVmAccess = hasVmAccess;
})();
</script>
<script src="./js/dynamic-favicon.js"></script>
<script src="./js/tab-visibility.js"></script>
<!-- Add showdown library -->
<script src="https://cdn.jsdelivr.net/npm/showdown/dist/showdown.min.js"></script>
<!-- Add DOMPurify for XSS protection -->
<script src="https://cdn.jsdelivr.net/npm/dompurify@3.0.8/dist/purify.min.js"></script>
<!-- Add Monaco Editor -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.44.0/min/vs/loader.min.js"></script>
<!-- Add PostEventSource library -->
<script src="./stream-post-client.js"></script>
<!-- Add domain config FIRST - must load before all other scripts -->
<script src
Open service 18.173.154.2:443 · app.siya.com
2026-01-09 11:26
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 88159
Connection: close
Server: AmazonS3
Date: Fri, 09 Jan 2026 11:26:22 GMT
Last-Modified: Fri, 09 Jan 2026 05:51:10 GMT
x-amz-version-id: null
ETag: "40f5f050437d6c3346c31ff8bbbfc356"
X-Cache: Miss from cloudfront
Via: 1.1 b36a9cc0b5286fd650732f1458855500.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: MUC50-P3
Alt-Svc: h3=":443"; ma=86400
X-Amz-Cf-Id: ixqPy4UaOFmr8fdQzBJ1mTAoGMJP6d80yni467oNlCuFvPlsPbp3Wg==
Page title: SIYA
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>SIYA</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link rel="stylesheet" href="./styles.css">
<link rel="stylesheet" href="./mobile.css">
<link rel="stylesheet" href="./index.css">
<link rel="stylesheet" href="./css/mcp-loader.css">
<link rel="stylesheet" href="./css/agent-selector.css">
<link rel="stylesheet" href="./css/power-toggle.css">
<link rel="stylesheet" href="./css/model-selector.css">
<link rel="stylesheet" href="./css/profile-dropdown.css">
<link rel="stylesheet" href="./css/settings-menu.css">
<link rel="stylesheet" href="./css/history-sidebar.css">
<link rel="stylesheet" href="./css/dropdown-menu.css">
<link rel="stylesheet" href="./css/file-viewer.css">
<link rel="stylesheet" href="./css/scroll-buttons.css">
<link rel="stylesheet" href="./css/automations-modal.css">
<link rel="stylesheet" href="./css/voice-recording.css">
<link rel="stylesheet" href="./css/session-prompt.css">
<link rel="stylesheet" href="./css/landing.css">
<link rel="icon" href="assets/siya-icon.png" type="image/png" />
<!-- Initial Loader Styles - Must load immediately -->
<style id="initial-loader-animation">
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
#initial-health-loader {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: white;
display: flex;
justify-content: center;
align-items: center;
z-index: 99998;
}
#initial-health-loader .spinner {
width: 40px;
height: 40px;
border: 3px solid #e3f2fd;
border-top: 3px solid #2196F3;
border-radius: 50%;
animation: spin 0.8s linear infinite;
}
body.loading {
display: none !important;
}
</style>
<!-- Early Authentication Check - Must be first to prevent unauthorized access -->
<script>
// Immediate authentication check before any page rendering
(function() {
// Check if user is logged in
const isLoggedIn = localStorage.getItem('isLoggedIn');
if (!isLoggedIn || isLoggedIn !== 'true') {
// Not logged in - redirect to login
window.location.replace('login.html');
}
// Check hasVmAccess to determine which view to show
const userInfo = localStorage.getItem('userInfo');
let hasVmAccess = true; // Default to true
if (userInfo) {
try {
const parsedInfo = JSON.parse(userInfo);
hasVmAccess = parsedInfo?.hasVmAccess ?? true;
} catch (e) {
console.error('Error parsing userInfo:', e);
}
}
// Store hasVmAccess for use after page loads
window.__hasVmAccess = hasVmAccess;
})();
</script>
<script src="./js/dynamic-favicon.js"></script>
<script src="./js/tab-visibility.js"></script>
<!-- Add showdown library -->
<script src="https://cdn.jsdelivr.net/npm/showdown/dist/showdown.min.js"></script>
<!-- Add DOMPurify for XSS protection -->
<script src="https://cdn.jsdelivr.net/npm/dompurify@3.0.8/dist/purify.min.js"></script>
<!-- Add Monaco Editor -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.44.0/min/vs/loader.min.js"></script>
<!-- Add PostEventSource library -->
<script src="./stream-post-client.js"></script>
<!-- Add domain config FIRST - must load before all other scripts -->
<script src
Open service 18.173.154.2:80 · app.siya.com
2026-01-09 11:26
HTTP/1.1 301 Moved Permanently Server: CloudFront Date: Fri, 09 Jan 2026 11:26:21 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://app.siya.com/ X-Cache: Redirect from cloudfront Via: 1.1 66e1af4a9e82225c770ca97b3baaf86e.cloudfront.net (CloudFront) X-Amz-Cf-Pop: MUC50-P3 Alt-Svc: h3=":443"; ma=86400 X-Amz-Cf-Id: FTyOaJcJ1VCmxSM4UWm4ffN67nsORvU5iNhKnJq9JpgZcXjq7sir2A== Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 18.173.154.91:80 · app.siya.com
2026-01-09 11:26
HTTP/1.1 301 Moved Permanently Server: CloudFront Date: Fri, 09 Jan 2026 11:26:21 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://app.siya.com/ X-Cache: Redirect from cloudfront Via: 1.1 08cfbbb6f1b1bf4bc1e8ab1a071b4154.cloudfront.net (CloudFront) X-Amz-Cf-Pop: MUC50-P3 Alt-Svc: h3=":443"; ma=86400 X-Amz-Cf-Id: P_PlGDmXiN2c8Oi27pS9Dlgayfq1GdyhETAX_QBgvVAdUowXdl2cxg== Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 18.173.154.96:443 · app.siya.com
2026-01-09 11:26
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 88159
Connection: close
Date: Fri, 09 Jan 2026 11:26:22 GMT
Last-Modified: Fri, 09 Jan 2026 05:51:10 GMT
x-amz-version-id: null
ETag: "40f5f050437d6c3346c31ff8bbbfc356"
Server: AmazonS3
X-Cache: Miss from cloudfront
Via: 1.1 559b66bb8d6baca9fa30f875c62de1e6.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: MUC50-P3
Alt-Svc: h3=":443"; ma=86400
X-Amz-Cf-Id: jG9YWrfgkJg1gg7poCbAFa6JQUVqJ6du-03oxrq89Im6y68KcE9IXA==
Page title: SIYA
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>SIYA</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link rel="stylesheet" href="./styles.css">
<link rel="stylesheet" href="./mobile.css">
<link rel="stylesheet" href="./index.css">
<link rel="stylesheet" href="./css/mcp-loader.css">
<link rel="stylesheet" href="./css/agent-selector.css">
<link rel="stylesheet" href="./css/power-toggle.css">
<link rel="stylesheet" href="./css/model-selector.css">
<link rel="stylesheet" href="./css/profile-dropdown.css">
<link rel="stylesheet" href="./css/settings-menu.css">
<link rel="stylesheet" href="./css/history-sidebar.css">
<link rel="stylesheet" href="./css/dropdown-menu.css">
<link rel="stylesheet" href="./css/file-viewer.css">
<link rel="stylesheet" href="./css/scroll-buttons.css">
<link rel="stylesheet" href="./css/automations-modal.css">
<link rel="stylesheet" href="./css/voice-recording.css">
<link rel="stylesheet" href="./css/session-prompt.css">
<link rel="stylesheet" href="./css/landing.css">
<link rel="icon" href="assets/siya-icon.png" type="image/png" />
<!-- Initial Loader Styles - Must load immediately -->
<style id="initial-loader-animation">
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
#initial-health-loader {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: white;
display: flex;
justify-content: center;
align-items: center;
z-index: 99998;
}
#initial-health-loader .spinner {
width: 40px;
height: 40px;
border: 3px solid #e3f2fd;
border-top: 3px solid #2196F3;
border-radius: 50%;
animation: spin 0.8s linear infinite;
}
body.loading {
display: none !important;
}
</style>
<!-- Early Authentication Check - Must be first to prevent unauthorized access -->
<script>
// Immediate authentication check before any page rendering
(function() {
// Check if user is logged in
const isLoggedIn = localStorage.getItem('isLoggedIn');
if (!isLoggedIn || isLoggedIn !== 'true') {
// Not logged in - redirect to login
window.location.replace('login.html');
}
// Check hasVmAccess to determine which view to show
const userInfo = localStorage.getItem('userInfo');
let hasVmAccess = true; // Default to true
if (userInfo) {
try {
const parsedInfo = JSON.parse(userInfo);
hasVmAccess = parsedInfo?.hasVmAccess ?? true;
} catch (e) {
console.error('Error parsing userInfo:', e);
}
}
// Store hasVmAccess for use after page loads
window.__hasVmAccess = hasVmAccess;
})();
</script>
<script src="./js/dynamic-favicon.js"></script>
<script src="./js/tab-visibility.js"></script>
<!-- Add showdown library -->
<script src="https://cdn.jsdelivr.net/npm/showdown/dist/showdown.min.js"></script>
<!-- Add DOMPurify for XSS protection -->
<script src="https://cdn.jsdelivr.net/npm/dompurify@3.0.8/dist/purify.min.js"></script>
<!-- Add Monaco Editor -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.44.0/min/vs/loader.min.js"></script>
<!-- Add PostEventSource library -->
<script src="./stream-post-client.js"></script>
<!-- Add domain config FIRST - must load before all other scripts -->
<script src
Open service 18.173.154.7:80 · app.siya.com
2026-01-09 11:26
HTTP/1.1 301 Moved Permanently Server: CloudFront Date: Fri, 09 Jan 2026 11:26:21 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://app.siya.com/ X-Cache: Redirect from cloudfront Via: 1.1 559b66bb8d6baca9fa30f875c62de1e6.cloudfront.net (CloudFront) X-Amz-Cf-Pop: MUC50-P3 Alt-Svc: h3=":443"; ma=86400 X-Amz-Cf-Id: VxunovgVCjnsvpKf6YvyG_6bPXhVlX-bGKlwurUk9ksy7CfHEs77qw== Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 2600:9000:26db:5c00:1f:b35d:8d40:93a1:443 · app.siya.com
2026-01-09 11:26
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 88159
Connection: close
Date: Fri, 09 Jan 2026 11:26:22 GMT
Last-Modified: Fri, 09 Jan 2026 05:51:10 GMT
x-amz-version-id: null
ETag: "40f5f050437d6c3346c31ff8bbbfc356"
Server: AmazonS3
X-Cache: Miss from cloudfront
Via: 1.1 5951b29f5460c0b6d21eb11bce7b8168.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: MUC50-P3
Alt-Svc: h3=":443"; ma=86400
X-Amz-Cf-Id: V6Zs3z7BwG-TIIrCcNxMLXwModT00NgZVx26Wk4KrCN8H8F_v02juw==
Page title: SIYA
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>SIYA</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link rel="stylesheet" href="./styles.css">
<link rel="stylesheet" href="./mobile.css">
<link rel="stylesheet" href="./index.css">
<link rel="stylesheet" href="./css/mcp-loader.css">
<link rel="stylesheet" href="./css/agent-selector.css">
<link rel="stylesheet" href="./css/power-toggle.css">
<link rel="stylesheet" href="./css/model-selector.css">
<link rel="stylesheet" href="./css/profile-dropdown.css">
<link rel="stylesheet" href="./css/settings-menu.css">
<link rel="stylesheet" href="./css/history-sidebar.css">
<link rel="stylesheet" href="./css/dropdown-menu.css">
<link rel="stylesheet" href="./css/file-viewer.css">
<link rel="stylesheet" href="./css/scroll-buttons.css">
<link rel="stylesheet" href="./css/automations-modal.css">
<link rel="stylesheet" href="./css/voice-recording.css">
<link rel="stylesheet" href="./css/session-prompt.css">
<link rel="stylesheet" href="./css/landing.css">
<link rel="icon" href="assets/siya-icon.png" type="image/png" />
<!-- Initial Loader Styles - Must load immediately -->
<style id="initial-loader-animation">
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
#initial-health-loader {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: white;
display: flex;
justify-content: center;
align-items: center;
z-index: 99998;
}
#initial-health-loader .spinner {
width: 40px;
height: 40px;
border: 3px solid #e3f2fd;
border-top: 3px solid #2196F3;
border-radius: 50%;
animation: spin 0.8s linear infinite;
}
body.loading {
display: none !important;
}
</style>
<!-- Early Authentication Check - Must be first to prevent unauthorized access -->
<script>
// Immediate authentication check before any page rendering
(function() {
// Check if user is logged in
const isLoggedIn = localStorage.getItem('isLoggedIn');
if (!isLoggedIn || isLoggedIn !== 'true') {
// Not logged in - redirect to login
window.location.replace('login.html');
}
// Check hasVmAccess to determine which view to show
const userInfo = localStorage.getItem('userInfo');
let hasVmAccess = true; // Default to true
if (userInfo) {
try {
const parsedInfo = JSON.parse(userInfo);
hasVmAccess = parsedInfo?.hasVmAccess ?? true;
} catch (e) {
console.error('Error parsing userInfo:', e);
}
}
// Store hasVmAccess for use after page loads
window.__hasVmAccess = hasVmAccess;
})();
</script>
<script src="./js/dynamic-favicon.js"></script>
<script src="./js/tab-visibility.js"></script>
<!-- Add showdown library -->
<script src="https://cdn.jsdelivr.net/npm/showdown/dist/showdown.min.js"></script>
<!-- Add DOMPurify for XSS protection -->
<script src="https://cdn.jsdelivr.net/npm/dompurify@3.0.8/dist/purify.min.js"></script>
<!-- Add Monaco Editor -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.44.0/min/vs/loader.min.js"></script>
<!-- Add PostEventSource library -->
<script src="./stream-post-client.js"></script>
<!-- Add domain config FIRST - must load before all other scripts -->
<script src
Open service 2600:9000:26db:6200:1f:b35d:8d40:93a1:80 · app.siya.com
2026-01-09 11:26
HTTP/1.1 301 Moved Permanently Server: CloudFront Date: Fri, 09 Jan 2026 11:26:21 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://app.siya.com/ X-Cache: Redirect from cloudfront Via: 1.1 94313a5530517e71f4769858ce013d58.cloudfront.net (CloudFront) X-Amz-Cf-Pop: MUC50-P3 Alt-Svc: h3=":443"; ma=86400 X-Amz-Cf-Id: e7sVrv931Ch81YMOG9g6A6Wv6sD83ePCix2QBouPuxwH-ZpDmnyyXQ== Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 2600:9000:26db:9a00:1f:b35d:8d40:93a1:443 · app.siya.com
2026-01-09 11:26
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 88159
Connection: close
Date: Fri, 09 Jan 2026 11:26:22 GMT
Last-Modified: Fri, 09 Jan 2026 05:51:10 GMT
x-amz-version-id: null
ETag: "40f5f050437d6c3346c31ff8bbbfc356"
Server: AmazonS3
X-Cache: Miss from cloudfront
Via: 1.1 5951b29f5460c0b6d21eb11bce7b8168.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: MUC50-P3
Alt-Svc: h3=":443"; ma=86400
X-Amz-Cf-Id: D0OxRO08WWcXFfAGk1X1IB4Y-F9dYY3ItXnQVd4nfycxYGVnI0IxVw==
Page title: SIYA
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>SIYA</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link rel="stylesheet" href="./styles.css">
<link rel="stylesheet" href="./mobile.css">
<link rel="stylesheet" href="./index.css">
<link rel="stylesheet" href="./css/mcp-loader.css">
<link rel="stylesheet" href="./css/agent-selector.css">
<link rel="stylesheet" href="./css/power-toggle.css">
<link rel="stylesheet" href="./css/model-selector.css">
<link rel="stylesheet" href="./css/profile-dropdown.css">
<link rel="stylesheet" href="./css/settings-menu.css">
<link rel="stylesheet" href="./css/history-sidebar.css">
<link rel="stylesheet" href="./css/dropdown-menu.css">
<link rel="stylesheet" href="./css/file-viewer.css">
<link rel="stylesheet" href="./css/scroll-buttons.css">
<link rel="stylesheet" href="./css/automations-modal.css">
<link rel="stylesheet" href="./css/voice-recording.css">
<link rel="stylesheet" href="./css/session-prompt.css">
<link rel="stylesheet" href="./css/landing.css">
<link rel="icon" href="assets/siya-icon.png" type="image/png" />
<!-- Initial Loader Styles - Must load immediately -->
<style id="initial-loader-animation">
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
#initial-health-loader {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: white;
display: flex;
justify-content: center;
align-items: center;
z-index: 99998;
}
#initial-health-loader .spinner {
width: 40px;
height: 40px;
border: 3px solid #e3f2fd;
border-top: 3px solid #2196F3;
border-radius: 50%;
animation: spin 0.8s linear infinite;
}
body.loading {
display: none !important;
}
</style>
<!-- Early Authentication Check - Must be first to prevent unauthorized access -->
<script>
// Immediate authentication check before any page rendering
(function() {
// Check if user is logged in
const isLoggedIn = localStorage.getItem('isLoggedIn');
if (!isLoggedIn || isLoggedIn !== 'true') {
// Not logged in - redirect to login
window.location.replace('login.html');
}
// Check hasVmAccess to determine which view to show
const userInfo = localStorage.getItem('userInfo');
let hasVmAccess = true; // Default to true
if (userInfo) {
try {
const parsedInfo = JSON.parse(userInfo);
hasVmAccess = parsedInfo?.hasVmAccess ?? true;
} catch (e) {
console.error('Error parsing userInfo:', e);
}
}
// Store hasVmAccess for use after page loads
window.__hasVmAccess = hasVmAccess;
})();
</script>
<script src="./js/dynamic-favicon.js"></script>
<script src="./js/tab-visibility.js"></script>
<!-- Add showdown library -->
<script src="https://cdn.jsdelivr.net/npm/showdown/dist/showdown.min.js"></script>
<!-- Add DOMPurify for XSS protection -->
<script src="https://cdn.jsdelivr.net/npm/dompurify@3.0.8/dist/purify.min.js"></script>
<!-- Add Monaco Editor -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.44.0/min/vs/loader.min.js"></script>
<!-- Add PostEventSource library -->
<script src="./stream-post-client.js"></script>
<!-- Add domain config FIRST - must load before all other scripts -->
<script src
Open service 2600:9000:26db:8600:1f:b35d:8d40:93a1:80 · app.siya.com
2026-01-07 11:34
HTTP/1.1 301 Moved Permanently Server: CloudFront Date: Wed, 07 Jan 2026 11:34:26 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://app.siya.com/ X-Cache: Redirect from cloudfront Via: 1.1 18d0e038a55eccdc9f0ad716edf64962.cloudfront.net (CloudFront) X-Amz-Cf-Pop: MUC50-P3 Alt-Svc: h3=":443"; ma=86400 X-Amz-Cf-Id: nXIm480dbKTPV2LWsp_ryizDsugoiH-ekoKRTXNQawZKCpZ8H1YUpg== Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 2600:9000:26db:2200:1f:b35d:8d40:93a1:80 · app.siya.com
2026-01-07 11:34
HTTP/1.1 301 Moved Permanently Server: CloudFront Date: Wed, 07 Jan 2026 11:34:27 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://app.siya.com/ X-Cache: Redirect from cloudfront Via: 1.1 2dd902cd86ee8f22d66046533880d3e8.cloudfront.net (CloudFront) X-Amz-Cf-Pop: MUC50-P3 Alt-Svc: h3=":443"; ma=86400 X-Amz-Cf-Id: WHvXCcd9mABLMFJ6VpIC9ensKenHq-cigPh3dPxmgta6KUDDLU-LQQ== Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 18.173.154.91:80 · app.siya.com
2026-01-07 11:34
HTTP/1.1 301 Moved Permanently Server: CloudFront Date: Wed, 07 Jan 2026 11:34:27 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://app.siya.com/ X-Cache: Redirect from cloudfront Via: 1.1 fe6d656eba9969a63bb94889f81e9bf8.cloudfront.net (CloudFront) X-Amz-Cf-Pop: MUC50-P3 Alt-Svc: h3=":443"; ma=86400 X-Amz-Cf-Id: SiWsfuIe3_oyNc7jPylHvzSw_FCC9RjjfZalcaVVJ1tHUVxFSYPqug== Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 18.173.154.96:80 · app.siya.com
2026-01-07 11:34
HTTP/1.1 301 Moved Permanently Server: CloudFront Date: Wed, 07 Jan 2026 11:34:26 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://app.siya.com/ X-Cache: Redirect from cloudfront Via: 1.1 5951b29f5460c0b6d21eb11bce7b8168.cloudfront.net (CloudFront) X-Amz-Cf-Pop: MUC50-P3 Alt-Svc: h3=":443"; ma=86400 X-Amz-Cf-Id: NJd5aL5hkwRs6AW3Sa-VLaJt74Z5Zbeua_NdxzcZn151HrRSn_VzVQ== Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 2600:9000:26db:8600:1f:b35d:8d40:93a1:443 · app.siya.com
2026-01-07 11:34
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 87426
Connection: close
Date: Wed, 07 Jan 2026 11:34:27 GMT
Last-Modified: Wed, 07 Jan 2026 10:35:53 GMT
x-amz-version-id: null
ETag: "2df736c87690f02738fae9c4baf873c0"
Server: AmazonS3
X-Cache: Miss from cloudfront
Via: 1.1 67b5b59d34e71a36a3955bf957ea9ed2.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: MUC50-P3
Alt-Svc: h3=":443"; ma=86400
X-Amz-Cf-Id: B5O3jo-l87qkHj74IHQc9pyd3UMAtC6j87TtMgdOqdk1YlMs3W7KTw==
Page title: SIYA
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>SIYA</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link rel="stylesheet" href="./styles.css">
<link rel="stylesheet" href="./mobile.css">
<link rel="stylesheet" href="./index.css">
<link rel="stylesheet" href="./css/mcp-loader.css">
<link rel="stylesheet" href="./css/agent-selector.css">
<link rel="stylesheet" href="./css/power-toggle.css">
<link rel="stylesheet" href="./css/model-selector.css">
<link rel="stylesheet" href="./css/profile-dropdown.css">
<link rel="stylesheet" href="./css/settings-menu.css">
<link rel="stylesheet" href="./css/history-sidebar.css">
<link rel="stylesheet" href="./css/dropdown-menu.css">
<link rel="stylesheet" href="./css/file-viewer.css">
<link rel="stylesheet" href="./css/scroll-buttons.css">
<link rel="stylesheet" href="./css/automations-modal.css">
<link rel="stylesheet" href="./css/voice-recording.css">
<link rel="stylesheet" href="./css/session-prompt.css">
<link rel="stylesheet" href="./css/landing.css">
<link rel="icon" href="assets/siya-icon.png" type="image/png" />
<!-- Initial Loader Styles - Must load immediately -->
<style id="initial-loader-animation">
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
#initial-health-loader {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: white;
display: flex;
justify-content: center;
align-items: center;
z-index: 99998;
}
#initial-health-loader .spinner {
width: 40px;
height: 40px;
border: 3px solid #e3f2fd;
border-top: 3px solid #2196F3;
border-radius: 50%;
animation: spin 0.8s linear infinite;
}
body.loading {
display: none !important;
}
</style>
<!-- Early Authentication Check - Must be first to prevent unauthorized access -->
<script>
// Immediate authentication check before any page rendering
(function() {
// Check if user is logged in
const isLoggedIn = localStorage.getItem('isLoggedIn');
if (!isLoggedIn || isLoggedIn !== 'true') {
// Not logged in - redirect to login
window.location.replace('login.html');
}
// Check hasVmAccess to determine which view to show
const userInfo = localStorage.getItem('userInfo');
let hasVmAccess = true; // Default to true
if (userInfo) {
try {
const parsedInfo = JSON.parse(userInfo);
hasVmAccess = parsedInfo?.hasVmAccess ?? true;
} catch (e) {
console.error('Error parsing userInfo:', e);
}
}
// Store hasVmAccess for use after page loads
window.__hasVmAccess = hasVmAccess;
})();
</script>
<script src="./js/dynamic-favicon.js"></script>
<script src="./js/tab-visibility.js"></script>
<!-- Add showdown library -->
<script src="https://cdn.jsdelivr.net/npm/showdown/dist/showdown.min.js"></script>
<!-- Add DOMPurify for XSS protection -->
<script src="https://cdn.jsdelivr.net/npm/dompurify@3.0.8/dist/purify.min.js"></script>
<!-- Add Monaco Editor -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.44.0/min/vs/loader.min.js"></script>
<!-- Add PostEventSource library -->
<script src="./stream-post-client.js"></script>
<!-- Add domain config FIRST - must load before all other scripts -->
<script src
Open service 2600:9000:26db:9600:1f:b35d:8d40:93a1:80 · app.siya.com
2026-01-07 11:34
HTTP/1.1 301 Moved Permanently Server: CloudFront Date: Wed, 07 Jan 2026 11:34:26 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://app.siya.com/ X-Cache: Redirect from cloudfront Via: 1.1 106a2e3801afa4dfd5bd4bfaeb93d526.cloudfront.net (CloudFront) X-Amz-Cf-Pop: MUC50-P3 Alt-Svc: h3=":443"; ma=86400 X-Amz-Cf-Id: 0sGDIfc0xJA_zqI3blD1wIn-sPzlDi4RLp-8ofSgACZJOgUuY_Is1A== Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 18.173.154.96:443 · app.siya.com
2026-01-07 11:34
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 87426
Connection: close
Date: Wed, 07 Jan 2026 11:34:27 GMT
Last-Modified: Wed, 07 Jan 2026 10:35:53 GMT
x-amz-version-id: null
ETag: "2df736c87690f02738fae9c4baf873c0"
Server: AmazonS3
X-Cache: Miss from cloudfront
Via: 1.1 595547cdc2fce94aba8498c84797701a.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: MUC50-P3
Alt-Svc: h3=":443"; ma=86400
X-Amz-Cf-Id: iBPasPSF-GQkA2pd1fRDq-NKVKU9DYiXbAgOV9XMcqembwUOm9aYeg==
Page title: SIYA
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>SIYA</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link rel="stylesheet" href="./styles.css">
<link rel="stylesheet" href="./mobile.css">
<link rel="stylesheet" href="./index.css">
<link rel="stylesheet" href="./css/mcp-loader.css">
<link rel="stylesheet" href="./css/agent-selector.css">
<link rel="stylesheet" href="./css/power-toggle.css">
<link rel="stylesheet" href="./css/model-selector.css">
<link rel="stylesheet" href="./css/profile-dropdown.css">
<link rel="stylesheet" href="./css/settings-menu.css">
<link rel="stylesheet" href="./css/history-sidebar.css">
<link rel="stylesheet" href="./css/dropdown-menu.css">
<link rel="stylesheet" href="./css/file-viewer.css">
<link rel="stylesheet" href="./css/scroll-buttons.css">
<link rel="stylesheet" href="./css/automations-modal.css">
<link rel="stylesheet" href="./css/voice-recording.css">
<link rel="stylesheet" href="./css/session-prompt.css">
<link rel="stylesheet" href="./css/landing.css">
<link rel="icon" href="assets/siya-icon.png" type="image/png" />
<!-- Initial Loader Styles - Must load immediately -->
<style id="initial-loader-animation">
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
#initial-health-loader {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: white;
display: flex;
justify-content: center;
align-items: center;
z-index: 99998;
}
#initial-health-loader .spinner {
width: 40px;
height: 40px;
border: 3px solid #e3f2fd;
border-top: 3px solid #2196F3;
border-radius: 50%;
animation: spin 0.8s linear infinite;
}
body.loading {
display: none !important;
}
</style>
<!-- Early Authentication Check - Must be first to prevent unauthorized access -->
<script>
// Immediate authentication check before any page rendering
(function() {
// Check if user is logged in
const isLoggedIn = localStorage.getItem('isLoggedIn');
if (!isLoggedIn || isLoggedIn !== 'true') {
// Not logged in - redirect to login
window.location.replace('login.html');
}
// Check hasVmAccess to determine which view to show
const userInfo = localStorage.getItem('userInfo');
let hasVmAccess = true; // Default to true
if (userInfo) {
try {
const parsedInfo = JSON.parse(userInfo);
hasVmAccess = parsedInfo?.hasVmAccess ?? true;
} catch (e) {
console.error('Error parsing userInfo:', e);
}
}
// Store hasVmAccess for use after page loads
window.__hasVmAccess = hasVmAccess;
})();
</script>
<script src="./js/dynamic-favicon.js"></script>
<script src="./js/tab-visibility.js"></script>
<!-- Add showdown library -->
<script src="https://cdn.jsdelivr.net/npm/showdown/dist/showdown.min.js"></script>
<!-- Add DOMPurify for XSS protection -->
<script src="https://cdn.jsdelivr.net/npm/dompurify@3.0.8/dist/purify.min.js"></script>
<!-- Add Monaco Editor -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.44.0/min/vs/loader.min.js"></script>
<!-- Add PostEventSource library -->
<script src="./stream-post-client.js"></script>
<!-- Add domain config FIRST - must load before all other scripts -->
<script src
Open service 18.173.154.2:443 · app.siya.com
2026-01-07 11:34
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 87426
Connection: close
Date: Wed, 07 Jan 2026 11:34:27 GMT
Last-Modified: Wed, 07 Jan 2026 10:35:53 GMT
x-amz-version-id: null
ETag: "2df736c87690f02738fae9c4baf873c0"
Server: AmazonS3
X-Cache: Miss from cloudfront
Via: 1.1 3f7bbc22c659b2b7470c819d073f58b6.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: MUC50-P3
Alt-Svc: h3=":443"; ma=86400
X-Amz-Cf-Id: Bi5g-kmSnwDcr6wJwGmk_Itbkku6piYdy1mzESjnQ29YMk2lQxh6Hw==
Page title: SIYA
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>SIYA</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link rel="stylesheet" href="./styles.css">
<link rel="stylesheet" href="./mobile.css">
<link rel="stylesheet" href="./index.css">
<link rel="stylesheet" href="./css/mcp-loader.css">
<link rel="stylesheet" href="./css/agent-selector.css">
<link rel="stylesheet" href="./css/power-toggle.css">
<link rel="stylesheet" href="./css/model-selector.css">
<link rel="stylesheet" href="./css/profile-dropdown.css">
<link rel="stylesheet" href="./css/settings-menu.css">
<link rel="stylesheet" href="./css/history-sidebar.css">
<link rel="stylesheet" href="./css/dropdown-menu.css">
<link rel="stylesheet" href="./css/file-viewer.css">
<link rel="stylesheet" href="./css/scroll-buttons.css">
<link rel="stylesheet" href="./css/automations-modal.css">
<link rel="stylesheet" href="./css/voice-recording.css">
<link rel="stylesheet" href="./css/session-prompt.css">
<link rel="stylesheet" href="./css/landing.css">
<link rel="icon" href="assets/siya-icon.png" type="image/png" />
<!-- Initial Loader Styles - Must load immediately -->
<style id="initial-loader-animation">
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
#initial-health-loader {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: white;
display: flex;
justify-content: center;
align-items: center;
z-index: 99998;
}
#initial-health-loader .spinner {
width: 40px;
height: 40px;
border: 3px solid #e3f2fd;
border-top: 3px solid #2196F3;
border-radius: 50%;
animation: spin 0.8s linear infinite;
}
body.loading {
display: none !important;
}
</style>
<!-- Early Authentication Check - Must be first to prevent unauthorized access -->
<script>
// Immediate authentication check before any page rendering
(function() {
// Check if user is logged in
const isLoggedIn = localStorage.getItem('isLoggedIn');
if (!isLoggedIn || isLoggedIn !== 'true') {
// Not logged in - redirect to login
window.location.replace('login.html');
}
// Check hasVmAccess to determine which view to show
const userInfo = localStorage.getItem('userInfo');
let hasVmAccess = true; // Default to true
if (userInfo) {
try {
const parsedInfo = JSON.parse(userInfo);
hasVmAccess = parsedInfo?.hasVmAccess ?? true;
} catch (e) {
console.error('Error parsing userInfo:', e);
}
}
// Store hasVmAccess for use after page loads
window.__hasVmAccess = hasVmAccess;
})();
</script>
<script src="./js/dynamic-favicon.js"></script>
<script src="./js/tab-visibility.js"></script>
<!-- Add showdown library -->
<script src="https://cdn.jsdelivr.net/npm/showdown/dist/showdown.min.js"></script>
<!-- Add DOMPurify for XSS protection -->
<script src="https://cdn.jsdelivr.net/npm/dompurify@3.0.8/dist/purify.min.js"></script>
<!-- Add Monaco Editor -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.44.0/min/vs/loader.min.js"></script>
<!-- Add PostEventSource library -->
<script src="./stream-post-client.js"></script>
<!-- Add domain config FIRST - must load before all other scripts -->
<script src
Open service 2600:9000:26db:9600:1f:b35d:8d40:93a1:443 · app.siya.com
2026-01-07 11:34
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 87426
Connection: close
Date: Wed, 07 Jan 2026 11:34:28 GMT
Last-Modified: Wed, 07 Jan 2026 10:35:53 GMT
x-amz-version-id: null
ETag: "2df736c87690f02738fae9c4baf873c0"
Server: AmazonS3
X-Cache: Miss from cloudfront
Via: 1.1 03d32b94cb61a4fdb1e546e888f089e4.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: MUC50-P3
Alt-Svc: h3=":443"; ma=86400
X-Amz-Cf-Id: QQl_sRyIZfGvTKJGCZSayb8-5R1s-m2qp-hyHu6AVlPa-EZW9CdyOA==
Page title: SIYA
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>SIYA</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link rel="stylesheet" href="./styles.css">
<link rel="stylesheet" href="./mobile.css">
<link rel="stylesheet" href="./index.css">
<link rel="stylesheet" href="./css/mcp-loader.css">
<link rel="stylesheet" href="./css/agent-selector.css">
<link rel="stylesheet" href="./css/power-toggle.css">
<link rel="stylesheet" href="./css/model-selector.css">
<link rel="stylesheet" href="./css/profile-dropdown.css">
<link rel="stylesheet" href="./css/settings-menu.css">
<link rel="stylesheet" href="./css/history-sidebar.css">
<link rel="stylesheet" href="./css/dropdown-menu.css">
<link rel="stylesheet" href="./css/file-viewer.css">
<link rel="stylesheet" href="./css/scroll-buttons.css">
<link rel="stylesheet" href="./css/automations-modal.css">
<link rel="stylesheet" href="./css/voice-recording.css">
<link rel="stylesheet" href="./css/session-prompt.css">
<link rel="stylesheet" href="./css/landing.css">
<link rel="icon" href="assets/siya-icon.png" type="image/png" />
<!-- Initial Loader Styles - Must load immediately -->
<style id="initial-loader-animation">
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
#initial-health-loader {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: white;
display: flex;
justify-content: center;
align-items: center;
z-index: 99998;
}
#initial-health-loader .spinner {
width: 40px;
height: 40px;
border: 3px solid #e3f2fd;
border-top: 3px solid #2196F3;
border-radius: 50%;
animation: spin 0.8s linear infinite;
}
body.loading {
display: none !important;
}
</style>
<!-- Early Authentication Check - Must be first to prevent unauthorized access -->
<script>
// Immediate authentication check before any page rendering
(function() {
// Check if user is logged in
const isLoggedIn = localStorage.getItem('isLoggedIn');
if (!isLoggedIn || isLoggedIn !== 'true') {
// Not logged in - redirect to login
window.location.replace('login.html');
}
// Check hasVmAccess to determine which view to show
const userInfo = localStorage.getItem('userInfo');
let hasVmAccess = true; // Default to true
if (userInfo) {
try {
const parsedInfo = JSON.parse(userInfo);
hasVmAccess = parsedInfo?.hasVmAccess ?? true;
} catch (e) {
console.error('Error parsing userInfo:', e);
}
}
// Store hasVmAccess for use after page loads
window.__hasVmAccess = hasVmAccess;
})();
</script>
<script src="./js/dynamic-favicon.js"></script>
<script src="./js/tab-visibility.js"></script>
<!-- Add showdown library -->
<script src="https://cdn.jsdelivr.net/npm/showdown/dist/showdown.min.js"></script>
<!-- Add DOMPurify for XSS protection -->
<script src="https://cdn.jsdelivr.net/npm/dompurify@3.0.8/dist/purify.min.js"></script>
<!-- Add Monaco Editor -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.44.0/min/vs/loader.min.js"></script>
<!-- Add PostEventSource library -->
<script src="./stream-post-client.js"></script>
<!-- Add domain config FIRST - must load before all other scripts -->
<script src
Open service 18.173.154.7:80 · app.siya.com
2026-01-07 11:34
HTTP/1.1 301 Moved Permanently Server: CloudFront Date: Wed, 07 Jan 2026 11:34:26 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://app.siya.com/ X-Cache: Redirect from cloudfront Via: 1.1 667b60dd320c04dc9adf041517122fc2.cloudfront.net (CloudFront) X-Amz-Cf-Pop: MUC50-P3 Alt-Svc: h3=":443"; ma=86400 X-Amz-Cf-Id: PODJmQBDpEbFmguHlSbaXRSm-r-fUAGWbU2_GT_b8LpNDruR6CXzOA== Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 2600:9000:26db:f400:1f:b35d:8d40:93a1:80 · app.siya.com
2026-01-07 11:34
HTTP/1.1 301 Moved Permanently Server: CloudFront Date: Wed, 07 Jan 2026 11:34:26 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://app.siya.com/ X-Cache: Redirect from cloudfront Via: 1.1 549ff9961325ec88cf02baa6f818172a.cloudfront.net (CloudFront) X-Amz-Cf-Pop: MUC50-P3 Alt-Svc: h3=":443"; ma=86400 X-Amz-Cf-Id: KnaRvIDlC_t-pAxZG0Na1OFDHThRc9bFCv2ldK_uRmEJUF11yrNztg== Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 2600:9000:26db:f400:1f:b35d:8d40:93a1:443 · app.siya.com
2026-01-07 11:34
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 87426
Connection: close
Date: Wed, 07 Jan 2026 11:34:27 GMT
Last-Modified: Wed, 07 Jan 2026 10:35:53 GMT
x-amz-version-id: null
ETag: "2df736c87690f02738fae9c4baf873c0"
Server: AmazonS3
X-Cache: Miss from cloudfront
Via: 1.1 08cfbbb6f1b1bf4bc1e8ab1a071b4154.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: MUC50-P3
Alt-Svc: h3=":443"; ma=86400
X-Amz-Cf-Id: p2Xr_FOaCviRrow6JQWTyD8TVhw6Xx9V67PXmLqY5Z2-2lu8_ofPEA==
Page title: SIYA
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>SIYA</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link rel="stylesheet" href="./styles.css">
<link rel="stylesheet" href="./mobile.css">
<link rel="stylesheet" href="./index.css">
<link rel="stylesheet" href="./css/mcp-loader.css">
<link rel="stylesheet" href="./css/agent-selector.css">
<link rel="stylesheet" href="./css/power-toggle.css">
<link rel="stylesheet" href="./css/model-selector.css">
<link rel="stylesheet" href="./css/profile-dropdown.css">
<link rel="stylesheet" href="./css/settings-menu.css">
<link rel="stylesheet" href="./css/history-sidebar.css">
<link rel="stylesheet" href="./css/dropdown-menu.css">
<link rel="stylesheet" href="./css/file-viewer.css">
<link rel="stylesheet" href="./css/scroll-buttons.css">
<link rel="stylesheet" href="./css/automations-modal.css">
<link rel="stylesheet" href="./css/voice-recording.css">
<link rel="stylesheet" href="./css/session-prompt.css">
<link rel="stylesheet" href="./css/landing.css">
<link rel="icon" href="assets/siya-icon.png" type="image/png" />
<!-- Initial Loader Styles - Must load immediately -->
<style id="initial-loader-animation">
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
#initial-health-loader {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: white;
display: flex;
justify-content: center;
align-items: center;
z-index: 99998;
}
#initial-health-loader .spinner {
width: 40px;
height: 40px;
border: 3px solid #e3f2fd;
border-top: 3px solid #2196F3;
border-radius: 50%;
animation: spin 0.8s linear infinite;
}
body.loading {
display: none !important;
}
</style>
<!-- Early Authentication Check - Must be first to prevent unauthorized access -->
<script>
// Immediate authentication check before any page rendering
(function() {
// Check if user is logged in
const isLoggedIn = localStorage.getItem('isLoggedIn');
if (!isLoggedIn || isLoggedIn !== 'true') {
// Not logged in - redirect to login
window.location.replace('login.html');
}
// Check hasVmAccess to determine which view to show
const userInfo = localStorage.getItem('userInfo');
let hasVmAccess = true; // Default to true
if (userInfo) {
try {
const parsedInfo = JSON.parse(userInfo);
hasVmAccess = parsedInfo?.hasVmAccess ?? true;
} catch (e) {
console.error('Error parsing userInfo:', e);
}
}
// Store hasVmAccess for use after page loads
window.__hasVmAccess = hasVmAccess;
})();
</script>
<script src="./js/dynamic-favicon.js"></script>
<script src="./js/tab-visibility.js"></script>
<!-- Add showdown library -->
<script src="https://cdn.jsdelivr.net/npm/showdown/dist/showdown.min.js"></script>
<!-- Add DOMPurify for XSS protection -->
<script src="https://cdn.jsdelivr.net/npm/dompurify@3.0.8/dist/purify.min.js"></script>
<!-- Add Monaco Editor -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.44.0/min/vs/loader.min.js"></script>
<!-- Add PostEventSource library -->
<script src="./stream-post-client.js"></script>
<!-- Add domain config FIRST - must load before all other scripts -->
<script src
Open service 2600:9000:26db:ee00:1f:b35d:8d40:93a1:80 · app.siya.com
2026-01-07 11:34
HTTP/1.1 301 Moved Permanently Server: CloudFront Date: Wed, 07 Jan 2026 11:34:26 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://app.siya.com/ X-Cache: Redirect from cloudfront Via: 1.1 66e1af4a9e82225c770ca97b3baaf86e.cloudfront.net (CloudFront) X-Amz-Cf-Pop: MUC50-P3 Alt-Svc: h3=":443"; ma=86400 X-Amz-Cf-Id: eEAnFP4I11zamS-b0twtsHD6ymONXw6_4ZuulAOry-1AVtpHrjYAqA== Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 2600:9000:26db:4600:1f:b35d:8d40:93a1:443 · app.siya.com
2026-01-07 11:34
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 87426
Connection: close
Date: Wed, 07 Jan 2026 11:34:27 GMT
Last-Modified: Wed, 07 Jan 2026 10:35:53 GMT
x-amz-version-id: null
ETag: "2df736c87690f02738fae9c4baf873c0"
Server: AmazonS3
X-Cache: Miss from cloudfront
Via: 1.1 fd4a06b35c482e680f7f3fd9baaa0090.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: MUC50-P3
Alt-Svc: h3=":443"; ma=86400
X-Amz-Cf-Id: dqLcSE-Gxpxfh-_Ig7f-rRv36_yFm0KRHQKf2csIJN7l_cd4MYo_6Q==
Page title: SIYA
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>SIYA</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link rel="stylesheet" href="./styles.css">
<link rel="stylesheet" href="./mobile.css">
<link rel="stylesheet" href="./index.css">
<link rel="stylesheet" href="./css/mcp-loader.css">
<link rel="stylesheet" href="./css/agent-selector.css">
<link rel="stylesheet" href="./css/power-toggle.css">
<link rel="stylesheet" href="./css/model-selector.css">
<link rel="stylesheet" href="./css/profile-dropdown.css">
<link rel="stylesheet" href="./css/settings-menu.css">
<link rel="stylesheet" href="./css/history-sidebar.css">
<link rel="stylesheet" href="./css/dropdown-menu.css">
<link rel="stylesheet" href="./css/file-viewer.css">
<link rel="stylesheet" href="./css/scroll-buttons.css">
<link rel="stylesheet" href="./css/automations-modal.css">
<link rel="stylesheet" href="./css/voice-recording.css">
<link rel="stylesheet" href="./css/session-prompt.css">
<link rel="stylesheet" href="./css/landing.css">
<link rel="icon" href="assets/siya-icon.png" type="image/png" />
<!-- Initial Loader Styles - Must load immediately -->
<style id="initial-loader-animation">
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
#initial-health-loader {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: white;
display: flex;
justify-content: center;
align-items: center;
z-index: 99998;
}
#initial-health-loader .spinner {
width: 40px;
height: 40px;
border: 3px solid #e3f2fd;
border-top: 3px solid #2196F3;
border-radius: 50%;
animation: spin 0.8s linear infinite;
}
body.loading {
display: none !important;
}
</style>
<!-- Early Authentication Check - Must be first to prevent unauthorized access -->
<script>
// Immediate authentication check before any page rendering
(function() {
// Check if user is logged in
const isLoggedIn = localStorage.getItem('isLoggedIn');
if (!isLoggedIn || isLoggedIn !== 'true') {
// Not logged in - redirect to login
window.location.replace('login.html');
}
// Check hasVmAccess to determine which view to show
const userInfo = localStorage.getItem('userInfo');
let hasVmAccess = true; // Default to true
if (userInfo) {
try {
const parsedInfo = JSON.parse(userInfo);
hasVmAccess = parsedInfo?.hasVmAccess ?? true;
} catch (e) {
console.error('Error parsing userInfo:', e);
}
}
// Store hasVmAccess for use after page loads
window.__hasVmAccess = hasVmAccess;
})();
</script>
<script src="./js/dynamic-favicon.js"></script>
<script src="./js/tab-visibility.js"></script>
<!-- Add showdown library -->
<script src="https://cdn.jsdelivr.net/npm/showdown/dist/showdown.min.js"></script>
<!-- Add DOMPurify for XSS protection -->
<script src="https://cdn.jsdelivr.net/npm/dompurify@3.0.8/dist/purify.min.js"></script>
<!-- Add Monaco Editor -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.44.0/min/vs/loader.min.js"></script>
<!-- Add PostEventSource library -->
<script src="./stream-post-client.js"></script>
<!-- Add domain config FIRST - must load before all other scripts -->
<script src
Open service 2600:9000:26db:ee00:1f:b35d:8d40:93a1:443 · app.siya.com
2026-01-07 11:34
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 87426
Connection: close
Date: Wed, 07 Jan 2026 11:34:28 GMT
Last-Modified: Wed, 07 Jan 2026 10:35:53 GMT
x-amz-version-id: null
ETag: "2df736c87690f02738fae9c4baf873c0"
Server: AmazonS3
X-Cache: Miss from cloudfront
Via: 1.1 03d32b94cb61a4fdb1e546e888f089e4.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: MUC50-P3
Alt-Svc: h3=":443"; ma=86400
X-Amz-Cf-Id: KWvy-qyDqdwccgmqWn5-uGduhEn8RdggJdYT71iOggOHxOMEj-yN3w==
Page title: SIYA
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>SIYA</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link rel="stylesheet" href="./styles.css">
<link rel="stylesheet" href="./mobile.css">
<link rel="stylesheet" href="./index.css">
<link rel="stylesheet" href="./css/mcp-loader.css">
<link rel="stylesheet" href="./css/agent-selector.css">
<link rel="stylesheet" href="./css/power-toggle.css">
<link rel="stylesheet" href="./css/model-selector.css">
<link rel="stylesheet" href="./css/profile-dropdown.css">
<link rel="stylesheet" href="./css/settings-menu.css">
<link rel="stylesheet" href="./css/history-sidebar.css">
<link rel="stylesheet" href="./css/dropdown-menu.css">
<link rel="stylesheet" href="./css/file-viewer.css">
<link rel="stylesheet" href="./css/scroll-buttons.css">
<link rel="stylesheet" href="./css/automations-modal.css">
<link rel="stylesheet" href="./css/voice-recording.css">
<link rel="stylesheet" href="./css/session-prompt.css">
<link rel="stylesheet" href="./css/landing.css">
<link rel="icon" href="assets/siya-icon.png" type="image/png" />
<!-- Initial Loader Styles - Must load immediately -->
<style id="initial-loader-animation">
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
#initial-health-loader {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: white;
display: flex;
justify-content: center;
align-items: center;
z-index: 99998;
}
#initial-health-loader .spinner {
width: 40px;
height: 40px;
border: 3px solid #e3f2fd;
border-top: 3px solid #2196F3;
border-radius: 50%;
animation: spin 0.8s linear infinite;
}
body.loading {
display: none !important;
}
</style>
<!-- Early Authentication Check - Must be first to prevent unauthorized access -->
<script>
// Immediate authentication check before any page rendering
(function() {
// Check if user is logged in
const isLoggedIn = localStorage.getItem('isLoggedIn');
if (!isLoggedIn || isLoggedIn !== 'true') {
// Not logged in - redirect to login
window.location.replace('login.html');
}
// Check hasVmAccess to determine which view to show
const userInfo = localStorage.getItem('userInfo');
let hasVmAccess = true; // Default to true
if (userInfo) {
try {
const parsedInfo = JSON.parse(userInfo);
hasVmAccess = parsedInfo?.hasVmAccess ?? true;
} catch (e) {
console.error('Error parsing userInfo:', e);
}
}
// Store hasVmAccess for use after page loads
window.__hasVmAccess = hasVmAccess;
})();
</script>
<script src="./js/dynamic-favicon.js"></script>
<script src="./js/tab-visibility.js"></script>
<!-- Add showdown library -->
<script src="https://cdn.jsdelivr.net/npm/showdown/dist/showdown.min.js"></script>
<!-- Add DOMPurify for XSS protection -->
<script src="https://cdn.jsdelivr.net/npm/dompurify@3.0.8/dist/purify.min.js"></script>
<!-- Add Monaco Editor -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.44.0/min/vs/loader.min.js"></script>
<!-- Add PostEventSource library -->
<script src="./stream-post-client.js"></script>
<!-- Add domain config FIRST - must load before all other scripts -->
<script src
Open service 18.173.154.7:443 · app.siya.com
2026-01-07 11:34
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 87426
Connection: close
Server: AmazonS3
Date: Wed, 07 Jan 2026 11:34:27 GMT
Last-Modified: Wed, 07 Jan 2026 10:35:53 GMT
x-amz-version-id: null
ETag: "2df736c87690f02738fae9c4baf873c0"
X-Cache: Miss from cloudfront
Via: 1.1 595547cdc2fce94aba8498c84797701a.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: MUC50-P3
Alt-Svc: h3=":443"; ma=86400
X-Amz-Cf-Id: LFv2-npPLJJh0D3Eqk35i095VWMVDWoZ889EG3pWqgRTN3-ZnKdkAA==
Page title: SIYA
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>SIYA</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link rel="stylesheet" href="./styles.css">
<link rel="stylesheet" href="./mobile.css">
<link rel="stylesheet" href="./index.css">
<link rel="stylesheet" href="./css/mcp-loader.css">
<link rel="stylesheet" href="./css/agent-selector.css">
<link rel="stylesheet" href="./css/power-toggle.css">
<link rel="stylesheet" href="./css/model-selector.css">
<link rel="stylesheet" href="./css/profile-dropdown.css">
<link rel="stylesheet" href="./css/settings-menu.css">
<link rel="stylesheet" href="./css/history-sidebar.css">
<link rel="stylesheet" href="./css/dropdown-menu.css">
<link rel="stylesheet" href="./css/file-viewer.css">
<link rel="stylesheet" href="./css/scroll-buttons.css">
<link rel="stylesheet" href="./css/automations-modal.css">
<link rel="stylesheet" href="./css/voice-recording.css">
<link rel="stylesheet" href="./css/session-prompt.css">
<link rel="stylesheet" href="./css/landing.css">
<link rel="icon" href="assets/siya-icon.png" type="image/png" />
<!-- Initial Loader Styles - Must load immediately -->
<style id="initial-loader-animation">
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
#initial-health-loader {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: white;
display: flex;
justify-content: center;
align-items: center;
z-index: 99998;
}
#initial-health-loader .spinner {
width: 40px;
height: 40px;
border: 3px solid #e3f2fd;
border-top: 3px solid #2196F3;
border-radius: 50%;
animation: spin 0.8s linear infinite;
}
body.loading {
display: none !important;
}
</style>
<!-- Early Authentication Check - Must be first to prevent unauthorized access -->
<script>
// Immediate authentication check before any page rendering
(function() {
// Check if user is logged in
const isLoggedIn = localStorage.getItem('isLoggedIn');
if (!isLoggedIn || isLoggedIn !== 'true') {
// Not logged in - redirect to login
window.location.replace('login.html');
}
// Check hasVmAccess to determine which view to show
const userInfo = localStorage.getItem('userInfo');
let hasVmAccess = true; // Default to true
if (userInfo) {
try {
const parsedInfo = JSON.parse(userInfo);
hasVmAccess = parsedInfo?.hasVmAccess ?? true;
} catch (e) {
console.error('Error parsing userInfo:', e);
}
}
// Store hasVmAccess for use after page loads
window.__hasVmAccess = hasVmAccess;
})();
</script>
<script src="./js/dynamic-favicon.js"></script>
<script src="./js/tab-visibility.js"></script>
<!-- Add showdown library -->
<script src="https://cdn.jsdelivr.net/npm/showdown/dist/showdown.min.js"></script>
<!-- Add DOMPurify for XSS protection -->
<script src="https://cdn.jsdelivr.net/npm/dompurify@3.0.8/dist/purify.min.js"></script>
<!-- Add Monaco Editor -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.44.0/min/vs/loader.min.js"></script>
<!-- Add PostEventSource library -->
<script src="./stream-post-client.js"></script>
<!-- Add domain config FIRST - must load before all other scripts -->
<script src
Open service 18.173.154.2:80 · app.siya.com
2026-01-07 11:34
HTTP/1.1 301 Moved Permanently Server: CloudFront Date: Wed, 07 Jan 2026 11:34:26 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://app.siya.com/ X-Cache: Redirect from cloudfront Via: 1.1 08cfbbb6f1b1bf4bc1e8ab1a071b4154.cloudfront.net (CloudFront) X-Amz-Cf-Pop: MUC50-P3 Alt-Svc: h3=":443"; ma=86400 X-Amz-Cf-Id: guv6rY0JqMRsZx18gtRMSfZYsQ75VQyECO4R2Wl4R7qln481A0hSiA== Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 2600:9000:26db:7800:1f:b35d:8d40:93a1:443 · app.siya.com
2026-01-07 11:34
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 87426
Connection: close
Date: Wed, 07 Jan 2026 11:34:27 GMT
Last-Modified: Wed, 07 Jan 2026 10:35:53 GMT
x-amz-version-id: null
ETag: "2df736c87690f02738fae9c4baf873c0"
Server: AmazonS3
X-Cache: Miss from cloudfront
Via: 1.1 b36a9cc0b5286fd650732f1458855500.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: MUC50-P3
Alt-Svc: h3=":443"; ma=86400
X-Amz-Cf-Id: 2tL4xJsEV9J3-ODkLN5KNfVkQ3G0okqps6wKgAzp8BjzhiSL96CnHg==
Page title: SIYA
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>SIYA</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link rel="stylesheet" href="./styles.css">
<link rel="stylesheet" href="./mobile.css">
<link rel="stylesheet" href="./index.css">
<link rel="stylesheet" href="./css/mcp-loader.css">
<link rel="stylesheet" href="./css/agent-selector.css">
<link rel="stylesheet" href="./css/power-toggle.css">
<link rel="stylesheet" href="./css/model-selector.css">
<link rel="stylesheet" href="./css/profile-dropdown.css">
<link rel="stylesheet" href="./css/settings-menu.css">
<link rel="stylesheet" href="./css/history-sidebar.css">
<link rel="stylesheet" href="./css/dropdown-menu.css">
<link rel="stylesheet" href="./css/file-viewer.css">
<link rel="stylesheet" href="./css/scroll-buttons.css">
<link rel="stylesheet" href="./css/automations-modal.css">
<link rel="stylesheet" href="./css/voice-recording.css">
<link rel="stylesheet" href="./css/session-prompt.css">
<link rel="stylesheet" href="./css/landing.css">
<link rel="icon" href="assets/siya-icon.png" type="image/png" />
<!-- Initial Loader Styles - Must load immediately -->
<style id="initial-loader-animation">
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
#initial-health-loader {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: white;
display: flex;
justify-content: center;
align-items: center;
z-index: 99998;
}
#initial-health-loader .spinner {
width: 40px;
height: 40px;
border: 3px solid #e3f2fd;
border-top: 3px solid #2196F3;
border-radius: 50%;
animation: spin 0.8s linear infinite;
}
body.loading {
display: none !important;
}
</style>
<!-- Early Authentication Check - Must be first to prevent unauthorized access -->
<script>
// Immediate authentication check before any page rendering
(function() {
// Check if user is logged in
const isLoggedIn = localStorage.getItem('isLoggedIn');
if (!isLoggedIn || isLoggedIn !== 'true') {
// Not logged in - redirect to login
window.location.replace('login.html');
}
// Check hasVmAccess to determine which view to show
const userInfo = localStorage.getItem('userInfo');
let hasVmAccess = true; // Default to true
if (userInfo) {
try {
const parsedInfo = JSON.parse(userInfo);
hasVmAccess = parsedInfo?.hasVmAccess ?? true;
} catch (e) {
console.error('Error parsing userInfo:', e);
}
}
// Store hasVmAccess for use after page loads
window.__hasVmAccess = hasVmAccess;
})();
</script>
<script src="./js/dynamic-favicon.js"></script>
<script src="./js/tab-visibility.js"></script>
<!-- Add showdown library -->
<script src="https://cdn.jsdelivr.net/npm/showdown/dist/showdown.min.js"></script>
<!-- Add DOMPurify for XSS protection -->
<script src="https://cdn.jsdelivr.net/npm/dompurify@3.0.8/dist/purify.min.js"></script>
<!-- Add Monaco Editor -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.44.0/min/vs/loader.min.js"></script>
<!-- Add PostEventSource library -->
<script src="./stream-post-client.js"></script>
<!-- Add domain config FIRST - must load before all other scripts -->
<script src
Open service 2600:9000:26db:7800:1f:b35d:8d40:93a1:80 · app.siya.com
2026-01-07 11:34
HTTP/1.1 301 Moved Permanently Server: CloudFront Date: Wed, 07 Jan 2026 11:34:26 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://app.siya.com/ X-Cache: Redirect from cloudfront Via: 1.1 ca623c10f2a669c8a9af30362937ebac.cloudfront.net (CloudFront) X-Amz-Cf-Pop: MUC50-P3 Alt-Svc: h3=":443"; ma=86400 X-Amz-Cf-Id: dl8MI3Xc9VlwzLhV39-Su3ragc3zx7dcGqjtMmyeBLZtjSWM6lVl1g== Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 2600:9000:26db:cc00:1f:b35d:8d40:93a1:443 · app.siya.com
2026-01-07 11:34
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 87426
Connection: close
Date: Wed, 07 Jan 2026 11:34:27 GMT
Last-Modified: Wed, 07 Jan 2026 10:35:53 GMT
x-amz-version-id: null
ETag: "2df736c87690f02738fae9c4baf873c0"
Server: AmazonS3
X-Cache: Miss from cloudfront
Via: 1.1 667b60dd320c04dc9adf041517122fc2.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: MUC50-P3
Alt-Svc: h3=":443"; ma=86400
X-Amz-Cf-Id: rqi9ZeYWtWqh-CEUSFVJHFWOxZT212Rdd5Gev7-rIbkHMCW6QrzccA==
Page title: SIYA
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>SIYA</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link rel="stylesheet" href="./styles.css">
<link rel="stylesheet" href="./mobile.css">
<link rel="stylesheet" href="./index.css">
<link rel="stylesheet" href="./css/mcp-loader.css">
<link rel="stylesheet" href="./css/agent-selector.css">
<link rel="stylesheet" href="./css/power-toggle.css">
<link rel="stylesheet" href="./css/model-selector.css">
<link rel="stylesheet" href="./css/profile-dropdown.css">
<link rel="stylesheet" href="./css/settings-menu.css">
<link rel="stylesheet" href="./css/history-sidebar.css">
<link rel="stylesheet" href="./css/dropdown-menu.css">
<link rel="stylesheet" href="./css/file-viewer.css">
<link rel="stylesheet" href="./css/scroll-buttons.css">
<link rel="stylesheet" href="./css/automations-modal.css">
<link rel="stylesheet" href="./css/voice-recording.css">
<link rel="stylesheet" href="./css/session-prompt.css">
<link rel="stylesheet" href="./css/landing.css">
<link rel="icon" href="assets/siya-icon.png" type="image/png" />
<!-- Initial Loader Styles - Must load immediately -->
<style id="initial-loader-animation">
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
#initial-health-loader {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: white;
display: flex;
justify-content: center;
align-items: center;
z-index: 99998;
}
#initial-health-loader .spinner {
width: 40px;
height: 40px;
border: 3px solid #e3f2fd;
border-top: 3px solid #2196F3;
border-radius: 50%;
animation: spin 0.8s linear infinite;
}
body.loading {
display: none !important;
}
</style>
<!-- Early Authentication Check - Must be first to prevent unauthorized access -->
<script>
// Immediate authentication check before any page rendering
(function() {
// Check if user is logged in
const isLoggedIn = localStorage.getItem('isLoggedIn');
if (!isLoggedIn || isLoggedIn !== 'true') {
// Not logged in - redirect to login
window.location.replace('login.html');
}
// Check hasVmAccess to determine which view to show
const userInfo = localStorage.getItem('userInfo');
let hasVmAccess = true; // Default to true
if (userInfo) {
try {
const parsedInfo = JSON.parse(userInfo);
hasVmAccess = parsedInfo?.hasVmAccess ?? true;
} catch (e) {
console.error('Error parsing userInfo:', e);
}
}
// Store hasVmAccess for use after page loads
window.__hasVmAccess = hasVmAccess;
})();
</script>
<script src="./js/dynamic-favicon.js"></script>
<script src="./js/tab-visibility.js"></script>
<!-- Add showdown library -->
<script src="https://cdn.jsdelivr.net/npm/showdown/dist/showdown.min.js"></script>
<!-- Add DOMPurify for XSS protection -->
<script src="https://cdn.jsdelivr.net/npm/dompurify@3.0.8/dist/purify.min.js"></script>
<!-- Add Monaco Editor -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.44.0/min/vs/loader.min.js"></script>
<!-- Add PostEventSource library -->
<script src="./stream-post-client.js"></script>
<!-- Add domain config FIRST - must load before all other scripts -->
<script src
Open service 2600:9000:26db:cc00:1f:b35d:8d40:93a1:80 · app.siya.com
2026-01-07 11:34
HTTP/1.1 301 Moved Permanently Server: CloudFront Date: Wed, 07 Jan 2026 11:34:26 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://app.siya.com/ X-Cache: Redirect from cloudfront Via: 1.1 b9c5f3514baef1f70c91fc9b0be37d2e.cloudfront.net (CloudFront) X-Amz-Cf-Pop: MUC50-P3 Alt-Svc: h3=":443"; ma=86400 X-Amz-Cf-Id: w_ruJmsu5AJChAoVerBcQbjs9UsU0wPZAcnDKN6R5qVQDR36ZTLPWw== Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 2600:9000:26db:2200:1f:b35d:8d40:93a1:443 · app.siya.com
2026-01-07 11:34
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 87426
Connection: close
Date: Wed, 07 Jan 2026 11:34:27 GMT
Last-Modified: Wed, 07 Jan 2026 10:35:53 GMT
x-amz-version-id: null
ETag: "2df736c87690f02738fae9c4baf873c0"
Server: AmazonS3
X-Cache: Miss from cloudfront
Via: 1.1 2d22bd8fe92380401bbc1d8cc010e5a0.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: MUC50-P3
Alt-Svc: h3=":443"; ma=86400
X-Amz-Cf-Id: 6kPijP68YzX-4pzq6DNyS1tP8-MH2FnO9A7gMRUVBkL2twkGOQ5JDw==
Page title: SIYA
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>SIYA</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link rel="stylesheet" href="./styles.css">
<link rel="stylesheet" href="./mobile.css">
<link rel="stylesheet" href="./index.css">
<link rel="stylesheet" href="./css/mcp-loader.css">
<link rel="stylesheet" href="./css/agent-selector.css">
<link rel="stylesheet" href="./css/power-toggle.css">
<link rel="stylesheet" href="./css/model-selector.css">
<link rel="stylesheet" href="./css/profile-dropdown.css">
<link rel="stylesheet" href="./css/settings-menu.css">
<link rel="stylesheet" href="./css/history-sidebar.css">
<link rel="stylesheet" href="./css/dropdown-menu.css">
<link rel="stylesheet" href="./css/file-viewer.css">
<link rel="stylesheet" href="./css/scroll-buttons.css">
<link rel="stylesheet" href="./css/automations-modal.css">
<link rel="stylesheet" href="./css/voice-recording.css">
<link rel="stylesheet" href="./css/session-prompt.css">
<link rel="stylesheet" href="./css/landing.css">
<link rel="icon" href="assets/siya-icon.png" type="image/png" />
<!-- Initial Loader Styles - Must load immediately -->
<style id="initial-loader-animation">
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
#initial-health-loader {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: white;
display: flex;
justify-content: center;
align-items: center;
z-index: 99998;
}
#initial-health-loader .spinner {
width: 40px;
height: 40px;
border: 3px solid #e3f2fd;
border-top: 3px solid #2196F3;
border-radius: 50%;
animation: spin 0.8s linear infinite;
}
body.loading {
display: none !important;
}
</style>
<!-- Early Authentication Check - Must be first to prevent unauthorized access -->
<script>
// Immediate authentication check before any page rendering
(function() {
// Check if user is logged in
const isLoggedIn = localStorage.getItem('isLoggedIn');
if (!isLoggedIn || isLoggedIn !== 'true') {
// Not logged in - redirect to login
window.location.replace('login.html');
}
// Check hasVmAccess to determine which view to show
const userInfo = localStorage.getItem('userInfo');
let hasVmAccess = true; // Default to true
if (userInfo) {
try {
const parsedInfo = JSON.parse(userInfo);
hasVmAccess = parsedInfo?.hasVmAccess ?? true;
} catch (e) {
console.error('Error parsing userInfo:', e);
}
}
// Store hasVmAccess for use after page loads
window.__hasVmAccess = hasVmAccess;
})();
</script>
<script src="./js/dynamic-favicon.js"></script>
<script src="./js/tab-visibility.js"></script>
<!-- Add showdown library -->
<script src="https://cdn.jsdelivr.net/npm/showdown/dist/showdown.min.js"></script>
<!-- Add DOMPurify for XSS protection -->
<script src="https://cdn.jsdelivr.net/npm/dompurify@3.0.8/dist/purify.min.js"></script>
<!-- Add Monaco Editor -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.44.0/min/vs/loader.min.js"></script>
<!-- Add PostEventSource library -->
<script src="./stream-post-client.js"></script>
<!-- Add domain config FIRST - must load before all other scripts -->
<script src
Open service 2600:9000:26db:4600:1f:b35d:8d40:93a1:80 · app.siya.com
2026-01-07 11:34
HTTP/1.1 301 Moved Permanently Server: CloudFront Date: Wed, 07 Jan 2026 11:34:26 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://app.siya.com/ X-Cache: Redirect from cloudfront Via: 1.1 9564791ed47030dad53c797ee814c66e.cloudfront.net (CloudFront) X-Amz-Cf-Pop: MUC50-P3 Alt-Svc: h3=":443"; ma=86400 X-Amz-Cf-Id: jG1NEyqnXwQTJ5tX1OIw5s5Egb69n0wz1QaNa5w7X9yVuepy-C99bw== Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 18.173.154.91:443 · app.siya.com
2026-01-07 11:34
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 87426
Connection: close
Server: AmazonS3
Date: Wed, 07 Jan 2026 11:34:27 GMT
Last-Modified: Wed, 07 Jan 2026 10:35:53 GMT
x-amz-version-id: null
ETag: "2df736c87690f02738fae9c4baf873c0"
X-Cache: Miss from cloudfront
Via: 1.1 667b60dd320c04dc9adf041517122fc2.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: MUC50-P3
Alt-Svc: h3=":443"; ma=86400
X-Amz-Cf-Id: h-QCOdpyPzIzmq4mtpNimSj1fj_7O0k-Kuu3KXRD_CtxXpqisJ7RWA==
Page title: SIYA
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>SIYA</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link rel="stylesheet" href="./styles.css">
<link rel="stylesheet" href="./mobile.css">
<link rel="stylesheet" href="./index.css">
<link rel="stylesheet" href="./css/mcp-loader.css">
<link rel="stylesheet" href="./css/agent-selector.css">
<link rel="stylesheet" href="./css/power-toggle.css">
<link rel="stylesheet" href="./css/model-selector.css">
<link rel="stylesheet" href="./css/profile-dropdown.css">
<link rel="stylesheet" href="./css/settings-menu.css">
<link rel="stylesheet" href="./css/history-sidebar.css">
<link rel="stylesheet" href="./css/dropdown-menu.css">
<link rel="stylesheet" href="./css/file-viewer.css">
<link rel="stylesheet" href="./css/scroll-buttons.css">
<link rel="stylesheet" href="./css/automations-modal.css">
<link rel="stylesheet" href="./css/voice-recording.css">
<link rel="stylesheet" href="./css/session-prompt.css">
<link rel="stylesheet" href="./css/landing.css">
<link rel="icon" href="assets/siya-icon.png" type="image/png" />
<!-- Initial Loader Styles - Must load immediately -->
<style id="initial-loader-animation">
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
#initial-health-loader {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: white;
display: flex;
justify-content: center;
align-items: center;
z-index: 99998;
}
#initial-health-loader .spinner {
width: 40px;
height: 40px;
border: 3px solid #e3f2fd;
border-top: 3px solid #2196F3;
border-radius: 50%;
animation: spin 0.8s linear infinite;
}
body.loading {
display: none !important;
}
</style>
<!-- Early Authentication Check - Must be first to prevent unauthorized access -->
<script>
// Immediate authentication check before any page rendering
(function() {
// Check if user is logged in
const isLoggedIn = localStorage.getItem('isLoggedIn');
if (!isLoggedIn || isLoggedIn !== 'true') {
// Not logged in - redirect to login
window.location.replace('login.html');
}
// Check hasVmAccess to determine which view to show
const userInfo = localStorage.getItem('userInfo');
let hasVmAccess = true; // Default to true
if (userInfo) {
try {
const parsedInfo = JSON.parse(userInfo);
hasVmAccess = parsedInfo?.hasVmAccess ?? true;
} catch (e) {
console.error('Error parsing userInfo:', e);
}
}
// Store hasVmAccess for use after page loads
window.__hasVmAccess = hasVmAccess;
})();
</script>
<script src="./js/dynamic-favicon.js"></script>
<script src="./js/tab-visibility.js"></script>
<!-- Add showdown library -->
<script src="https://cdn.jsdelivr.net/npm/showdown/dist/showdown.min.js"></script>
<!-- Add DOMPurify for XSS protection -->
<script src="https://cdn.jsdelivr.net/npm/dompurify@3.0.8/dist/purify.min.js"></script>
<!-- Add Monaco Editor -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.44.0/min/vs/loader.min.js"></script>
<!-- Add PostEventSource library -->
<script src="./stream-post-client.js"></script>
<!-- Add domain config FIRST - must load before all other scripts -->
<script src
Open service 2600:9000:26da:5e00:13:e6df:d80:93a1:80 · app.siya.com
2025-12-31 11:51
HTTP/1.1 301 Moved Permanently Server: CloudFront Date: Wed, 31 Dec 2025 11:51:15 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://app.siya.com/ X-Cache: Redirect from cloudfront Via: 1.1 7949f2957c23173b6f2b16db26ab42f6.cloudfront.net (CloudFront) X-Amz-Cf-Pop: MUC50-P4 Alt-Svc: h3=":443"; ma=86400 X-Amz-Cf-Id: jAYjywc4F4OpWuiyXZPnvYOhDi6cK8colC-jsGCvqxSOdz9NFq1G3A== X-XSS-Protection: 1; mode=block X-Frame-Options: SAMEORIGIN Referrer-Policy: strict-origin-when-cross-origin X-Content-Type-Options: nosniff Vary: Origin Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 2600:9000:26da:ae00:13:e6df:d80:93a1:80 · app.siya.com
2025-12-31 11:51
HTTP/1.1 301 Moved Permanently Server: CloudFront Date: Wed, 31 Dec 2025 11:51:15 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://app.siya.com/ X-Cache: Redirect from cloudfront Via: 1.1 b2825f5e779aaa7a75e20fcfeee23920.cloudfront.net (CloudFront) X-Amz-Cf-Pop: MUC50-P4 Alt-Svc: h3=":443"; ma=86400 X-Amz-Cf-Id: 0hQuJgwHBCBARovrpo9Bo9gEuMyHvbLbCXEKn298g9SrS2555wdFhw== X-XSS-Protection: 1; mode=block X-Frame-Options: SAMEORIGIN Referrer-Policy: strict-origin-when-cross-origin X-Content-Type-Options: nosniff Vary: Origin Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 2600:9000:26da:a200:13:e6df:d80:93a1:80 · app.siya.com
2025-12-31 11:51
HTTP/1.1 301 Moved Permanently Server: CloudFront Date: Wed, 31 Dec 2025 11:51:15 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://app.siya.com/ X-Cache: Redirect from cloudfront Via: 1.1 de8b46af7190cc021fd8b12be6996a2e.cloudfront.net (CloudFront) X-Amz-Cf-Pop: MUC50-P4 Alt-Svc: h3=":443"; ma=86400 X-Amz-Cf-Id: uSc8u7aJFxINY8TWuvaxjfy2wTRsEKWFaD4jUgOOyPqSOI119d1w5A== X-XSS-Protection: 1; mode=block X-Frame-Options: SAMEORIGIN Referrer-Policy: strict-origin-when-cross-origin X-Content-Type-Options: nosniff Vary: Origin Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 2600:9000:26da:a200:13:e6df:d80:93a1:443 · app.siya.com
2025-12-31 11:51
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 87346
Connection: close
Date: Wed, 31 Dec 2025 11:51:16 GMT
Last-Modified: Tue, 30 Dec 2025 12:04:09 GMT
ETag: "820438d3d032460de8536b66bc18de0b"
Server: AmazonS3
X-Cache: Hit from cloudfront
Via: 1.1 ed0321bab00e6823808eaacb7b137e08.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: MUC50-P4
Alt-Svc: h3=":443"; ma=86400
X-Amz-Cf-Id: UGMxEhoEizT-m_OyP0pdnhRyzUW7u2ebTayMJfW35smYWVlvvLNRgw==
Age: 1
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Referrer-Policy: strict-origin-when-cross-origin
X-Content-Type-Options: nosniff
Strict-Transport-Security: max-age=31536000
Vary: Origin
Page title: SIYA
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>SIYA</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link rel="stylesheet" href="./styles.css">
<link rel="stylesheet" href="./mobile.css">
<link rel="stylesheet" href="./index.css">
<link rel="stylesheet" href="./css/mcp-loader.css">
<link rel="stylesheet" href="./css/agent-selector.css">
<link rel="stylesheet" href="./css/power-toggle.css">
<link rel="stylesheet" href="./css/model-selector.css">
<link rel="stylesheet" href="./css/profile-dropdown.css">
<link rel="stylesheet" href="./css/settings-menu.css">
<link rel="stylesheet" href="./css/history-sidebar.css">
<link rel="stylesheet" href="./css/dropdown-menu.css">
<link rel="stylesheet" href="./css/file-viewer.css">
<link rel="stylesheet" href="./css/scroll-buttons.css">
<link rel="stylesheet" href="./css/automations-modal.css">
<link rel="stylesheet" href="./css/voice-recording.css">
<link rel="stylesheet" href="./css/session-prompt.css">
<link rel="stylesheet" href="./css/landing.css">
<link rel="icon" href="assets/siya-icon.png" type="image/png" />
<!-- Initial Loader Styles - Must load immediately -->
<style id="initial-loader-animation">
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
#initial-health-loader {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: white;
display: flex;
justify-content: center;
align-items: center;
z-index: 99998;
}
#initial-health-loader .spinner {
width: 40px;
height: 40px;
border: 3px solid #e3f2fd;
border-top: 3px solid #2196F3;
border-radius: 50%;
animation: spin 0.8s linear infinite;
}
body.loading {
display: none !important;
}
</style>
<!-- Early Authentication Check - Must be first to prevent unauthorized access -->
<script>
// Immediate authentication check before any page rendering
(function() {
// Check if user is logged in
const isLoggedIn = localStorage.getItem('isLoggedIn');
if (!isLoggedIn || isLoggedIn !== 'true') {
// Not logged in - redirect to login
window.location.replace('login.html');
}
// Check hasVmAccess to determine which view to show
const userInfo = localStorage.getItem('userInfo');
let hasVmAccess = true; // Default to true
if (userInfo) {
try {
const parsedInfo = JSON.parse(userInfo);
hasVmAccess = parsedInfo?.hasVmAccess ?? true;
} catch (e) {
console.error('Error parsing userInfo:', e);
}
}
// Store hasVmAccess for use after page loads
window.__hasVmAccess = hasVmAccess;
})();
</script>
<script src="./js/dynamic-favicon.js"></script>
<script src="./js/tab-visibility.js"></script>
<!-- Add showdown library -->
<script src="https://cdn.jsdelivr.net/npm/showdown/dist/showdown.min.js"></script>
<!-- Add DOMPurify for XSS protection -->
<script src="https://cdn.jsdelivr.net/npm/dompurify@3.0.8/dist/purify.min.js"></script>
<!-- Add Monaco Editor -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.44.0/min/vs/loader.min.js"></script>
<!-- Add PostEventSource library -->
<script src="./stream-post-client.js"></script>
<!-- Add domain config FIRST - must load before all other scripts -->
<script src
Open service 18.173.187.115:443 · app.siya.com
2025-12-31 11:51
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 87346
Connection: close
Date: Wed, 31 Dec 2025 11:51:16 GMT
Last-Modified: Tue, 30 Dec 2025 12:04:09 GMT
ETag: "820438d3d032460de8536b66bc18de0b"
Server: AmazonS3
X-Cache: Hit from cloudfront
Via: 1.1 de8b46af7190cc021fd8b12be6996a2e.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: MUC50-P4
Alt-Svc: h3=":443"; ma=86400
X-Amz-Cf-Id: d7UKnrHJlMecRrYflmdIO_k2SsAlhVJxcYi2VvQNH6aLMR_XgyTjsA==
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Referrer-Policy: strict-origin-when-cross-origin
X-Content-Type-Options: nosniff
Strict-Transport-Security: max-age=31536000
Vary: Origin
Page title: SIYA
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>SIYA</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link rel="stylesheet" href="./styles.css">
<link rel="stylesheet" href="./mobile.css">
<link rel="stylesheet" href="./index.css">
<link rel="stylesheet" href="./css/mcp-loader.css">
<link rel="stylesheet" href="./css/agent-selector.css">
<link rel="stylesheet" href="./css/power-toggle.css">
<link rel="stylesheet" href="./css/model-selector.css">
<link rel="stylesheet" href="./css/profile-dropdown.css">
<link rel="stylesheet" href="./css/settings-menu.css">
<link rel="stylesheet" href="./css/history-sidebar.css">
<link rel="stylesheet" href="./css/dropdown-menu.css">
<link rel="stylesheet" href="./css/file-viewer.css">
<link rel="stylesheet" href="./css/scroll-buttons.css">
<link rel="stylesheet" href="./css/automations-modal.css">
<link rel="stylesheet" href="./css/voice-recording.css">
<link rel="stylesheet" href="./css/session-prompt.css">
<link rel="stylesheet" href="./css/landing.css">
<link rel="icon" href="assets/siya-icon.png" type="image/png" />
<!-- Initial Loader Styles - Must load immediately -->
<style id="initial-loader-animation">
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
#initial-health-loader {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: white;
display: flex;
justify-content: center;
align-items: center;
z-index: 99998;
}
#initial-health-loader .spinner {
width: 40px;
height: 40px;
border: 3px solid #e3f2fd;
border-top: 3px solid #2196F3;
border-radius: 50%;
animation: spin 0.8s linear infinite;
}
body.loading {
display: none !important;
}
</style>
<!-- Early Authentication Check - Must be first to prevent unauthorized access -->
<script>
// Immediate authentication check before any page rendering
(function() {
// Check if user is logged in
const isLoggedIn = localStorage.getItem('isLoggedIn');
if (!isLoggedIn || isLoggedIn !== 'true') {
// Not logged in - redirect to login
window.location.replace('login.html');
}
// Check hasVmAccess to determine which view to show
const userInfo = localStorage.getItem('userInfo');
let hasVmAccess = true; // Default to true
if (userInfo) {
try {
const parsedInfo = JSON.parse(userInfo);
hasVmAccess = parsedInfo?.hasVmAccess ?? true;
} catch (e) {
console.error('Error parsing userInfo:', e);
}
}
// Store hasVmAccess for use after page loads
window.__hasVmAccess = hasVmAccess;
})();
</script>
<script src="./js/dynamic-favicon.js"></script>
<script src="./js/tab-visibility.js"></script>
<!-- Add showdown library -->
<script src="https://cdn.jsdelivr.net/npm/showdown/dist/showdown.min.js"></script>
<!-- Add DOMPurify for XSS protection -->
<script src="https://cdn.jsdelivr.net/npm/dompurify@3.0.8/dist/purify.min.js"></script>
<!-- Add Monaco Editor -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.44.0/min/vs/loader.min.js"></script>
<!-- Add PostEventSource library -->
<script src="./stream-post-client.js"></script>
<!-- Add domain config FIRST - must load before all other scripts -->
<script src
Open service 2600:9000:26da:5200:13:e6df:d80:93a1:443 · app.siya.com
2025-12-31 11:51
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 87346
Connection: close
Date: Wed, 31 Dec 2025 11:51:16 GMT
Last-Modified: Tue, 30 Dec 2025 12:04:09 GMT
ETag: "820438d3d032460de8536b66bc18de0b"
Server: AmazonS3
X-Cache: Hit from cloudfront
Via: 1.1 541abc390c35db77f7d121c96f0661ec.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: MUC50-P4
Alt-Svc: h3=":443"; ma=86400
X-Amz-Cf-Id: rpiPkZ7OzdVJWDtnoku6EksFSL49YSjWgfrDQ2ejap7FDFzr94150g==
Age: 1
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Referrer-Policy: strict-origin-when-cross-origin
X-Content-Type-Options: nosniff
Strict-Transport-Security: max-age=31536000
Vary: Origin
Page title: SIYA
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>SIYA</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link rel="stylesheet" href="./styles.css">
<link rel="stylesheet" href="./mobile.css">
<link rel="stylesheet" href="./index.css">
<link rel="stylesheet" href="./css/mcp-loader.css">
<link rel="stylesheet" href="./css/agent-selector.css">
<link rel="stylesheet" href="./css/power-toggle.css">
<link rel="stylesheet" href="./css/model-selector.css">
<link rel="stylesheet" href="./css/profile-dropdown.css">
<link rel="stylesheet" href="./css/settings-menu.css">
<link rel="stylesheet" href="./css/history-sidebar.css">
<link rel="stylesheet" href="./css/dropdown-menu.css">
<link rel="stylesheet" href="./css/file-viewer.css">
<link rel="stylesheet" href="./css/scroll-buttons.css">
<link rel="stylesheet" href="./css/automations-modal.css">
<link rel="stylesheet" href="./css/voice-recording.css">
<link rel="stylesheet" href="./css/session-prompt.css">
<link rel="stylesheet" href="./css/landing.css">
<link rel="icon" href="assets/siya-icon.png" type="image/png" />
<!-- Initial Loader Styles - Must load immediately -->
<style id="initial-loader-animation">
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
#initial-health-loader {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: white;
display: flex;
justify-content: center;
align-items: center;
z-index: 99998;
}
#initial-health-loader .spinner {
width: 40px;
height: 40px;
border: 3px solid #e3f2fd;
border-top: 3px solid #2196F3;
border-radius: 50%;
animation: spin 0.8s linear infinite;
}
body.loading {
display: none !important;
}
</style>
<!-- Early Authentication Check - Must be first to prevent unauthorized access -->
<script>
// Immediate authentication check before any page rendering
(function() {
// Check if user is logged in
const isLoggedIn = localStorage.getItem('isLoggedIn');
if (!isLoggedIn || isLoggedIn !== 'true') {
// Not logged in - redirect to login
window.location.replace('login.html');
}
// Check hasVmAccess to determine which view to show
const userInfo = localStorage.getItem('userInfo');
let hasVmAccess = true; // Default to true
if (userInfo) {
try {
const parsedInfo = JSON.parse(userInfo);
hasVmAccess = parsedInfo?.hasVmAccess ?? true;
} catch (e) {
console.error('Error parsing userInfo:', e);
}
}
// Store hasVmAccess for use after page loads
window.__hasVmAccess = hasVmAccess;
})();
</script>
<script src="./js/dynamic-favicon.js"></script>
<script src="./js/tab-visibility.js"></script>
<!-- Add showdown library -->
<script src="https://cdn.jsdelivr.net/npm/showdown/dist/showdown.min.js"></script>
<!-- Add DOMPurify for XSS protection -->
<script src="https://cdn.jsdelivr.net/npm/dompurify@3.0.8/dist/purify.min.js"></script>
<!-- Add Monaco Editor -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.44.0/min/vs/loader.min.js"></script>
<!-- Add PostEventSource library -->
<script src="./stream-post-client.js"></script>
<!-- Add domain config FIRST - must load before all other scripts -->
<script src
Open service 2600:9000:26da:e00:13:e6df:d80:93a1:80 · app.siya.com
2025-12-31 11:51
HTTP/1.1 301 Moved Permanently Server: CloudFront Date: Wed, 31 Dec 2025 11:51:14 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://app.siya.com/ X-Cache: Redirect from cloudfront Via: 1.1 0b2ae559ee268e62d32798bba4c8c014.cloudfront.net (CloudFront) X-Amz-Cf-Pop: MUC50-P4 Alt-Svc: h3=":443"; ma=86400 X-Amz-Cf-Id: Ld2Tqlxd5ItUTt1escUJ6DQk-4xfzWTOSPklTuNWC2MM8wtadbuoJg== X-XSS-Protection: 1; mode=block X-Frame-Options: SAMEORIGIN Referrer-Policy: strict-origin-when-cross-origin X-Content-Type-Options: nosniff Vary: Origin Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 2600:9000:26da:e00:13:e6df:d80:93a1:443 · app.siya.com
2025-12-31 11:51
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 87346
Connection: close
Date: Wed, 31 Dec 2025 11:51:16 GMT
Last-Modified: Tue, 30 Dec 2025 12:04:09 GMT
ETag: "820438d3d032460de8536b66bc18de0b"
Server: AmazonS3
X-Cache: Miss from cloudfront
Via: 1.1 512a3ed98fa59f06791d5919b48bcde0.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: MUC50-P4
Alt-Svc: h3=":443"; ma=86400
X-Amz-Cf-Id: Ll_QiCpeKbEwmMtMV3Frx22nUvG7U5R5fgR69H4iGHKQCe57wVPOoA==
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Referrer-Policy: strict-origin-when-cross-origin
X-Content-Type-Options: nosniff
Strict-Transport-Security: max-age=31536000
Vary: Origin
Page title: SIYA
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>SIYA</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link rel="stylesheet" href="./styles.css">
<link rel="stylesheet" href="./mobile.css">
<link rel="stylesheet" href="./index.css">
<link rel="stylesheet" href="./css/mcp-loader.css">
<link rel="stylesheet" href="./css/agent-selector.css">
<link rel="stylesheet" href="./css/power-toggle.css">
<link rel="stylesheet" href="./css/model-selector.css">
<link rel="stylesheet" href="./css/profile-dropdown.css">
<link rel="stylesheet" href="./css/settings-menu.css">
<link rel="stylesheet" href="./css/history-sidebar.css">
<link rel="stylesheet" href="./css/dropdown-menu.css">
<link rel="stylesheet" href="./css/file-viewer.css">
<link rel="stylesheet" href="./css/scroll-buttons.css">
<link rel="stylesheet" href="./css/automations-modal.css">
<link rel="stylesheet" href="./css/voice-recording.css">
<link rel="stylesheet" href="./css/session-prompt.css">
<link rel="stylesheet" href="./css/landing.css">
<link rel="icon" href="assets/siya-icon.png" type="image/png" />
<!-- Initial Loader Styles - Must load immediately -->
<style id="initial-loader-animation">
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
#initial-health-loader {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: white;
display: flex;
justify-content: center;
align-items: center;
z-index: 99998;
}
#initial-health-loader .spinner {
width: 40px;
height: 40px;
border: 3px solid #e3f2fd;
border-top: 3px solid #2196F3;
border-radius: 50%;
animation: spin 0.8s linear infinite;
}
body.loading {
display: none !important;
}
</style>
<!-- Early Authentication Check - Must be first to prevent unauthorized access -->
<script>
// Immediate authentication check before any page rendering
(function() {
// Check if user is logged in
const isLoggedIn = localStorage.getItem('isLoggedIn');
if (!isLoggedIn || isLoggedIn !== 'true') {
// Not logged in - redirect to login
window.location.replace('login.html');
}
// Check hasVmAccess to determine which view to show
const userInfo = localStorage.getItem('userInfo');
let hasVmAccess = true; // Default to true
if (userInfo) {
try {
const parsedInfo = JSON.parse(userInfo);
hasVmAccess = parsedInfo?.hasVmAccess ?? true;
} catch (e) {
console.error('Error parsing userInfo:', e);
}
}
// Store hasVmAccess for use after page loads
window.__hasVmAccess = hasVmAccess;
})();
</script>
<script src="./js/dynamic-favicon.js"></script>
<script src="./js/tab-visibility.js"></script>
<!-- Add showdown library -->
<script src="https://cdn.jsdelivr.net/npm/showdown/dist/showdown.min.js"></script>
<!-- Add DOMPurify for XSS protection -->
<script src="https://cdn.jsdelivr.net/npm/dompurify@3.0.8/dist/purify.min.js"></script>
<!-- Add Monaco Editor -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.44.0/min/vs/loader.min.js"></script>
<!-- Add PostEventSource library -->
<script src="./stream-post-client.js"></script>
<!-- Add domain config FIRST - must load before all other scripts -->
<script src
Open service 2600:9000:26da:5200:13:e6df:d80:93a1:80 · app.siya.com
2025-12-31 11:51
HTTP/1.1 301 Moved Permanently Server: CloudFront Date: Wed, 31 Dec 2025 11:51:14 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://app.siya.com/ X-Cache: Redirect from cloudfront Via: 1.1 25a522e44c88aba621285693935f1eaa.cloudfront.net (CloudFront) X-Amz-Cf-Pop: MUC50-P4 Alt-Svc: h3=":443"; ma=86400 X-Amz-Cf-Id: jqRwarFFEqTn7N2_EoOIg1o4iE5XxhriM8Vs4HbsMqmmuSyznQDSSg== X-XSS-Protection: 1; mode=block X-Frame-Options: SAMEORIGIN Referrer-Policy: strict-origin-when-cross-origin X-Content-Type-Options: nosniff Vary: Origin Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 2600:9000:26da:ae00:13:e6df:d80:93a1:443 · app.siya.com
2025-12-31 11:51
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 87346
Connection: close
Date: Wed, 31 Dec 2025 11:51:16 GMT
Last-Modified: Tue, 30 Dec 2025 12:04:09 GMT
ETag: "820438d3d032460de8536b66bc18de0b"
Server: AmazonS3
X-Cache: Miss from cloudfront
Via: 1.1 be531aac2dc594e7dcbc7bf54e3b6504.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: MUC50-P4
Alt-Svc: h3=":443"; ma=86400
X-Amz-Cf-Id: VoND5iJcyHqFfP7q8IcKmxK5Sbagn2nk6h3bk-XC4-TV-Vo6ujFn1A==
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Referrer-Policy: strict-origin-when-cross-origin
X-Content-Type-Options: nosniff
Strict-Transport-Security: max-age=31536000
Vary: Origin
Page title: SIYA
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>SIYA</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link rel="stylesheet" href="./styles.css">
<link rel="stylesheet" href="./mobile.css">
<link rel="stylesheet" href="./index.css">
<link rel="stylesheet" href="./css/mcp-loader.css">
<link rel="stylesheet" href="./css/agent-selector.css">
<link rel="stylesheet" href="./css/power-toggle.css">
<link rel="stylesheet" href="./css/model-selector.css">
<link rel="stylesheet" href="./css/profile-dropdown.css">
<link rel="stylesheet" href="./css/settings-menu.css">
<link rel="stylesheet" href="./css/history-sidebar.css">
<link rel="stylesheet" href="./css/dropdown-menu.css">
<link rel="stylesheet" href="./css/file-viewer.css">
<link rel="stylesheet" href="./css/scroll-buttons.css">
<link rel="stylesheet" href="./css/automations-modal.css">
<link rel="stylesheet" href="./css/voice-recording.css">
<link rel="stylesheet" href="./css/session-prompt.css">
<link rel="stylesheet" href="./css/landing.css">
<link rel="icon" href="assets/siya-icon.png" type="image/png" />
<!-- Initial Loader Styles - Must load immediately -->
<style id="initial-loader-animation">
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
#initial-health-loader {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: white;
display: flex;
justify-content: center;
align-items: center;
z-index: 99998;
}
#initial-health-loader .spinner {
width: 40px;
height: 40px;
border: 3px solid #e3f2fd;
border-top: 3px solid #2196F3;
border-radius: 50%;
animation: spin 0.8s linear infinite;
}
body.loading {
display: none !important;
}
</style>
<!-- Early Authentication Check - Must be first to prevent unauthorized access -->
<script>
// Immediate authentication check before any page rendering
(function() {
// Check if user is logged in
const isLoggedIn = localStorage.getItem('isLoggedIn');
if (!isLoggedIn || isLoggedIn !== 'true') {
// Not logged in - redirect to login
window.location.replace('login.html');
}
// Check hasVmAccess to determine which view to show
const userInfo = localStorage.getItem('userInfo');
let hasVmAccess = true; // Default to true
if (userInfo) {
try {
const parsedInfo = JSON.parse(userInfo);
hasVmAccess = parsedInfo?.hasVmAccess ?? true;
} catch (e) {
console.error('Error parsing userInfo:', e);
}
}
// Store hasVmAccess for use after page loads
window.__hasVmAccess = hasVmAccess;
})();
</script>
<script src="./js/dynamic-favicon.js"></script>
<script src="./js/tab-visibility.js"></script>
<!-- Add showdown library -->
<script src="https://cdn.jsdelivr.net/npm/showdown/dist/showdown.min.js"></script>
<!-- Add DOMPurify for XSS protection -->
<script src="https://cdn.jsdelivr.net/npm/dompurify@3.0.8/dist/purify.min.js"></script>
<!-- Add Monaco Editor -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.44.0/min/vs/loader.min.js"></script>
<!-- Add PostEventSource library -->
<script src="./stream-post-client.js"></script>
<!-- Add domain config FIRST - must load before all other scripts -->
<script src
Open service 18.173.187.115:80 · app.siya.com
2025-12-31 11:51
HTTP/1.1 301 Moved Permanently Server: CloudFront Date: Wed, 31 Dec 2025 11:51:15 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://app.siya.com/ X-Cache: Redirect from cloudfront Via: 1.1 512a3ed98fa59f06791d5919b48bcde0.cloudfront.net (CloudFront) X-Amz-Cf-Pop: MUC50-P4 Alt-Svc: h3=":443"; ma=86400 X-Amz-Cf-Id: zrfPp4dzfi7WAD-QmU58mnkbOwtSwbyCf4tmAWh5Eu6FzyxcYnFoUA== X-XSS-Protection: 1; mode=block X-Frame-Options: SAMEORIGIN Referrer-Policy: strict-origin-when-cross-origin X-Content-Type-Options: nosniff Vary: Origin Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 18.173.187.25:80 · app.siya.com
2025-12-31 11:51
HTTP/1.1 301 Moved Permanently Server: CloudFront Date: Wed, 31 Dec 2025 11:51:15 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://app.siya.com/ X-Cache: Redirect from cloudfront Via: 1.1 7bf4f64fa64e134b5dbb63cabb0aa9e4.cloudfront.net (CloudFront) X-Amz-Cf-Pop: MUC50-P4 Alt-Svc: h3=":443"; ma=86400 X-Amz-Cf-Id: EGhK26uNDdEdCSX1RFhigEMiCP5qXHOMpmOju1Fh5OJzuqQHsDTzKg== X-XSS-Protection: 1; mode=block X-Frame-Options: SAMEORIGIN Referrer-Policy: strict-origin-when-cross-origin X-Content-Type-Options: nosniff Vary: Origin Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 2600:9000:26da:5e00:13:e6df:d80:93a1:443 · app.siya.com
2025-12-31 11:51
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 87346
Connection: close
Date: Wed, 31 Dec 2025 11:51:16 GMT
Last-Modified: Tue, 30 Dec 2025 12:04:09 GMT
ETag: "820438d3d032460de8536b66bc18de0b"
Server: AmazonS3
X-Cache: Hit from cloudfront
Via: 1.1 455035b7b3ab5f564b775e2968249d3e.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: MUC50-P4
Alt-Svc: h3=":443"; ma=86400
X-Amz-Cf-Id: 6cUDw1QrxZfHRX7WBGwfu-aSjYHqZ47x4SRxc-qv21vO5Ef5ZO9Zvw==
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Referrer-Policy: strict-origin-when-cross-origin
X-Content-Type-Options: nosniff
Strict-Transport-Security: max-age=31536000
Vary: Origin
Page title: SIYA
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>SIYA</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link rel="stylesheet" href="./styles.css">
<link rel="stylesheet" href="./mobile.css">
<link rel="stylesheet" href="./index.css">
<link rel="stylesheet" href="./css/mcp-loader.css">
<link rel="stylesheet" href="./css/agent-selector.css">
<link rel="stylesheet" href="./css/power-toggle.css">
<link rel="stylesheet" href="./css/model-selector.css">
<link rel="stylesheet" href="./css/profile-dropdown.css">
<link rel="stylesheet" href="./css/settings-menu.css">
<link rel="stylesheet" href="./css/history-sidebar.css">
<link rel="stylesheet" href="./css/dropdown-menu.css">
<link rel="stylesheet" href="./css/file-viewer.css">
<link rel="stylesheet" href="./css/scroll-buttons.css">
<link rel="stylesheet" href="./css/automations-modal.css">
<link rel="stylesheet" href="./css/voice-recording.css">
<link rel="stylesheet" href="./css/session-prompt.css">
<link rel="stylesheet" href="./css/landing.css">
<link rel="icon" href="assets/siya-icon.png" type="image/png" />
<!-- Initial Loader Styles - Must load immediately -->
<style id="initial-loader-animation">
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
#initial-health-loader {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: white;
display: flex;
justify-content: center;
align-items: center;
z-index: 99998;
}
#initial-health-loader .spinner {
width: 40px;
height: 40px;
border: 3px solid #e3f2fd;
border-top: 3px solid #2196F3;
border-radius: 50%;
animation: spin 0.8s linear infinite;
}
body.loading {
display: none !important;
}
</style>
<!-- Early Authentication Check - Must be first to prevent unauthorized access -->
<script>
// Immediate authentication check before any page rendering
(function() {
// Check if user is logged in
const isLoggedIn = localStorage.getItem('isLoggedIn');
if (!isLoggedIn || isLoggedIn !== 'true') {
// Not logged in - redirect to login
window.location.replace('login.html');
}
// Check hasVmAccess to determine which view to show
const userInfo = localStorage.getItem('userInfo');
let hasVmAccess = true; // Default to true
if (userInfo) {
try {
const parsedInfo = JSON.parse(userInfo);
hasVmAccess = parsedInfo?.hasVmAccess ?? true;
} catch (e) {
console.error('Error parsing userInfo:', e);
}
}
// Store hasVmAccess for use after page loads
window.__hasVmAccess = hasVmAccess;
})();
</script>
<script src="./js/dynamic-favicon.js"></script>
<script src="./js/tab-visibility.js"></script>
<!-- Add showdown library -->
<script src="https://cdn.jsdelivr.net/npm/showdown/dist/showdown.min.js"></script>
<!-- Add DOMPurify for XSS protection -->
<script src="https://cdn.jsdelivr.net/npm/dompurify@3.0.8/dist/purify.min.js"></script>
<!-- Add Monaco Editor -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.44.0/min/vs/loader.min.js"></script>
<!-- Add PostEventSource library -->
<script src="./stream-post-client.js"></script>
<!-- Add domain config FIRST - must load before all other scripts -->
<script src
Open service 2600:9000:26da:1600:13:e6df:d80:93a1:443 · app.siya.com
2025-12-31 11:51
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 87346
Connection: close
Date: Wed, 31 Dec 2025 11:51:16 GMT
Last-Modified: Tue, 30 Dec 2025 12:04:09 GMT
ETag: "820438d3d032460de8536b66bc18de0b"
Server: AmazonS3
X-Cache: Hit from cloudfront
Via: 1.1 577c189d14f20f4f61c76d2711499f1c.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: MUC50-P4
Alt-Svc: h3=":443"; ma=86400
X-Amz-Cf-Id: s7BB6tmpCJXCtvnyRiAb8npDUCVXtWY3IX5gZnNAhNjSLdh2bqWRCw==
Age: 1
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Referrer-Policy: strict-origin-when-cross-origin
X-Content-Type-Options: nosniff
Strict-Transport-Security: max-age=31536000
Vary: Origin
Page title: SIYA
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>SIYA</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link rel="stylesheet" href="./styles.css">
<link rel="stylesheet" href="./mobile.css">
<link rel="stylesheet" href="./index.css">
<link rel="stylesheet" href="./css/mcp-loader.css">
<link rel="stylesheet" href="./css/agent-selector.css">
<link rel="stylesheet" href="./css/power-toggle.css">
<link rel="stylesheet" href="./css/model-selector.css">
<link rel="stylesheet" href="./css/profile-dropdown.css">
<link rel="stylesheet" href="./css/settings-menu.css">
<link rel="stylesheet" href="./css/history-sidebar.css">
<link rel="stylesheet" href="./css/dropdown-menu.css">
<link rel="stylesheet" href="./css/file-viewer.css">
<link rel="stylesheet" href="./css/scroll-buttons.css">
<link rel="stylesheet" href="./css/automations-modal.css">
<link rel="stylesheet" href="./css/voice-recording.css">
<link rel="stylesheet" href="./css/session-prompt.css">
<link rel="stylesheet" href="./css/landing.css">
<link rel="icon" href="assets/siya-icon.png" type="image/png" />
<!-- Initial Loader Styles - Must load immediately -->
<style id="initial-loader-animation">
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
#initial-health-loader {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: white;
display: flex;
justify-content: center;
align-items: center;
z-index: 99998;
}
#initial-health-loader .spinner {
width: 40px;
height: 40px;
border: 3px solid #e3f2fd;
border-top: 3px solid #2196F3;
border-radius: 50%;
animation: spin 0.8s linear infinite;
}
body.loading {
display: none !important;
}
</style>
<!-- Early Authentication Check - Must be first to prevent unauthorized access -->
<script>
// Immediate authentication check before any page rendering
(function() {
// Check if user is logged in
const isLoggedIn = localStorage.getItem('isLoggedIn');
if (!isLoggedIn || isLoggedIn !== 'true') {
// Not logged in - redirect to login
window.location.replace('login.html');
}
// Check hasVmAccess to determine which view to show
const userInfo = localStorage.getItem('userInfo');
let hasVmAccess = true; // Default to true
if (userInfo) {
try {
const parsedInfo = JSON.parse(userInfo);
hasVmAccess = parsedInfo?.hasVmAccess ?? true;
} catch (e) {
console.error('Error parsing userInfo:', e);
}
}
// Store hasVmAccess for use after page loads
window.__hasVmAccess = hasVmAccess;
})();
</script>
<script src="./js/dynamic-favicon.js"></script>
<script src="./js/tab-visibility.js"></script>
<!-- Add showdown library -->
<script src="https://cdn.jsdelivr.net/npm/showdown/dist/showdown.min.js"></script>
<!-- Add DOMPurify for XSS protection -->
<script src="https://cdn.jsdelivr.net/npm/dompurify@3.0.8/dist/purify.min.js"></script>
<!-- Add Monaco Editor -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.44.0/min/vs/loader.min.js"></script>
<!-- Add PostEventSource library -->
<script src="./stream-post-client.js"></script>
<!-- Add domain config FIRST - must load before all other scripts -->
<script src
Open service 18.173.187.25:443 · app.siya.com
2025-12-31 11:51
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 87346
Connection: close
Date: Wed, 31 Dec 2025 11:51:16 GMT
Last-Modified: Tue, 30 Dec 2025 12:04:09 GMT
ETag: "820438d3d032460de8536b66bc18de0b"
Server: AmazonS3
X-Cache: Hit from cloudfront
Via: 1.1 3a5ebe10b769db9444c2df2c2e8a76a8.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: MUC50-P4
Alt-Svc: h3=":443"; ma=86400
X-Amz-Cf-Id: CxuCTkBFsFz3PxzhgTfT-DSFGNP1ZYiQXgsXWZy2dseSO-SUe40sJQ==
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Referrer-Policy: strict-origin-when-cross-origin
X-Content-Type-Options: nosniff
Strict-Transport-Security: max-age=31536000
Vary: Origin
Page title: SIYA
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>SIYA</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link rel="stylesheet" href="./styles.css">
<link rel="stylesheet" href="./mobile.css">
<link rel="stylesheet" href="./index.css">
<link rel="stylesheet" href="./css/mcp-loader.css">
<link rel="stylesheet" href="./css/agent-selector.css">
<link rel="stylesheet" href="./css/power-toggle.css">
<link rel="stylesheet" href="./css/model-selector.css">
<link rel="stylesheet" href="./css/profile-dropdown.css">
<link rel="stylesheet" href="./css/settings-menu.css">
<link rel="stylesheet" href="./css/history-sidebar.css">
<link rel="stylesheet" href="./css/dropdown-menu.css">
<link rel="stylesheet" href="./css/file-viewer.css">
<link rel="stylesheet" href="./css/scroll-buttons.css">
<link rel="stylesheet" href="./css/automations-modal.css">
<link rel="stylesheet" href="./css/voice-recording.css">
<link rel="stylesheet" href="./css/session-prompt.css">
<link rel="stylesheet" href="./css/landing.css">
<link rel="icon" href="assets/siya-icon.png" type="image/png" />
<!-- Initial Loader Styles - Must load immediately -->
<style id="initial-loader-animation">
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
#initial-health-loader {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: white;
display: flex;
justify-content: center;
align-items: center;
z-index: 99998;
}
#initial-health-loader .spinner {
width: 40px;
height: 40px;
border: 3px solid #e3f2fd;
border-top: 3px solid #2196F3;
border-radius: 50%;
animation: spin 0.8s linear infinite;
}
body.loading {
display: none !important;
}
</style>
<!-- Early Authentication Check - Must be first to prevent unauthorized access -->
<script>
// Immediate authentication check before any page rendering
(function() {
// Check if user is logged in
const isLoggedIn = localStorage.getItem('isLoggedIn');
if (!isLoggedIn || isLoggedIn !== 'true') {
// Not logged in - redirect to login
window.location.replace('login.html');
}
// Check hasVmAccess to determine which view to show
const userInfo = localStorage.getItem('userInfo');
let hasVmAccess = true; // Default to true
if (userInfo) {
try {
const parsedInfo = JSON.parse(userInfo);
hasVmAccess = parsedInfo?.hasVmAccess ?? true;
} catch (e) {
console.error('Error parsing userInfo:', e);
}
}
// Store hasVmAccess for use after page loads
window.__hasVmAccess = hasVmAccess;
})();
</script>
<script src="./js/dynamic-favicon.js"></script>
<script src="./js/tab-visibility.js"></script>
<!-- Add showdown library -->
<script src="https://cdn.jsdelivr.net/npm/showdown/dist/showdown.min.js"></script>
<!-- Add DOMPurify for XSS protection -->
<script src="https://cdn.jsdelivr.net/npm/dompurify@3.0.8/dist/purify.min.js"></script>
<!-- Add Monaco Editor -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.44.0/min/vs/loader.min.js"></script>
<!-- Add PostEventSource library -->
<script src="./stream-post-client.js"></script>
<!-- Add domain config FIRST - must load before all other scripts -->
<script src
Open service 18.173.187.85:443 · app.siya.com
2025-12-31 11:51
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 87346
Connection: close
Date: Wed, 31 Dec 2025 11:51:16 GMT
Last-Modified: Tue, 30 Dec 2025 12:04:09 GMT
ETag: "820438d3d032460de8536b66bc18de0b"
Server: AmazonS3
X-Cache: Miss from cloudfront
Via: 1.1 e46f362ef9260e60e122406168399f5c.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: MUC50-P4
Alt-Svc: h3=":443"; ma=86400
X-Amz-Cf-Id: WzDoNjnWT6zysOFRAs5Cq5xxL6QtGWvzO7tDGcQcXnrvS3WBtWurbQ==
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Referrer-Policy: strict-origin-when-cross-origin
X-Content-Type-Options: nosniff
Strict-Transport-Security: max-age=31536000
Vary: Origin
Page title: SIYA
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>SIYA</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link rel="stylesheet" href="./styles.css">
<link rel="stylesheet" href="./mobile.css">
<link rel="stylesheet" href="./index.css">
<link rel="stylesheet" href="./css/mcp-loader.css">
<link rel="stylesheet" href="./css/agent-selector.css">
<link rel="stylesheet" href="./css/power-toggle.css">
<link rel="stylesheet" href="./css/model-selector.css">
<link rel="stylesheet" href="./css/profile-dropdown.css">
<link rel="stylesheet" href="./css/settings-menu.css">
<link rel="stylesheet" href="./css/history-sidebar.css">
<link rel="stylesheet" href="./css/dropdown-menu.css">
<link rel="stylesheet" href="./css/file-viewer.css">
<link rel="stylesheet" href="./css/scroll-buttons.css">
<link rel="stylesheet" href="./css/automations-modal.css">
<link rel="stylesheet" href="./css/voice-recording.css">
<link rel="stylesheet" href="./css/session-prompt.css">
<link rel="stylesheet" href="./css/landing.css">
<link rel="icon" href="assets/siya-icon.png" type="image/png" />
<!-- Initial Loader Styles - Must load immediately -->
<style id="initial-loader-animation">
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
#initial-health-loader {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: white;
display: flex;
justify-content: center;
align-items: center;
z-index: 99998;
}
#initial-health-loader .spinner {
width: 40px;
height: 40px;
border: 3px solid #e3f2fd;
border-top: 3px solid #2196F3;
border-radius: 50%;
animation: spin 0.8s linear infinite;
}
body.loading {
display: none !important;
}
</style>
<!-- Early Authentication Check - Must be first to prevent unauthorized access -->
<script>
// Immediate authentication check before any page rendering
(function() {
// Check if user is logged in
const isLoggedIn = localStorage.getItem('isLoggedIn');
if (!isLoggedIn || isLoggedIn !== 'true') {
// Not logged in - redirect to login
window.location.replace('login.html');
}
// Check hasVmAccess to determine which view to show
const userInfo = localStorage.getItem('userInfo');
let hasVmAccess = true; // Default to true
if (userInfo) {
try {
const parsedInfo = JSON.parse(userInfo);
hasVmAccess = parsedInfo?.hasVmAccess ?? true;
} catch (e) {
console.error('Error parsing userInfo:', e);
}
}
// Store hasVmAccess for use after page loads
window.__hasVmAccess = hasVmAccess;
})();
</script>
<script src="./js/dynamic-favicon.js"></script>
<script src="./js/tab-visibility.js"></script>
<!-- Add showdown library -->
<script src="https://cdn.jsdelivr.net/npm/showdown/dist/showdown.min.js"></script>
<!-- Add DOMPurify for XSS protection -->
<script src="https://cdn.jsdelivr.net/npm/dompurify@3.0.8/dist/purify.min.js"></script>
<!-- Add Monaco Editor -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.44.0/min/vs/loader.min.js"></script>
<!-- Add PostEventSource library -->
<script src="./stream-post-client.js"></script>
<!-- Add domain config FIRST - must load before all other scripts -->
<script src
Open service 2600:9000:26da:8a00:13:e6df:d80:93a1:80 · app.siya.com
2025-12-31 11:51
HTTP/1.1 301 Moved Permanently Server: CloudFront Date: Wed, 31 Dec 2025 11:51:15 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://app.siya.com/ X-Cache: Redirect from cloudfront Via: 1.1 b2825f5e779aaa7a75e20fcfeee23920.cloudfront.net (CloudFront) X-Amz-Cf-Pop: MUC50-P4 Alt-Svc: h3=":443"; ma=86400 X-Amz-Cf-Id: nDEBNNMum9TSz0BWDgLp3Tb_TylX2SOaj2xGDjSgt2ni1Zfnv0Zd5g== X-XSS-Protection: 1; mode=block X-Frame-Options: SAMEORIGIN Referrer-Policy: strict-origin-when-cross-origin X-Content-Type-Options: nosniff Vary: Origin Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 2600:9000:26da:6600:13:e6df:d80:93a1:443 · app.siya.com
2025-12-31 11:51
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 87346
Connection: close
Date: Wed, 31 Dec 2025 11:51:16 GMT
Last-Modified: Tue, 30 Dec 2025 12:04:09 GMT
ETag: "820438d3d032460de8536b66bc18de0b"
Server: AmazonS3
X-Cache: Hit from cloudfront
Via: 1.1 577c189d14f20f4f61c76d2711499f1c.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: MUC50-P4
Alt-Svc: h3=":443"; ma=86400
X-Amz-Cf-Id: 96C3sJLzIi3ryT1ZGo7NfwfKgZLlwMrdLzbNRWzjh1QaLfSfA49L_w==
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Referrer-Policy: strict-origin-when-cross-origin
X-Content-Type-Options: nosniff
Strict-Transport-Security: max-age=31536000
Vary: Origin
Page title: SIYA
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>SIYA</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link rel="stylesheet" href="./styles.css">
<link rel="stylesheet" href="./mobile.css">
<link rel="stylesheet" href="./index.css">
<link rel="stylesheet" href="./css/mcp-loader.css">
<link rel="stylesheet" href="./css/agent-selector.css">
<link rel="stylesheet" href="./css/power-toggle.css">
<link rel="stylesheet" href="./css/model-selector.css">
<link rel="stylesheet" href="./css/profile-dropdown.css">
<link rel="stylesheet" href="./css/settings-menu.css">
<link rel="stylesheet" href="./css/history-sidebar.css">
<link rel="stylesheet" href="./css/dropdown-menu.css">
<link rel="stylesheet" href="./css/file-viewer.css">
<link rel="stylesheet" href="./css/scroll-buttons.css">
<link rel="stylesheet" href="./css/automations-modal.css">
<link rel="stylesheet" href="./css/voice-recording.css">
<link rel="stylesheet" href="./css/session-prompt.css">
<link rel="stylesheet" href="./css/landing.css">
<link rel="icon" href="assets/siya-icon.png" type="image/png" />
<!-- Initial Loader Styles - Must load immediately -->
<style id="initial-loader-animation">
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
#initial-health-loader {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: white;
display: flex;
justify-content: center;
align-items: center;
z-index: 99998;
}
#initial-health-loader .spinner {
width: 40px;
height: 40px;
border: 3px solid #e3f2fd;
border-top: 3px solid #2196F3;
border-radius: 50%;
animation: spin 0.8s linear infinite;
}
body.loading {
display: none !important;
}
</style>
<!-- Early Authentication Check - Must be first to prevent unauthorized access -->
<script>
// Immediate authentication check before any page rendering
(function() {
// Check if user is logged in
const isLoggedIn = localStorage.getItem('isLoggedIn');
if (!isLoggedIn || isLoggedIn !== 'true') {
// Not logged in - redirect to login
window.location.replace('login.html');
}
// Check hasVmAccess to determine which view to show
const userInfo = localStorage.getItem('userInfo');
let hasVmAccess = true; // Default to true
if (userInfo) {
try {
const parsedInfo = JSON.parse(userInfo);
hasVmAccess = parsedInfo?.hasVmAccess ?? true;
} catch (e) {
console.error('Error parsing userInfo:', e);
}
}
// Store hasVmAccess for use after page loads
window.__hasVmAccess = hasVmAccess;
})();
</script>
<script src="./js/dynamic-favicon.js"></script>
<script src="./js/tab-visibility.js"></script>
<!-- Add showdown library -->
<script src="https://cdn.jsdelivr.net/npm/showdown/dist/showdown.min.js"></script>
<!-- Add DOMPurify for XSS protection -->
<script src="https://cdn.jsdelivr.net/npm/dompurify@3.0.8/dist/purify.min.js"></script>
<!-- Add Monaco Editor -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.44.0/min/vs/loader.min.js"></script>
<!-- Add PostEventSource library -->
<script src="./stream-post-client.js"></script>
<!-- Add domain config FIRST - must load before all other scripts -->
<script src
Open service 18.173.187.47:443 · app.siya.com
2025-12-31 11:51
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 87346
Connection: close
Date: Wed, 31 Dec 2025 11:51:16 GMT
Last-Modified: Tue, 30 Dec 2025 12:04:09 GMT
ETag: "820438d3d032460de8536b66bc18de0b"
Server: AmazonS3
X-Cache: Miss from cloudfront
Via: 1.1 7bf4f64fa64e134b5dbb63cabb0aa9e4.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: MUC50-P4
Alt-Svc: h3=":443"; ma=86400
X-Amz-Cf-Id: 6D1pYbAkg2DgFR3CKbkF2QTMoxNq8LLazXRaU70kjd6IhQlluozrLg==
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Referrer-Policy: strict-origin-when-cross-origin
X-Content-Type-Options: nosniff
Strict-Transport-Security: max-age=31536000
Vary: Origin
Page title: SIYA
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>SIYA</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link rel="stylesheet" href="./styles.css">
<link rel="stylesheet" href="./mobile.css">
<link rel="stylesheet" href="./index.css">
<link rel="stylesheet" href="./css/mcp-loader.css">
<link rel="stylesheet" href="./css/agent-selector.css">
<link rel="stylesheet" href="./css/power-toggle.css">
<link rel="stylesheet" href="./css/model-selector.css">
<link rel="stylesheet" href="./css/profile-dropdown.css">
<link rel="stylesheet" href="./css/settings-menu.css">
<link rel="stylesheet" href="./css/history-sidebar.css">
<link rel="stylesheet" href="./css/dropdown-menu.css">
<link rel="stylesheet" href="./css/file-viewer.css">
<link rel="stylesheet" href="./css/scroll-buttons.css">
<link rel="stylesheet" href="./css/automations-modal.css">
<link rel="stylesheet" href="./css/voice-recording.css">
<link rel="stylesheet" href="./css/session-prompt.css">
<link rel="stylesheet" href="./css/landing.css">
<link rel="icon" href="assets/siya-icon.png" type="image/png" />
<!-- Initial Loader Styles - Must load immediately -->
<style id="initial-loader-animation">
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
#initial-health-loader {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: white;
display: flex;
justify-content: center;
align-items: center;
z-index: 99998;
}
#initial-health-loader .spinner {
width: 40px;
height: 40px;
border: 3px solid #e3f2fd;
border-top: 3px solid #2196F3;
border-radius: 50%;
animation: spin 0.8s linear infinite;
}
body.loading {
display: none !important;
}
</style>
<!-- Early Authentication Check - Must be first to prevent unauthorized access -->
<script>
// Immediate authentication check before any page rendering
(function() {
// Check if user is logged in
const isLoggedIn = localStorage.getItem('isLoggedIn');
if (!isLoggedIn || isLoggedIn !== 'true') {
// Not logged in - redirect to login
window.location.replace('login.html');
}
// Check hasVmAccess to determine which view to show
const userInfo = localStorage.getItem('userInfo');
let hasVmAccess = true; // Default to true
if (userInfo) {
try {
const parsedInfo = JSON.parse(userInfo);
hasVmAccess = parsedInfo?.hasVmAccess ?? true;
} catch (e) {
console.error('Error parsing userInfo:', e);
}
}
// Store hasVmAccess for use after page loads
window.__hasVmAccess = hasVmAccess;
})();
</script>
<script src="./js/dynamic-favicon.js"></script>
<script src="./js/tab-visibility.js"></script>
<!-- Add showdown library -->
<script src="https://cdn.jsdelivr.net/npm/showdown/dist/showdown.min.js"></script>
<!-- Add DOMPurify for XSS protection -->
<script src="https://cdn.jsdelivr.net/npm/dompurify@3.0.8/dist/purify.min.js"></script>
<!-- Add Monaco Editor -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.44.0/min/vs/loader.min.js"></script>
<!-- Add PostEventSource library -->
<script src="./stream-post-client.js"></script>
<!-- Add domain config FIRST - must load before all other scripts -->
<script src
Open service 18.173.187.47:80 · app.siya.com
2025-12-31 11:51
HTTP/1.1 301 Moved Permanently Server: CloudFront Date: Wed, 31 Dec 2025 11:51:14 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://app.siya.com/ X-Cache: Redirect from cloudfront Via: 1.1 455035b7b3ab5f564b775e2968249d3e.cloudfront.net (CloudFront) X-Amz-Cf-Pop: MUC50-P4 Alt-Svc: h3=":443"; ma=86400 X-Amz-Cf-Id: hNiEwnb7Tn2mz76hSCdoYDYO5poPk5E-RLij8P312YxU7tkDzCxwGw== X-XSS-Protection: 1; mode=block X-Frame-Options: SAMEORIGIN Referrer-Policy: strict-origin-when-cross-origin X-Content-Type-Options: nosniff Vary: Origin Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 2600:9000:26da:1600:13:e6df:d80:93a1:80 · app.siya.com
2025-12-31 11:51
HTTP/1.1 301 Moved Permanently Server: CloudFront Date: Wed, 31 Dec 2025 11:51:14 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://app.siya.com/ X-Cache: Redirect from cloudfront Via: 1.1 3a5ebe10b769db9444c2df2c2e8a76a8.cloudfront.net (CloudFront) X-Amz-Cf-Pop: MUC50-P4 Alt-Svc: h3=":443"; ma=86400 X-Amz-Cf-Id: 9U9jLjdRAkQUj9MxEzWHyJTiVzCCpAD8GRTrp3nPvKqHRDWux7l-JA== X-XSS-Protection: 1; mode=block X-Frame-Options: SAMEORIGIN Referrer-Policy: strict-origin-when-cross-origin X-Content-Type-Options: nosniff Vary: Origin Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 2600:9000:26da:6600:13:e6df:d80:93a1:80 · app.siya.com
2025-12-31 11:51
HTTP/1.1 301 Moved Permanently Server: CloudFront Date: Wed, 31 Dec 2025 11:51:14 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://app.siya.com/ X-Cache: Redirect from cloudfront Via: 1.1 7949f2957c23173b6f2b16db26ab42f6.cloudfront.net (CloudFront) X-Amz-Cf-Pop: MUC50-P4 Alt-Svc: h3=":443"; ma=86400 X-Amz-Cf-Id: 9YgXD36-W-AEN_HL5Z509KeL9dH9LLHq45v4fldNw25FncfhaaKErw== X-XSS-Protection: 1; mode=block X-Frame-Options: SAMEORIGIN Referrer-Policy: strict-origin-when-cross-origin X-Content-Type-Options: nosniff Vary: Origin Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 2600:9000:26da:8a00:13:e6df:d80:93a1:443 · app.siya.com
2025-12-31 11:51
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 87346
Connection: close
Date: Wed, 31 Dec 2025 11:51:16 GMT
Last-Modified: Tue, 30 Dec 2025 12:04:09 GMT
ETag: "820438d3d032460de8536b66bc18de0b"
Server: AmazonS3
X-Cache: Miss from cloudfront
Via: 1.1 455035b7b3ab5f564b775e2968249d3e.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: MUC50-P4
Alt-Svc: h3=":443"; ma=86400
X-Amz-Cf-Id: fTDSDO04ECUE-1kW5HeT61_UyfzjPHOg1XFGJ8TgpuD5eUagnoVReQ==
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Referrer-Policy: strict-origin-when-cross-origin
X-Content-Type-Options: nosniff
Strict-Transport-Security: max-age=31536000
Vary: Origin
Page title: SIYA
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>SIYA</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link rel="stylesheet" href="./styles.css">
<link rel="stylesheet" href="./mobile.css">
<link rel="stylesheet" href="./index.css">
<link rel="stylesheet" href="./css/mcp-loader.css">
<link rel="stylesheet" href="./css/agent-selector.css">
<link rel="stylesheet" href="./css/power-toggle.css">
<link rel="stylesheet" href="./css/model-selector.css">
<link rel="stylesheet" href="./css/profile-dropdown.css">
<link rel="stylesheet" href="./css/settings-menu.css">
<link rel="stylesheet" href="./css/history-sidebar.css">
<link rel="stylesheet" href="./css/dropdown-menu.css">
<link rel="stylesheet" href="./css/file-viewer.css">
<link rel="stylesheet" href="./css/scroll-buttons.css">
<link rel="stylesheet" href="./css/automations-modal.css">
<link rel="stylesheet" href="./css/voice-recording.css">
<link rel="stylesheet" href="./css/session-prompt.css">
<link rel="stylesheet" href="./css/landing.css">
<link rel="icon" href="assets/siya-icon.png" type="image/png" />
<!-- Initial Loader Styles - Must load immediately -->
<style id="initial-loader-animation">
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
#initial-health-loader {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: white;
display: flex;
justify-content: center;
align-items: center;
z-index: 99998;
}
#initial-health-loader .spinner {
width: 40px;
height: 40px;
border: 3px solid #e3f2fd;
border-top: 3px solid #2196F3;
border-radius: 50%;
animation: spin 0.8s linear infinite;
}
body.loading {
display: none !important;
}
</style>
<!-- Early Authentication Check - Must be first to prevent unauthorized access -->
<script>
// Immediate authentication check before any page rendering
(function() {
// Check if user is logged in
const isLoggedIn = localStorage.getItem('isLoggedIn');
if (!isLoggedIn || isLoggedIn !== 'true') {
// Not logged in - redirect to login
window.location.replace('login.html');
}
// Check hasVmAccess to determine which view to show
const userInfo = localStorage.getItem('userInfo');
let hasVmAccess = true; // Default to true
if (userInfo) {
try {
const parsedInfo = JSON.parse(userInfo);
hasVmAccess = parsedInfo?.hasVmAccess ?? true;
} catch (e) {
console.error('Error parsing userInfo:', e);
}
}
// Store hasVmAccess for use after page loads
window.__hasVmAccess = hasVmAccess;
})();
</script>
<script src="./js/dynamic-favicon.js"></script>
<script src="./js/tab-visibility.js"></script>
<!-- Add showdown library -->
<script src="https://cdn.jsdelivr.net/npm/showdown/dist/showdown.min.js"></script>
<!-- Add DOMPurify for XSS protection -->
<script src="https://cdn.jsdelivr.net/npm/dompurify@3.0.8/dist/purify.min.js"></script>
<!-- Add Monaco Editor -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.44.0/min/vs/loader.min.js"></script>
<!-- Add PostEventSource library -->
<script src="./stream-post-client.js"></script>
<!-- Add domain config FIRST - must load before all other scripts -->
<script src
Open service 18.173.187.85:80 · app.siya.com
2025-12-31 11:51
HTTP/1.1 301 Moved Permanently Server: CloudFront Date: Wed, 31 Dec 2025 11:51:14 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://app.siya.com/ X-Cache: Redirect from cloudfront Via: 1.1 3a5ebe10b769db9444c2df2c2e8a76a8.cloudfront.net (CloudFront) X-Amz-Cf-Pop: MUC50-P4 Alt-Svc: h3=":443"; ma=86400 X-Amz-Cf-Id: S3r-0LywfcpIdtD6NEAxtV372YR4Nen-YR-u4Rr37ZUOlrYkM46yug== X-XSS-Protection: 1; mode=block X-Frame-Options: SAMEORIGIN Referrer-Policy: strict-origin-when-cross-origin X-Content-Type-Options: nosniff Vary: Origin Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
2600:9000:26db:f400:1f:b35d:8d40:93a1 1 18.173.154.7 1 2600:9000:26db:3000:1f:b35d:8d40:93a1 1 2600:9000:26db:5e00:1f:b35d:8d40:93a1 1 2600:9000:26db:e600:1f:b35d:8d40:93a1 1 18.173.154.91 1 2600:9000:26db:6c00:1f:b35d:8d40:93a1 1 2600:9000:26db:8200:1f:b35d:8d40:93a1 1 2600:9000:26db:ec00:1f:b35d:8d40:93a1 1 2600:9000:26db:4000:1f:b35d:8d40:93a1 1 18.173.154.2 1 18.173.154.96 1 2600:9000:26db:5a00:1f:b35d:8d40:93a1 1 2600:9000:26db:9a00:1f:b35d:8d40:93a1 1 2600:9000:26db:2e00:1f:b35d:8d40:93a1 1 2600:9000:26db:3c00:1f:b35d:8d40:93a1 1 2600:9000:26db:8800:1f:b35d:8d40:93a1 1 2600:9000:26db:b400:1f:b35d:8d40:93a1 1 2600:9000:26db:5c00:1f:b35d:8d40:93a1 1 2600:9000:26db:6200:1f:b35d:8d40:93a1 1 2600:9000:26db:8600:1f:b35d:8d40:93a1 1 2600:9000:26db:2200:1f:b35d:8d40:93a1 1 2600:9000:26db:9600:1f:b35d:8d40:93a1 1 2600:9000:26db:ee00:1f:b35d:8d40:93a1 1 2600:9000:26db:4600:1f:b35d:8d40:93a1 1 2600:9000:26db:7800:1f:b35d:8d40:93a1 1 2600:9000:26db:cc00:1f:b35d:8d40:93a1 1 2600:9000:26da:5e00:13:e6df:d80:93a1 1 2600:9000:26da:ae00:13:e6df:d80:93a1 1 2600:9000:26da:a200:13:e6df:d80:93a1 1 18.173.187.115 1 2600:9000:26da:5200:13:e6df:d80:93a1 1 2600:9000:26da:e00:13:e6df:d80:93a1 1 18.173.187.25 1 2600:9000:26da:1600:13:e6df:d80:93a1 1 18.173.187.85 1 2600:9000:26da:8a00:13:e6df:d80:93a1 1 2600:9000:26da:6600:13:e6df:d80:93a1 1 18.173.187.47 1