From b562e1491513163921593985f3542d4ee8ae0e75 Mon Sep 17 00:00:00 2001 From: Agando Date: Mon, 8 Jun 2026 18:01:06 +0200 Subject: auto: 2026-06-08_18:00 changes --- cheatsheet.html | 15 +- help.html | 55 ++- main.html | 133 +++++++- modules/core/module-aiassist.js | 10 + modules/core/module-loader.js | 4 +- modules/core/module-orchestrator.js | 660 ++++++++++++++++++++++++++++++++++-- modules/core/module-system.js | 2 +- modules/core/terminal.js | 6 +- modules/core/virtual-fs.js | 109 +----- modules/ext/alias.js | 26 +- modules/ext/floating.js | 331 ++++++++++++++++++ modules/ext/shell.js | 2 + modules/ext/skill-pack-core.js | 36 +- modules/test/test-suite.js | 54 +++ packages.json | 15 + review-newos4.html | 408 ++++++++++++++++++++++ 16 files changed, 1713 insertions(+), 153 deletions(-) create mode 100644 modules/ext/floating.js create mode 100644 review-newos4.html diff --git a/cheatsheet.html b/cheatsheet.html index 79601f9..aecb84e 100644 --- a/cheatsheet.html +++ b/cheatsheet.html @@ -34,7 +34,7 @@ pre{background:var(--bg2);border:1px solid var(--border);border-radius:var(--rad

⚡ newOS4 Quick Reference

-
WebX11 v4.4 · Full docs → · Ctrl+P to print
+
WebX11 v4.5.22 · Full docs → · Ctrl+P to print
@@ -51,6 +51,7 @@ pre{background:var(--bg2);border:1px solid var(--border);border-radius:var(--rad
touch <file>Create empty file
mkdir <dir>Create directory
rm <file>Remove file
+
rmdir <dir>Remove directory
cp <src> <dst>Copy file
mv <old> <new>Move/rename
edit <file>Open code editor
@@ -151,6 +152,18 @@ pre{background:var(--bg2);border:1px solid var(--border);border-radius:var(--rad
cmd > fileRedirect output
+

🪄 Floating

+
+
floating-add btn <id> <lbl> <cmd>Create a floating button
+
floating-add menu <id> <lbl> btn:X|cmd ...Create a floating menu
+
floating-add panel <id> <title> <text>Create a floating panel
+
floating-remove <id>Remove a floating element
+
floating-listList all floating elements
+
floating-toggle <id>Show/hide a floating element
+
floating-pos <id> <x> <y>Reposition element
+
floating-clearRemove all floating elements
+
+

🖥️ System

statusSystem status overview
diff --git a/help.html b/help.html index 5a827a0..76109e2 100644 --- a/help.html +++ b/help.html @@ -231,8 +231,8 @@ footer .tagline{color:var(--accent2);margin-top:10px;font-weight:500}

WebX11 Docs

- v4.5.11 - 28 core · 17 ext + v4.5.22 + 38 core · ext 160+ commands
@@ -1012,7 +1012,8 @@ echo 'export NAME=WebX11' > greet.sh echo 'echo "Hello, $NAME!"' >> greet.sh # Run it -script greet.sh +script greet.sh +sh greet.sh

Shell Commands

@@ -1021,9 +1022,46 @@ script greet.sh + + +
unset <var>Remove a shell variable
setList all shell variables
script <path.sh>Run a VFS script file
sh <path.sh>Alias for script — run a VFS script file
alias [name=value]List aliases or set a custom alias name=command
unalias <name>Remove a custom alias
+ +
+

🪄 Floating UI

+
+ Remixable floating buttons · Menus · Panels + The Floating Module lets you or the AI spawn persistent floating UI elements that survive page reloads. All state is kept in localStorage. +
+
+ + + + + + + + + +
CommandDescription
floating-add btn <id> <label> <command>Spawn a floating button that runs a terminal command
floating-add menu <id> <label> btn:Sub|cmd ...Spawn a collapsible floating menu with sub-buttons
floating-add panel <id> <title> <content>Spawn a floating text panel
floating-remove <id>Remove a floating element
floating-listShow all floating elements with IDs and positions
floating-pos <id> <x|auto> <y|auto>Reposition a floating element
floating-toggle <id>Show/hide a floating element
floating-clearRemove all floating elements
+
# Create a button
+floating-add btn files "📁 Files" ls
+
+# Create a collapsible menu
+floating-add menu tools "🔧 Tools" btn:Help|help btn:Clear|clear
+
+# Create a status panel
+floating-add panel status "📊 Status" "Ready"
+
+# List all elements
+floating-list
+
+# Hide without removing
+floating-toggle files
+
+

🔒 Security & Guardrails

@@ -1135,15 +1173,22 @@ vfs-import agent-unregister <id>Remove an agent from the registry lease-listShow active leases — agent tasks with status and TTL orchestrate <task>Delegate multi-step task to agent orchestrator + orchestrate-parallel <task>Decompose and run sub-tasks in parallel (auto-splits on "and"/"then") + orchestrate-decompose <task>Preview how a task would be split into sub-tasks + orchestrate-resultShow results of the last parallel batch orchestrator-statusShow orchestrator agent pool status orchestrator-listList all spawned agents with full details orchestrator-spawn <role> [caps...]Spawn a new worker agent orchestrator-sleep <id>Suspend agent to VFS (survives reload) orchestrator-wake <id>Restore agent from VFS sleep state orchestrator-kill <id>Terminate an agent and revoke leases - orchestrator-purgeRemove dead agents (>60s silent) - orchestrator-config <key> <value>Tune: spawn-limit, spawn-strategy, heartbeat-timeout, idle-timeout, restart-policy, a2a-polling, a2a-poll-interval, heartbeat-check, idle-sweep-interval, dead-purge-timeout (persisted) + orchestrator-purgeRemove dead agents (>60s silent) + orchestrator-config <key> <value>Tune: spawn-limit, spawn-strategy, heartbeat-timeout, idle-timeout, restart-policy, a2a-polling (on/off), a2a-poll-interval, heartbeat-check, idle-sweep-interval, dead-purge-timeout, consensus-size, consensus-strategy, consensus-timeout, pipeline-auto-fix, pipeline-stage-timeout (persisted) orchestrator-restart-policy <id> <policy>Set per-agent restart policy: on-failure, always, never + consensus <question>Consensus: spawn N agents, debate, resolve by majority vote + consensus-statusShow current/active consensus round status + consensus-historyShow past consensus rounds and resolutions + pipeline <test|deploy|verify|history|config>Autonomous CI/CD: test agents/modules, deploy (test→auto-fix→verify), history, config lease-create <agent-id> [duration] [task]Create a time-bound lease for a worker agent lease-listShow active leases — agent tasks with status and TTL lease-revoke <id>Revoke an active lease diff --git a/main.html b/main.html index cf1b33a..5c7a69c 100644 --- a/main.html +++ b/main.html @@ -666,6 +666,132 @@ .cmd-card .cmd { font-family: var(--font-primary); font-weight: bold; font-size: 0.85em; color: var(--accent-color); flex-shrink: 0; min-width: 60px; } .cmd-card .desc { font-size: 0.78em; color: var(--text-muted); } #cmd-cards-toggle { cursor: pointer; font-size: 1.1em; line-height: 1; } + + /* ── Floating UI Module ── */ + #floating-container { + position: fixed; + bottom: calc(50px + 25px + 8px); + right: 12px; + z-index: 500; + display: flex; + flex-direction: column-reverse; + align-items: flex-end; + gap: 6px; + pointer-events: none; + max-width: 280px; + } + .floating-btn { + pointer-events: auto; + background: var(--bg-tertiary); + border: 1px solid var(--border-color); + color: var(--text-color); + padding: 8px 14px; + border-radius: 8px; + font-family: inherit; + font-size: 0.9em; + cursor: pointer; + display: flex; + align-items: center; + gap: 6px; + white-space: nowrap; + touch-action: manipulation; + min-height: 44px; + box-shadow: 0 2px 8px rgba(0,0,0,0.4); + transition: border-color 0.15s, background 0.15s; + user-select: none; + } + .floating-btn:hover, + .floating-btn:active { + border-color: var(--accent-color); + background: #0a1a0a; + } + .floating-menu { + pointer-events: auto; + background: var(--bg-tertiary); + border: 1px solid var(--border-color); + border-radius: 8px; + overflow: hidden; + min-width: 140px; + box-shadow: 0 2px 12px rgba(0,0,0,0.5); + } + .floating-menu-header { + padding: 8px 14px; + cursor: pointer; + display: flex; + align-items: center; + gap: 8px; + font-size: 0.9em; + min-height: 44px; + touch-action: manipulation; + user-select: none; + border-bottom: 1px solid var(--border-color); + } + .floating-menu-header:hover { + background: #0a1a0a; + } + .floating-menu-header .arrow { + transition: transform 0.2s; + font-size: 0.7em; + } + .floating-menu-header .arrow.collapsed { + transform: rotate(-90deg); + } + .floating-menu-body { + overflow: hidden; + transition: max-height 0.2s ease-out; + max-height: 0; + } + .floating-menu-body.expanded { + max-height: 300px; + } + .floating-menu-btn { + display: block; + width: 100%; + text-align: left; + padding: 8px 14px 8px 24px; + background: transparent; + border: none; + color: var(--text-muted); + font-family: inherit; + font-size: 0.85em; + cursor: pointer; + touch-action: manipulation; + min-height: 40px; + } + .floating-menu-btn:hover, + .floating-menu-btn:active { + background: #0a1a0a; + color: var(--text-color); + } + .floating-panel { + pointer-events: auto; + background: var(--bg-secondary); + border: 1px solid var(--border-color); + border-radius: 8px; + padding: 8px 14px; + font-size: 0.8em; + min-width: 120px; + box-shadow: 0 2px 8px rgba(0,0,0,0.4); + } + .floating-panel-title { + font-weight: bold; + color: var(--text-muted); + margin-bottom: 4px; + font-size: 0.9em; + } + .floating-panel-content { + color: var(--text-color); + line-height: 1.4; + } + @keyframes float-in { + from { opacity: 0; transform: translateY(8px) scale(0.95); } + to { opacity: 1; transform: translateY(0) scale(1); } + } + .floating-btn, + .floating-menu, + .floating-panel { + animation: float-in 0.15s ease-out; + } @@ -718,6 +844,9 @@
Loading modules...
+ +
+ @@ -1058,7 +1187,7 @@ var mods = [ ['Foundation (always loaded)', ['virtual-fs.js','module-manager.js','ollama-manager.js','terminal.js'], true], ['Built-in modules', ['module-system.js','module-fs.js','module-modmgr.js','module-ollama.js','module-my.js','module-searxng.js','module-servermon.js','module-ollamamodels.js','module-config.js','module-simplegui.js','module-io.js','module-dynamicprompts.js','module-aiassist.js','module-aiasm.js','module-smartctx.js','module-duckduckgo.js','module-fetcher.js','module-skills.js','module-chatstudio.js'], false], - ['Extensions', ['calc.js','voice.js','cron.js','theme.js','wpm.js','mindmap.js','webdav.js','skill-pack-core.js','editor.js','diff.js','alias.js','finder.js','filemgr.js','cryptogzip.js','tutorial.js','shell.js','busybox.js'], false] + ['Extensions', ['calc.js','voice.js','cron.js','theme.js','wpm.js','mindmap.js','webdav.js','skill-pack-core.js','editor.js','diff.js','alias.js','finder.js','filemgr.js','cryptogzip.js','tutorial.js','shell.js','busybox.js','floating.js'], false] ]; var isSel = function(name) { return true; }; // default: all selected mods.forEach(function(section) { @@ -1095,7 +1224,7 @@ - +