{"version":2,"transport":{"browser":"window.gonzxp.tools.call(tool, params, requestId?)","aim":"/api/eve/aim","execution":"Browser-local; discovery endpoints do not read or mutate visitor files.","resultEvent":"gonzxp:tool.result"},"name":"gonzxp.shell","ownership":"client","description":"Discoverable shell API contract for app-owned tools. Agent and voice integrations should call these narrow actions instead of automating DOM clicks.","tools":[{"name":"computer.screenshot","domain":"shell","status":"available","description":"Capture the current GonzXP desktop as a bounded image with private/external regions masked. Optionally focus an already-open window before capture for grounded movement/resizing. No host OS access.","parameters":{"windowId":"optional registered open window ID to focus before capture"},"clientEvent":"gonzxp:computer.screenshot"},{"name":"computer.click_at","domain":"shell","status":"available","description":"Click an unchanged visible shell control at screenshot coordinates. Consumes the image ID.","parameters":{"snapshotId":"fresh screenshot ID","x":"integer image pixels","y":"integer image pixels","doubleClick":"optional boolean"},"clientEvent":"gonzxp:computer.click_at"},{"name":"computer.drag","domain":"shell","status":"available","description":"Move or resize a shell window from a fresh screenshot point by CSS-pixel deltas; scale conversion is handled by the tool. Returns requested and actual geometry changes. Manual input cancels the snapshot.","parameters":{"snapshotId":"fresh screenshot ID","fromX":"integer image pixels","fromY":"integer image pixels","deltaX":"integer CSS pixels (-2000..2000)","deltaY":"integer CSS pixels (-2000..2000)","toX":"legacy image endpoint; use only with toY instead of deltas","toY":"legacy image endpoint; use only with toX instead of deltas"},"clientEvent":"gonzxp:computer.drag"},{"name":"computer.inspect","domain":"shell","status":"available","description":"Same-session visible semantic UI controls. Inspect first; opaque targets expire on action/user takeover. No host OS or pixel control.","parameters":{},"clientEvent":"gonzxp:computer.inspect"},{"name":"computer.click","domain":"shell","status":"available","description":"Same-session visible semantic UI controls. Inspect first; opaque targets expire on action/user takeover. No host OS or pixel control.","parameters":{"targetId":"fresh inspection target","doubleClick":"optional boolean"},"clientEvent":"gonzxp:computer.click"},{"name":"computer.type","domain":"shell","status":"available","description":"Same-session visible semantic UI controls. Inspect first; opaque targets expire on action/user takeover. No host OS or pixel control.","parameters":{"targetId":"fresh inspection target","text":"string","expectedValue":"exact current value"},"clientEvent":"gonzxp:computer.type"},{"name":"computer.keypress","domain":"shell","status":"available","description":"Same-session visible semantic UI controls. Inspect first; opaque targets expire on action/user takeover. No host OS or pixel control.","parameters":{"targetId":"fresh inspection target","key":"supported key","expectedValue":"exact current field value"},"clientEvent":"gonzxp:computer.keypress"},{"name":"computer.scroll","domain":"shell","status":"available","description":"Same-session visible semantic UI controls. Inspect first; opaque targets expire on action/user takeover. No host OS or pixel control.","parameters":{"targetId":"fresh inspection target","amount":"integer pixels"},"clientEvent":"gonzxp:computer.scroll"},{"name":"command.execute","domain":"run","status":"available","description":"Execute one bounded simulated command in the visible Command Prompt session; reject unsent input and active Snake. Return actual output and cwd, never execute host commands.","parameters":{"command":"string (single line, max 2000)"},"clientEvent":"gonzxp:command.execute"},{"name":"media.get_state","domain":"media","status":"available","description":"Open Winamp if needed and inspect its playlist and actual playback state.","parameters":{},"clientEvent":"gonzxp:media.get_state"},{"name":"media.control","domain":"media","status":"available","description":"Request Winamp playback control; return observed status without claiming audible output.","parameters":{"action":"play | pause | stop | next | previous","index":"integer (optional with play)"},"clientEvent":"gonzxp:media.control"},{"name":"media.add_track","domain":"media","status":"available","description":"Append a direct HTTPS audio file URL, optionally requesting play. Video page URLs are unsupported.","parameters":{"url":"string","title":"string (optional)","play":"boolean (optional)"},"clientEvent":"gonzxp:media.add_track"},{"name":"shell.get_context","domain":"shell","status":"available","description":"Read live browser theme, app registry, window state, editor dirty status, and saved note metadata. Does not include note contents.","parameters":{},"clientEvent":"gonzxp:shell.get_context"},{"name":"notes.list","domain":"filesystem","status":"available","description":"List saved notes in the browser-local Desktop or My Documents.","parameters":{"location":"desktop | documents (optional)"},"clientEvent":"gonzxp:notes.list"},{"name":"notes.read","domain":"filesystem","status":"available","description":"Read one saved note by id.","parameters":{"id":"string"},"clientEvent":"gonzxp:notes.read"},{"name":"notes.create","domain":"filesystem","status":"available","description":"Persist a new note without overwriting existing files. Optionally request opening through Notepad's unsaved-changes guard.","parameters":{"title":"string","content":"string","location":"desktop | documents (optional)","open":"boolean (optional)"},"clientEvent":"gonzxp:notes.create"},{"name":"notes.save","domain":"filesystem","status":"available","description":"Update a saved note only if expectedContent matches; does not replace a dirty editor.","parameters":{"id":"string","content":"string","expectedContent":"string"},"clientEvent":"gonzxp:notes.save"},{"name":"notes.delete","domain":"filesystem","status":"available","description":"Permanently delete a saved browser-local note only if expectedContent matches; protect dirty editors. No recycle-bin recovery.","parameters":{"id":"string","expectedContent":"string"},"clientEvent":"gonzxp:notes.delete"},{"name":"notes.open","domain":"filesystem","status":"available","description":"Request opening a saved note. Result reports a request, not completion; unsaved changes can require a user decision.","parameters":{"id":"string"},"clientEvent":"gonzxp:notes.open"},{"name":"programs.create","domain":"filesystem","status":"available","description":"Have the program writer build a new program from a plain-words request: a Windows program (a tool, in the theme's own controls) or a creative one (a game, a toy, art), saved as an .exe with its own icon; or a .py or .bat console program. A windowed program's window fills in as it is written and it starts when done; from AIM the call returns at once and the build reports in the chat.","parameters":{"title":"program name; .py, .bat or .hta picks that kind","request":"string (max 4000)","kind":"windows | creative (optional)","icon":"an icon vocabulary key (optional)","location":"desktop | documents (optional)","open":"boolean (optional)"},"clientEvent":"gonzxp:programs.create"},{"name":"programs.update","domain":"filesystem","status":"available","description":"Have the program writer change an existing program as requested, in place where it can, and save it; a running program restarts in its window.","parameters":{"id":"string","request":"string (max 4000)","open":"boolean (optional)"},"clientEvent":"gonzxp:programs.update"},{"name":"files.open","domain":"filesystem","status":"available","description":"Open a saved file by its class, as a double-click does: .exe and .hta in a window, .py and .bat in a console, others in Notepad.","parameters":{"id":"string"},"clientEvent":"gonzxp:files.open"},{"name":"shell.get_surface","domain":"shell","status":"available","description":"Return the discoverable gonzXP shell API contract, including windows and available tool actions.","parameters":{},"returns":"Shell API surface JSON."},{"name":"shell.open_window","domain":"windows","status":"available","description":"Open, restore, and focus a gonzXP window by id. The browser UI remains the source of truth for visible state.","parameters":{"windowId":["about","computer","internetExplorer","notepad","commandPrompt","control","display","run","aim","aimChat","aimAbout","aimProfile","aimAway","aimBuddyAway","aimNewIm","aimPreferences","aimBuddyInfo","wow","winamp","pinball","solitaire","minesweeper"]},"returns":"A result object with ok and windowId.","clientEvent":"gonzxp:shell.open_window","notes":"Per-buddy AIM windows are addressable as `aimChat:<screen name>` in addition to the registered ids."},{"name":"shell.close_window","domain":"windows","status":"available","description":"Close a gonzXP window by id without requiring DOM automation.","parameters":{"windowId":["about","computer","internetExplorer","notepad","commandPrompt","control","display","run","aim","aimChat","aimAbout","aimProfile","aimAway","aimBuddyAway","aimNewIm","aimPreferences","aimBuddyInfo","wow","winamp","pinball","solitaire","minesweeper"]},"returns":"A result object with ok and windowId.","clientEvent":"gonzxp:shell.close_window","notes":"Per-buddy AIM windows are addressable as `aimChat:<screen name>` in addition to the registered ids."},{"name":"shell.focus_window","domain":"windows","status":"available","description":"Focus, restore, and raise an already-open window by id.","parameters":{"windowId":["about","computer","internetExplorer","notepad","commandPrompt","control","display","run","aim","aimChat","aimAbout","aimProfile","aimAway","aimBuddyAway","aimNewIm","aimPreferences","aimBuddyInfo","wow","winamp","pinball","solitaire","minesweeper"]},"returns":"A result object with ok and windowId.","clientEvent":"gonzxp:shell.focus_window","notes":"Per-buddy AIM windows are addressable as `aimChat:<screen name>` in addition to the registered ids."},{"name":"windows.get_state","domain":"windows","status":"available","description":"Return the current open/minimized/maximized/focused window state, pending attention flags, and geometry read model.","parameters":{},"returns":"A result object with ok, activeWindow, zOrder, and windows.","clientEvent":"gonzxp:windows.get_state"},{"name":"session.set_status","domain":"session","status":"planned","description":"Log in, log off, restart, shut down, or return to the desktop through a typed session action.","parameters":{"status":["loggedOut","loggedInInBackground","activeOnDesktop","shutdown","restart"]},"returns":"A result object with ok and status.","clientEvent":"gonzxp:session.set_status"},{"name":"theme.set_theme","domain":"theme","status":"planned","description":"Switch the desktop chrome theme.","parameters":{"theme":["xp","98"]},"returns":"A result object with ok and theme.","clientEvent":"gonzxp:theme.set_theme"},{"name":"theme.set_wallpaper","domain":"theme","status":"planned","description":"Set the desktop wallpaper by the same wallpaper id used by Display Properties.","parameters":{"wallpaperId":"string"},"returns":"A result object with ok and wallpaperId.","clientEvent":"gonzxp:theme.set_wallpaper"},{"name":"filesystem.open_view","domain":"filesystem","status":"planned","description":"Open a simulated Explorer location such as My Computer, My Documents, a drive, or shared folders.","parameters":{"viewId":["my-computer","mikes-documents","shared-documents","local-disk","dvd"]},"returns":"A result object with ok and viewId.","clientEvent":"gonzxp:filesystem.open_view"},{"name":"aim.sign_on","domain":"aim","status":"planned","description":"Sign into AIM with a screen name and trigger the same sign-on flow used by the UI.","parameters":{"screenName":"string"},"returns":"A result object with ok, signedOn, and screenName.","clientEvent":"gonzxp:aim.sign_on"},{"name":"aim.sign_off","domain":"aim","status":"planned","description":"Sign out of AIM and close AIM child windows.","parameters":{},"returns":"A result object with ok and signedOn.","clientEvent":"gonzxp:aim.sign_off"},{"name":"aim.set_profile","domain":"aim","status":"planned","description":"Update the AIM profile text.","parameters":{"profile":"string"},"returns":"A result object with ok and profile.","clientEvent":"gonzxp:aim.set_profile"},{"name":"aim.set_away_message","domain":"aim","status":"planned","description":"Update the active AIM away label/message and save-for-later preference.","parameters":{"label":"string","message":"string","saveForLater":"boolean"},"returns":"A result object with ok, label, message, and saveForLater.","clientEvent":"gonzxp:aim.set_away_message"},{"name":"aim.set_buddy_icon","domain":"aim","status":"planned","description":"Choose a buddy icon from the original AIM Rewind buddy icon asset set or clear the icon.","parameters":{"buddyIconId":"string | null"},"returns":"A result object with ok and buddyIconId.","clientEvent":"gonzxp:aim.set_buddy_icon"},{"name":"aim.send_im","domain":"chat","status":"planned","description":"Send an AIM instant message to a buddy and append it to the chat transcript.","parameters":{"buddy":"string","message":"string"},"returns":"A result object with ok, buddy, and messageId.","clientEvent":"gonzxp:aim.send_im"},{"name":"games.open","domain":"games","status":"planned","description":"Open a bundled game by id.","parameters":{"gameId":["pinball","solitaire","minesweeper","wow"]},"returns":"A result object with ok and gameId.","clientEvent":"gonzxp:games.open"},{"name":"media.open_winamp","domain":"media","status":"planned","description":"Open Winamp and report whether Webamp mounted successfully.","parameters":{},"returns":"A result object with ok and status.","clientEvent":"gonzxp:media.open_winamp","notes":"Detailed transport controls depend on Webamp state bridging."},{"name":"run.resolve_command","domain":"run","status":"planned","description":"Resolve a Run dialog command to a shell action without opening UI.","parameters":{"command":"string"},"returns":"A result object with ok, command, and action.","clientEvent":"gonzxp:run.resolve_command"}],"domains":[{"domain":"shell","status":"partial","current":["Static discovery endpoints expose apps, actions, and tool metadata.","Browser-side dispatch exists for shell/window tools and persistent notes. AIM model replies can execute validated browser tools and receive their results."],"gaps":["Session, theme mutations, AIM profile controls, games state and media controls remain planned stubs."],"recommendedTools":["shell.get_surface"]},{"domain":"windows","status":"partial","current":["Windows can be opened/restored/focused/closed from typed shell app ids.","Current window visibility, focus, geometry, z-order, and attention flags can be read through `windows.get_state`."],"gaps":["Move, resize, minimize, maximize, and instance-level dialog relationships are still UI-only today.","Requesting attention for a window is internal to the shell; there is no tool-facing action for it."],"recommendedTools":["shell.open_window","shell.close_window","shell.focus_window","windows.get_state"]},{"domain":"session","status":"missing","current":["Session transitions exist in React state and UI flows."],"gaps":["Login, logoff, shutdown, restart, and unlock are not addressable by tool calls."],"recommendedTools":["session.set_status"]},{"domain":"theme","status":"missing","current":["Theme, wallpaper, and volume controls exist in Control Panel/taskbar UI state."],"gaps":["No typed API for theme, wallpaper, mute, or volume state."],"recommendedTools":["theme.set_theme","theme.set_wallpaper"]},{"domain":"filesystem","status":"partial","current":["Notes support list/read/create/save/open on browser-local Desktop and My Documents. Writes reject name collisions and stale content."],"gaps":["Explorer navigation and arbitrary file operations remain planned."],"recommendedTools":["notes.list","notes.read","notes.create","notes.save","notes.open","filesystem.open_view"]},{"domain":"aim","status":"partial","current":["AIM sign-on, dialogs, profile, away message, buddy icon preferences, and chat are interactive UI state.","The buddy list persists locally; buddies and groups can be added, removed, and IMed from the UI."],"gaps":["No typed actions for sign on/off, profile, away, buddy icon, preferences, buddy list edits, or buddy info."],"recommendedTools":["aim.sign_on","aim.sign_off","aim.set_profile","aim.set_away_message","aim.set_buddy_icon","aim.add_buddy"]},{"domain":"chat","status":"partial","current":["SmarterChild transcript supports UI sending."],"gaps":["No transcript read model, no deterministic message ids across reloads, and no tool-facing send action."],"recommendedTools":["aim.send_im"]},{"domain":"games","status":"partial","current":["Pinball, Solitaire, Minesweeper, and WoW can be opened as windows."],"gaps":["No game-specific state or input APIs beyond window launch."],"recommendedTools":["games.open"]},{"domain":"media","status":"partial","current":["Winamp mounts through Webamp in a shell window."],"gaps":["No media playback state bridge or transport controls."],"recommendedTools":["media.open_winamp"]},{"domain":"run","status":"partial","current":["Run dialog resolves aliases to shell window-open actions."],"gaps":["Command resolution is only available inside the client component, not as a documented tool result."],"recommendedTools":["run.resolve_command"]}],"actions":[{"type":"window.open","status":"available","description":"Open, restore, and focus a gonzXP window by id.","parameters":{"windowId":["about","computer","internetExplorer","notepad","commandPrompt","control","display","run","aim","aimChat","aimAbout","aimProfile","aimAway","aimBuddyAway","aimNewIm","aimPreferences","aimBuddyInfo","wow","winamp","pinball","solitaire","minesweeper"]}},{"type":"window.close","status":"available","description":"Close a currently open gonzXP window by id.","parameters":{"windowId":["about","computer","internetExplorer","notepad","commandPrompt","control","display","run","aim","aimChat","aimAbout","aimProfile","aimAway","aimBuddyAway","aimNewIm","aimPreferences","aimBuddyInfo","wow","winamp","pinball","solitaire","minesweeper"]}},{"type":"window.focus","status":"available","description":"Focus, restore, and raise a currently open gonzXP window by id.","parameters":{"windowId":["about","computer","internetExplorer","notepad","commandPrompt","control","display","run","aim","aimChat","aimAbout","aimProfile","aimAway","aimBuddyAway","aimNewIm","aimPreferences","aimBuddyInfo","wow","winamp","pinball","solitaire","minesweeper"]}},{"type":"windows.get_state","status":"available","description":"Read current gonzXP window visibility, focus, z-order, and geometry.","parameters":{}}],"apps":[{"id":"about","label":"About gonzXP","title":"About gonzXP","icon":"about","aliases":[],"agentSummary":"Open the gonzXP system/about window.","launchableFromRun":true,"surface":"desktop"},{"id":"computer","label":"My Computer","title":"My Computer","icon":"my-computer","aliases":["explorer","explorer.exe","my documents"],"agentSummary":"Open the file explorer surface.","launchableFromRun":true,"surface":"desktop"},{"id":"internetExplorer","label":"Internet Explorer","title":"Microsoft Internet Explorer","icon":"internet-explorer","aliases":["internet","iexplore","iexplore.exe","internet explorer"],"agentSummary":"Open Internet Explorer, which browses the Web as the Internet Archive kept it in the theme's era (XP: 2006, 98: 1999).","launchableFromRun":true,"surface":"desktop"},{"id":"notepad","label":"Notepad","title":"Untitled - Notepad","icon":"notepad","aliases":["notepad.exe"],"agentSummary":"Open Notepad.","launchableFromRun":true,"surface":"start-menu"},{"id":"commandPrompt","label":"Command Prompt","title":"C:\\WINDOWS\\system32\\cmd.exe","icon":"command-prompt","aliases":["cmd","cmd.exe","command prompt"],"agentSummary":"Open the Windows XP Command Prompt with commands for the virtual filesystem.","launchableFromRun":true,"surface":"start-menu"},{"id":"control","label":"Control Panel","title":"Control Panel","icon":"control-panel","aliases":["control","control.exe"],"agentSummary":"Open Control Panel.","launchableFromRun":true,"surface":"desktop"},{"id":"display","label":"Display Properties","title":"Display Properties","icon":"display","aliases":["display","desktop","desk.cpl"],"agentSummary":"Open Display Properties.","launchableFromRun":true,"surface":"taskbar"},{"id":"run","label":"Run","title":"Run","icon":"run","aliases":["run.exe"],"agentSummary":"Open the Run command dialog.","launchableFromRun":true,"surface":"start-menu"},{"id":"aim","label":"AOL Instant Messenger","title":"AOL Instant Messenger","icon":"aim","aliases":["aim","aol","aol instant messenger","aim.exe"],"agentSummary":"Open the AIM sign-on or buddy list window.","launchableFromRun":true,"surface":"desktop"},{"id":"aimChat","label":"SmarterChild","title":"SmarterChild","icon":"aim","aliases":["smarterchild","instant message","im"],"agentSummary":"Open the SmarterChild instant message window.","launchableFromRun":true,"surface":"taskbar"},{"id":"aimAbout","label":"About AOL Instant Messenger","title":"About AOL Instant Messenger","icon":"aim","aliases":[],"agentSummary":"Open AIM's about window.","launchableFromRun":false,"surface":"aim-dialog"},{"id":"aimProfile","label":"Edit Profile","title":"Edit Profile","icon":"aim","aliases":[],"agentSummary":"Open AIM profile editing.","launchableFromRun":false,"surface":"aim-dialog"},{"id":"aimAway","label":"Edit Away Message","title":"Edit Away Message","icon":"aim","aliases":[],"agentSummary":"Open AIM away message editing.","launchableFromRun":false,"surface":"aim-dialog"},{"id":"aimBuddyAway","label":"Away Message","title":"Away Message","icon":"aim","aliases":[],"agentSummary":"Open the read-only Away Message a buddy has up.","launchableFromRun":false,"surface":"aim-dialog"},{"id":"aimNewIm","label":"New Instant Message","title":"New Instant Message","icon":"aim","aliases":[],"agentSummary":"Open AIM's New Instant Message screen name prompt.","launchableFromRun":false,"surface":"aim-dialog"},{"id":"aimPreferences","label":"AIM Preferences","title":"AIM Preferences","icon":"aim","aliases":[],"agentSummary":"Open AIM preferences.","launchableFromRun":false,"surface":"aim-dialog"},{"id":"aimBuddyInfo","label":"Buddy Info","title":"Buddy Info","icon":"aim","aliases":[],"agentSummary":"Open AIM buddy information.","launchableFromRun":false,"surface":"aim-dialog"},{"id":"wow","label":"World of Warcraft","title":"World of Warcraft","icon":"wow","aliases":["wow","wow.exe","warcraft"],"agentSummary":"Open the World of Warcraft login screen.","launchableFromRun":true,"surface":"desktop"},{"id":"winamp","label":"Winamp","title":"Winamp","icon":"winamp","aliases":["winamp.exe"],"agentSummary":"Open Winamp.","launchableFromRun":true,"surface":"desktop"},{"id":"pinball","label":"3D Pinball","title":"3D Pinball for Windows - Space Cadet","icon":"pinball","aliases":["pinball","pinball.exe","3d pinball for windows"],"agentSummary":"Open 3D Pinball.","launchableFromRun":true,"surface":"start-menu"},{"id":"solitaire","label":"Solitaire","title":"Solitaire","icon":"solitaire","aliases":["sol","sol.exe","solitaire.exe"],"agentSummary":"Open Solitaire.","launchableFromRun":true,"surface":"start-menu"},{"id":"minesweeper","label":"Minesweeper","title":"Minesweeper","icon":"minesweeper","aliases":["winmine","winmine.exe","minesweeper.exe"],"agentSummary":"Open Minesweeper.","launchableFromRun":true,"surface":"start-menu"}]}