@wipcomputer/wip-ldm-os 0.4.85-alpha.3 → 0.4.85-alpha.5
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/bin/ldm.js +1 -1
- package/docs/universal-installer/SPEC.md +14 -3
- package/docs/universal-installer/TECHNICAL.md +4 -4
- package/lib/deploy.mjs +61 -20
- package/lib/detect.mjs +35 -4
- package/package.json +5 -1
- package/scripts/test-crc-agentid-tenant-boundary.mjs +72 -0
- package/scripts/test-crc-e2ee-session-route.mjs +122 -0
- package/scripts/test-crc-pair-login-flow.mjs +40 -0
- package/scripts/test-installer-skill-directory.mjs +55 -0
- package/src/hosted-mcp/app/footer.js +74 -0
- package/src/hosted-mcp/app/kaleidoscope-login.html +843 -0
- package/src/hosted-mcp/app/pair.html +147 -57
- package/src/hosted-mcp/app/sprites.png +0 -0
- package/src/hosted-mcp/demo/index.html +3 -7
- package/src/hosted-mcp/demo/login.html +318 -20
- package/src/hosted-mcp/deploy.sh +306 -56
- package/src/hosted-mcp/nginx/codex-relay.conf +25 -0
- package/src/hosted-mcp/nginx/conf.d/redact-logs.conf +60 -0
- package/src/hosted-mcp/nginx/mcp-oauth.conf +58 -0
- package/src/hosted-mcp/nginx/wip.computer.conf +25 -1
- package/src/hosted-mcp/scripts/audit-logs.sh +205 -0
- package/src/hosted-mcp/scripts/verify-deploy.sh +102 -0
- package/src/hosted-mcp/server.mjs +775 -112
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
// Shared footer for all Kaleidoscope pages (production-owned).
|
|
2
|
+
// Include with: <div id="kscope-footer"></div><script src="/app/footer.js"></script>
|
|
3
|
+
(function() {
|
|
4
|
+
var container = document.getElementById('kscope-footer');
|
|
5
|
+
if (!container) return;
|
|
6
|
+
|
|
7
|
+
var mobile = navigator.maxTouchPoints > 0 && window.innerWidth < 768;
|
|
8
|
+
|
|
9
|
+
// Desktop: fixed at bottom. Mobile: in page flow (below fold).
|
|
10
|
+
if (mobile) {
|
|
11
|
+
container.style.cssText = 'background:#FFFDF5;padding:16px 0;';
|
|
12
|
+
} else {
|
|
13
|
+
container.style.cssText = 'position:fixed;bottom:0;left:0;right:0;background:#FFFDF5;padding:16px 0;';
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
var inner = document.createElement('div');
|
|
17
|
+
inner.style.cssText = 'max-width:980px;margin:0 auto;padding:0 24px;border-top:1px solid rgba(0,0,0,0.06);padding-top:16px;text-align:left;font-size:13px;color:#a8a4a0;line-height:1.6;';
|
|
18
|
+
|
|
19
|
+
// On mobile, copyright and links on separate lines (like Apple)
|
|
20
|
+
if (mobile) {
|
|
21
|
+
inner.innerHTML = '<p style="margin:0;">WIP Computer, Inc.</p>'
|
|
22
|
+
+ '<p style="margin:2px 0 0;">Learning Dreaming Machines</p>'
|
|
23
|
+
+ '<p style="margin:8px 0 0;">Copyright © 2026 WIP Computer, Inc. All rights reserved.</p>'
|
|
24
|
+
+ '<p style="margin:4px 0 0;">'
|
|
25
|
+
+ '<a href="/legal/privacy/en-ww/" style="color:#a8a4a0;text-decoration:none;">Privacy Policy</a> | '
|
|
26
|
+
+ '<a href="/legal/internet-services/terms/site.html" style="color:#a8a4a0;text-decoration:none;">Terms of Use</a></p>'
|
|
27
|
+
+ '<p style="margin:4px 0 0;">'
|
|
28
|
+
+ '<a href="/agent.txt" style="color:#a8a4a0;text-decoration:none;">Are you an AI Agent?</a></p>'
|
|
29
|
+
+ '<p style="margin:4px 0 0;">Made in California.</p>';
|
|
30
|
+
} else {
|
|
31
|
+
inner.innerHTML = '<p style="margin:0;">WIP Computer, Inc.</p>'
|
|
32
|
+
+ '<p style="margin:2px 0 0;">Learning Dreaming Machines</p>'
|
|
33
|
+
+ '<p style="margin:8px 0 0;">Copyright © 2026 WIP Computer, Inc. All rights reserved. '
|
|
34
|
+
+ '<a href="/legal/privacy/en-ww/" style="color:#a8a4a0;text-decoration:none;">Privacy Policy</a> | '
|
|
35
|
+
+ '<a href="/legal/internet-services/terms/site.html" style="color:#a8a4a0;text-decoration:none;">Terms of Use</a></p>'
|
|
36
|
+
+ '<p style="margin:4px 0 0;">'
|
|
37
|
+
+ '<a href="/agent.txt" style="color:#a8a4a0;text-decoration:none;">Are you an AI Agent?</a> | '
|
|
38
|
+
+ '<a id="localPasskeysToggle" onclick="toggleLocalPasskeys()" style="color:#a8a4a0;text-decoration:none;cursor:pointer;display:inline-flex;align-items:center;gap:4px;vertical-align:middle;">'
|
|
39
|
+
+ '<span id="passkeys-dot" style="display:inline-block;width:8px;height:8px;border-radius:50%;"></span> '
|
|
40
|
+
+ '<span id="passkeys-label">Local passkeys off</span></a></p>'
|
|
41
|
+
+ '<p style="margin:4px 0 0;">Made in California.</p>';
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
container.appendChild(inner);
|
|
45
|
+
|
|
46
|
+
// Local passkeys toggle
|
|
47
|
+
if (!window.isLocalPasskeysOn) {
|
|
48
|
+
window.isLocalPasskeysOn = function() { return localStorage.getItem('localPasskeys') === 'on'; };
|
|
49
|
+
}
|
|
50
|
+
if (!window.toggleLocalPasskeys) {
|
|
51
|
+
window.toggleLocalPasskeys = function() {
|
|
52
|
+
var on = isLocalPasskeysOn();
|
|
53
|
+
localStorage.setItem('localPasskeys', on ? 'off' : 'on');
|
|
54
|
+
updatePasskeysDot();
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
if (!window.updatePasskeysDot) {
|
|
58
|
+
window.updatePasskeysDot = function() {
|
|
59
|
+
var dot = document.getElementById('passkeys-dot');
|
|
60
|
+
var label = document.getElementById('passkeys-label');
|
|
61
|
+
if (!dot) return;
|
|
62
|
+
if (isLocalPasskeysOn()) {
|
|
63
|
+
dot.style.background = '#2E7D32';
|
|
64
|
+
dot.style.opacity = '1';
|
|
65
|
+
if (label) label.textContent = 'Local passkeys on';
|
|
66
|
+
} else {
|
|
67
|
+
dot.style.background = '#D32F2F';
|
|
68
|
+
dot.style.opacity = '0.4';
|
|
69
|
+
if (label) label.textContent = 'Local passkeys off';
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
updatePasskeysDot();
|
|
74
|
+
})();
|