@vitronai/alethia 0.3.8 → 0.3.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +39 -10
- package/demo/README.md +26 -42
- package/demo/agent-oversight.html +237 -0
- package/demo/crypto-readiness.html +237 -0
- package/demo/incident-response.html +267 -0
- package/demo/threat-intel.html +301 -0
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/demo/cookie-banner.html +0 -66
- package/demo/ecommerce.html +0 -88
- package/demo/form-validation.html +0 -113
- package/demo/signup-form.html +0 -70
- package/demo/spa-loading.html +0 -64
- package/demo/todo-app.html +0 -51
package/demo/signup-form.html
DELETED
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html>
|
|
3
|
-
<head>
|
|
4
|
-
<title>Acme Dashboard</title>
|
|
5
|
-
<style>
|
|
6
|
-
* { box-sizing: border-box; margin: 0; padding: 0; }
|
|
7
|
-
body { font-family: -apple-system, sans-serif; background: #0f172a; color: #e2e8f0; min-height: 100vh; display: flex; align-items: center; justify-content: center; }
|
|
8
|
-
.container { width: 360px; }
|
|
9
|
-
h1 { font-size: 1.8rem; margin-bottom: 1.2rem; }
|
|
10
|
-
form { display: flex; flex-direction: column; gap: 0.8rem; }
|
|
11
|
-
input { padding: 0.7rem; border-radius: 8px; border: 1px solid #334155; background: #1e293b; color: #e2e8f0; font-size: 1rem; }
|
|
12
|
-
input::placeholder { color: #64748b; }
|
|
13
|
-
button { padding: 0.75rem; border-radius: 8px; border: none; background: #3b82f6; color: white; font-size: 1rem; font-weight: 600; cursor: pointer; }
|
|
14
|
-
button:hover { background: #2563eb; }
|
|
15
|
-
.error { color: #f87171; font-size: 0.9rem; display: none; }
|
|
16
|
-
.error.visible { display: block; }
|
|
17
|
-
#dashboard { display: none; }
|
|
18
|
-
#dashboard h1 { color: #34d399; }
|
|
19
|
-
#dashboard ul { list-style: none; margin-top: 1rem; }
|
|
20
|
-
#dashboard li { padding: 0.5rem 0; border-bottom: 1px solid #1e293b; }
|
|
21
|
-
#dashboard button { background: #ef4444; margin-top: 1rem; }
|
|
22
|
-
</style>
|
|
23
|
-
</head>
|
|
24
|
-
<body>
|
|
25
|
-
<div class="container">
|
|
26
|
-
<div id="login">
|
|
27
|
-
<h1>Sign In</h1>
|
|
28
|
-
<div id="error" class="error" role="alert">Please fill in all fields</div>
|
|
29
|
-
<form onsubmit="return false;">
|
|
30
|
-
<input id="email" type="email" placeholder="Email" aria-label="Email" />
|
|
31
|
-
<input id="password" type="password" placeholder="Password" aria-label="Password" />
|
|
32
|
-
<button type="button" id="signin-btn">Sign In</button>
|
|
33
|
-
</form>
|
|
34
|
-
</div>
|
|
35
|
-
<div id="dashboard">
|
|
36
|
-
<h1>Welcome back!</h1>
|
|
37
|
-
<p id="user-greeting"></p>
|
|
38
|
-
<ul id="tasks">
|
|
39
|
-
<li>Deploy v2.1</li>
|
|
40
|
-
<li>Review PR #42</li>
|
|
41
|
-
<li>Update docs</li>
|
|
42
|
-
</ul>
|
|
43
|
-
<button type="button" id="logout-btn">Sign Out</button>
|
|
44
|
-
</div>
|
|
45
|
-
</div>
|
|
46
|
-
<script>
|
|
47
|
-
document.getElementById('signin-btn').addEventListener('click', function() {
|
|
48
|
-
var email = document.getElementById('email').value;
|
|
49
|
-
var password = document.getElementById('password').value;
|
|
50
|
-
var error = document.getElementById('error');
|
|
51
|
-
if (!email || !password) {
|
|
52
|
-
error.classList.add('visible');
|
|
53
|
-
return;
|
|
54
|
-
}
|
|
55
|
-
error.classList.remove('visible');
|
|
56
|
-
document.getElementById('login').style.display = 'none';
|
|
57
|
-
document.getElementById('dashboard').style.display = 'block';
|
|
58
|
-
document.getElementById('user-greeting').textContent = 'Logged in as ' + email;
|
|
59
|
-
document.title = 'Dashboard — Acme';
|
|
60
|
-
});
|
|
61
|
-
document.getElementById('logout-btn').addEventListener('click', function() {
|
|
62
|
-
document.getElementById('login').style.display = 'block';
|
|
63
|
-
document.getElementById('dashboard').style.display = 'none';
|
|
64
|
-
document.getElementById('email').value = '';
|
|
65
|
-
document.getElementById('password').value = '';
|
|
66
|
-
document.title = 'Acme Dashboard';
|
|
67
|
-
});
|
|
68
|
-
</script>
|
|
69
|
-
</body>
|
|
70
|
-
</html>
|
package/demo/spa-loading.html
DELETED
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html>
|
|
3
|
-
<head>
|
|
4
|
-
<title>SPA Dashboard</title>
|
|
5
|
-
<style>
|
|
6
|
-
* { box-sizing: border-box; margin: 0; padding: 0; }
|
|
7
|
-
body { font-family: -apple-system, sans-serif; background: #0f172a; color: #e2e8f0; min-height: 100vh; display: flex; align-items: center; justify-content: center; }
|
|
8
|
-
.container { width: 480px; }
|
|
9
|
-
h1 { font-size: 1.8rem; margin-bottom: 1rem; }
|
|
10
|
-
.spinner { display: inline-block; width: 20px; height: 20px; border: 3px solid #334155; border-top-color: #3b82f6; border-radius: 50%; animation: spin 0.8s linear infinite; margin-right: 0.5rem; vertical-align: middle; }
|
|
11
|
-
@keyframes spin { to { transform: rotate(360deg); } }
|
|
12
|
-
.loading { color: #94a3b8; margin-bottom: 1rem; }
|
|
13
|
-
.card { border: 1px solid #334155; border-radius: 12px; padding: 1.2rem; background: #1e293b; margin-bottom: 0.8rem; }
|
|
14
|
-
.card h3 { margin-bottom: 0.4rem; }
|
|
15
|
-
.card p { color: #94a3b8; font-size: 0.9rem; }
|
|
16
|
-
.stats { display: flex; gap: 1rem; margin-top: 1rem; }
|
|
17
|
-
.stat { text-align: center; }
|
|
18
|
-
.stat-value { font-size: 2rem; font-weight: 700; color: #3b82f6; }
|
|
19
|
-
.stat-label { font-size: 0.8rem; color: #64748b; }
|
|
20
|
-
#content { display: none; }
|
|
21
|
-
</style>
|
|
22
|
-
</head>
|
|
23
|
-
<body>
|
|
24
|
-
<div class="container">
|
|
25
|
-
<h1>Analytics Dashboard</h1>
|
|
26
|
-
<div id="loading" class="loading" aria-busy="true">
|
|
27
|
-
<span class="spinner"></span>Loading dashboard data...
|
|
28
|
-
</div>
|
|
29
|
-
<div id="content">
|
|
30
|
-
<div class="stats">
|
|
31
|
-
<div class="stat">
|
|
32
|
-
<div class="stat-value">1,247</div>
|
|
33
|
-
<div class="stat-label">Users</div>
|
|
34
|
-
</div>
|
|
35
|
-
<div class="stat">
|
|
36
|
-
<div class="stat-value">89%</div>
|
|
37
|
-
<div class="stat-label">Uptime</div>
|
|
38
|
-
</div>
|
|
39
|
-
<div class="stat">
|
|
40
|
-
<div class="stat-value">3.2s</div>
|
|
41
|
-
<div class="stat-label">Avg Response</div>
|
|
42
|
-
</div>
|
|
43
|
-
</div>
|
|
44
|
-
<div class="card">
|
|
45
|
-
<h3>Recent Activity</h3>
|
|
46
|
-
<p>12 deployments this week. Last deploy: 2 hours ago.</p>
|
|
47
|
-
</div>
|
|
48
|
-
<div class="card">
|
|
49
|
-
<h3>Alerts</h3>
|
|
50
|
-
<p>No active alerts. All systems operational.</p>
|
|
51
|
-
</div>
|
|
52
|
-
</div>
|
|
53
|
-
</div>
|
|
54
|
-
<script>
|
|
55
|
-
// Simulate async data loading — 2 second delay
|
|
56
|
-
setTimeout(function() {
|
|
57
|
-
document.getElementById('loading').style.display = 'none';
|
|
58
|
-
document.getElementById('loading').setAttribute('aria-busy', 'false');
|
|
59
|
-
document.getElementById('content').style.display = 'block';
|
|
60
|
-
document.title = 'Analytics Dashboard — Loaded';
|
|
61
|
-
}, 2000);
|
|
62
|
-
</script>
|
|
63
|
-
</body>
|
|
64
|
-
</html>
|
package/demo/todo-app.html
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html>
|
|
3
|
-
<head>
|
|
4
|
-
<title>Todo App</title>
|
|
5
|
-
<style>
|
|
6
|
-
* { box-sizing: border-box; margin: 0; padding: 0; }
|
|
7
|
-
body { font-family: -apple-system, sans-serif; background: #0f172a; color: #e2e8f0; min-height: 100vh; display: flex; align-items: center; justify-content: center; }
|
|
8
|
-
.container { width: 400px; }
|
|
9
|
-
h1 { font-size: 1.8rem; margin-bottom: 1.2rem; }
|
|
10
|
-
.add-row { display: flex; gap: 0.5rem; margin-bottom: 1rem; }
|
|
11
|
-
input { flex: 1; padding: 0.7rem; border-radius: 8px; border: 1px solid #334155; background: #1e293b; color: #e2e8f0; font-size: 1rem; }
|
|
12
|
-
input::placeholder { color: #64748b; }
|
|
13
|
-
button { padding: 0.7rem 1.2rem; border-radius: 8px; border: none; background: #3b82f6; color: white; font-size: 1rem; font-weight: 600; cursor: pointer; }
|
|
14
|
-
button:hover { background: #2563eb; }
|
|
15
|
-
ul { list-style: none; }
|
|
16
|
-
li { display: flex; justify-content: space-between; align-items: center; padding: 0.6rem 0; border-bottom: 1px solid #1e293b; }
|
|
17
|
-
.delete-btn { background: #ef4444; padding: 0.3rem 0.6rem; font-size: 0.85rem; }
|
|
18
|
-
.count { color: #94a3b8; font-size: 0.9rem; margin-top: 0.8rem; }
|
|
19
|
-
</style>
|
|
20
|
-
</head>
|
|
21
|
-
<body>
|
|
22
|
-
<div class="container">
|
|
23
|
-
<h1>Todo List</h1>
|
|
24
|
-
<div class="add-row">
|
|
25
|
-
<input id="todo-input" placeholder="Add a task..." aria-label="New task" />
|
|
26
|
-
<button type="button" onclick="addTodo()">Add</button>
|
|
27
|
-
</div>
|
|
28
|
-
<ul id="todo-list"></ul>
|
|
29
|
-
<p id="count" class="count"></p>
|
|
30
|
-
</div>
|
|
31
|
-
<script>
|
|
32
|
-
function updateCount() {
|
|
33
|
-
const items = document.querySelectorAll('#todo-list li');
|
|
34
|
-
document.getElementById('count').textContent = items.length + ' item' + (items.length !== 1 ? 's' : '');
|
|
35
|
-
}
|
|
36
|
-
function addTodo() {
|
|
37
|
-
const input = document.getElementById('todo-input');
|
|
38
|
-
const text = input.value.trim();
|
|
39
|
-
if (!text) return;
|
|
40
|
-
const li = document.createElement('li');
|
|
41
|
-
li.innerHTML = '<span>' + text + '</span><button class="delete-btn" onclick="this.parentElement.remove(); updateCount()">Delete</button>';
|
|
42
|
-
document.getElementById('todo-list').appendChild(li);
|
|
43
|
-
input.value = '';
|
|
44
|
-
updateCount();
|
|
45
|
-
}
|
|
46
|
-
document.getElementById('todo-input').addEventListener('keydown', function(e) {
|
|
47
|
-
if (e.key === 'Enter') addTodo();
|
|
48
|
-
});
|
|
49
|
-
</script>
|
|
50
|
-
</body>
|
|
51
|
-
</html>
|