From 05d991181d51e5ce088f4f961de704c4b1d86c3e Mon Sep 17 00:00:00 2001 From: Josh Knapp Date: Tue, 22 Sep 2026 22:26:18 -0700 Subject: [PATCH] feat(acl): gate every app command per window via a Tauri AppManifest build.rs now derives an AppManifest from generate_handler!, which makes tauri 2.11 apply the ACL to app commands (it skips them entirely without one). default.json grants the 110 main-window commands, file-viewer.json the five viewer_* commands, and build.rs refuses to build on a missing, misspelled, duplicated, misfiled or deny-* grant, or on a hand-written permission file. Stale autogenerated permissions are pruned per build. Closes the residual risk recorded by the terminal file viewer: a compromised viewer window could invoke any app command. Co-Authored-By: Claude Opus 5.5 (1M context) --- .gitignore | 3 + app/src-tauri/Cargo.toml | 2 + app/src-tauri/build.rs | 123 +- app/src-tauri/capabilities/default.json | 112 +- app/src-tauri/capabilities/file-viewer.json | 7 +- app/src-tauri/gen/schemas/acl-manifests.json | 2 +- app/src-tauri/gen/schemas/capabilities.json | 2 +- app/src-tauri/gen/schemas/desktop-schema.json | 1380 +++++++++++++++++ app/src-tauri/gen/schemas/linux-schema.json | 1380 +++++++++++++++++ app/src-tauri/src/file_viewer/mod.rs | 8 + app/src-tauri/src/lib.rs | 27 +- 11 files changed, 3038 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index 3494414..733330e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,9 @@ node_modules/ app/dist/ app/src-tauri/target/ +# Written by build.rs (tauri-build AppManifest); gen/schemas/acl-manifests.json is the +# tracked, reviewable form of the same information. +app/src-tauri/permissions/autogenerated/ Screenshot*.png code-review.md diff --git a/app/src-tauri/Cargo.toml b/app/src-tauri/Cargo.toml index 30558d5..040e219 100644 --- a/app/src-tauri/Cargo.toml +++ b/app/src-tauri/Cargo.toml @@ -51,6 +51,8 @@ tokio = { version = "1", features = ["full", "test-util"] } [build-dependencies] tauri-build = { version = "2", features = [] } +# build.rs reads capabilities/*.json to cross-check them against generate_handler!. +serde_json = "1" [features] default = ["custom-protocol"] diff --git a/app/src-tauri/build.rs b/app/src-tauri/build.rs index d860e1e..5af47e7 100644 --- a/app/src-tauri/build.rs +++ b/app/src-tauri/build.rs @@ -1,3 +1,122 @@ -fn main() { - tauri_build::build() +//! Declares the Tauri `AppManifest`, so every app command is ACL-gated per window, and refuses +//! to build unless every registered command is granted in exactly one capability file — the +//! file whose `windows` the command's name says it belongs to. Without an app manifest, tauri +//! 2.11 skips the ACL for app commands entirely (`webview/mod.rs:1794`), so any local window +//! could call any command. +//! +//! The parser and the rules live in `src/command_census.rs`, which `cargo test` also compiles, +//! so they have unit tests. Spec: `docs/superpowers/specs/2026-09-22-app-manifest-lockdown-design.md`. + +#[path = "src/command_census.rs"] +mod command_census; + +use std::path::Path; + +fn fail(problems: &[String]) -> ! { + eprintln!(); + eprintln!( + "capabilities do not match generate_handler! ({} problem{}):", + problems.len(), + if problems.len() == 1 { "" } else { "s" } + ); + for p in problems { + eprintln!(" - {p}"); + } + eprintln!(); + eprintln!( + "Every app command needs exactly one bare `allow-` grant: \ + `viewer_*` commands in capabilities/file-viewer.json, everything else in \ + capabilities/default.json. See src/command_census.rs." + ); + eprintln!(); + std::process::exit(1); +} + +fn main() { + // tauri-build already emits rerun-if-changed for `capabilities` and `permissions`. + println!("cargo:rerun-if-changed=src/lib.rs"); + println!("cargo:rerun-if-changed=src/command_census.rs"); + + let lib_rs = std::fs::read_to_string("src/lib.rs") + .expect("build.rs runs with CWD = src-tauri, so src/lib.rs must be readable"); + let Some(commands) = command_census::registered_commands(&lib_rs) else { + fail(&["src/lib.rs has no `generate_handler![ … ])` block to derive the AppManifest from" + .to_string()]); + }; + + let mut files = Vec::new(); + for entry in std::fs::read_dir("capabilities").expect("capabilities/ must exist") { + let path = entry.expect("readable entry in capabilities/").path(); + if path.extension().is_some_and(|e| e == "json") { + let name = path + .file_name() + .expect("a file name") + .to_string_lossy() + .into_owned(); + let json = + std::fs::read_to_string(&path).unwrap_or_else(|e| panic!("{name}: {e}")); + match command_census::capability_file(&name, &json) { + Ok(file) => files.push(file), + Err(problem) => fail(&[problem]), + } + } + } + files.sort_by(|a, b| a.name.cmp(&b.name)); + + let problems = command_census::check(&commands, &files); + if !problems.is_empty() { + fail(&problems); + } + + prune_permissions(&commands); + + // `AppManifest::commands` takes `&'static [&'static str]` and the struct is `Copy`, so + // there is no owned form; leaking is fine in a process that exits right after. + let leaked: Vec<&'static str> = commands + .into_iter() + .map(|c| &*Box::leak(c.into_boxed_str())) + .collect(); + let leaked: &'static [&'static str] = Box::leak(leaked.into_boxed_slice()); + let attributes = tauri_build::Attributes::new() + .app_manifest(tauri_build::AppManifest::new().commands(leaked)); + if let Err(error) = tauri_build::try_build(attributes) { + // Same shape as `tauri_build::build()`: message on stdout, then exit 1. + println!("{error:#}"); + std::process::exit(1); + } +} + +/// tauri-build writes `permissions/autogenerated/.toml` for every manifest command +/// and never deletes one, so a command removed from `lib.rs` would leave a permission a +/// capability could still reference (and the build would pass). Delete only the stale files: +/// tauri-build also emits `rerun-if-changed=permissions`, so regenerating everything would +/// touch every mtime and re-run this script — and recompile the crate — on every cargo +/// invocation. Anything else under `permissions/` is a hand-written grant the census cannot +/// see, so it is refused. +fn prune_permissions(commands: &[String]) { + let root = Path::new("permissions"); + let Ok(entries) = std::fs::read_dir(root) else { + return; + }; + for entry in entries { + let path = entry.expect("readable entry in permissions/").path(); + if path.file_name().is_some_and(|n| n == "autogenerated") && path.is_dir() { + for file in std::fs::read_dir(&path).expect("readable permissions/autogenerated") { + let file = file.expect("readable entry").path(); + let stem = file.file_stem().and_then(|s| s.to_str()).unwrap_or(""); + let live = file.extension().is_some_and(|e| e == "toml") + && commands.iter().any(|c| c == stem); + if !live { + std::fs::remove_file(&file) + .unwrap_or_else(|e| panic!("cannot delete stale {}: {e}", file.display())); + } + } + } else { + fail(&[format!( + "{} is not generated by build.rs; hand-written permissions are not allowed \ + (every grant is a bare allow-* string in a capability file)", + path.display() + )]); + } + } } diff --git a/app/src-tauri/capabilities/default.json b/app/src-tauri/capabilities/default.json index 71bbdf0..53fa6fb 100644 --- a/app/src-tauri/capabilities/default.json +++ b/app/src-tauri/capabilities/default.json @@ -7,6 +7,116 @@ "core:event:allow-unlisten", "core:webview:allow-internal-toggle-devtools", "dialog:allow-open", - "dialog:allow-save" + "dialog:allow-save", + "allow-check-docker", + "allow-check-image-exists", + "allow-build-image", + "allow-get-container-info", + "allow-list-projects", + "allow-add-project", + "allow-remove-project", + "allow-update-project", + "allow-start-project-container", + "allow-stop-project-container", + "allow-rebuild-project-container", + "allow-reconcile-project-statuses", + "allow-list-notes", + "allow-save-note", + "allow-delete-note", + "allow-get-container-staleness", + "allow-migrate-project-to-base", + "allow-confirm-migration", + "allow-rollback-migration", + "allow-get-migration-state", + "allow-set-auth-bridge-enabled", + "allow-get-auth-bridge-status", + "allow-set-browser-view-enabled", + "allow-get-browser-view-status", + "allow-check-browser-view-support", + "allow-install-browser-view-support", + "allow-install-browser-view-browser", + "allow-open-browser-view-popout", + "allow-close-browser-view-popout", + "allow-get-browser-view-popout-state", + "allow-set-browser-view-popout-always-on-top", + "allow-open-page-in-container-browser", + "allow-set-container-page-viewport", + "allow-get-container-page-state", + "allow-close-container-page", + "allow-set-browser-view-match-window", + "allow-get-browser-view-match-window", + "allow-acquire-claude-token", + "allow-submit-claude-token-code", + "allow-cancel-claude-token", + "allow-has-claude-token", + "allow-clear-claude-token", + "allow-sweep-claude-token-snapshots", + "allow-get-settings", + "allow-update-settings", + "allow-pull-image", + "allow-detect-aws-config", + "allow-inspect-ca-cert-path", + "allow-list-aws-profiles", + "allow-detect-host-timezone", + "allow-export-settings", + "allow-preview-settings-import", + "allow-apply-settings-import", + "allow-open-terminal-session", + "allow-terminal-input", + "allow-terminal-resize", + "allow-close-terminal-session", + "allow-paste-image-to-terminal", + "allow-upload-host-file-to-terminal", + "allow-start-audio-bridge", + "allow-send-audio-data", + "allow-stop-audio-bridge", + "allow-list-container-files", + "allow-download-container-backup", + "allow-download-container-file", + "allow-upload-files-to-container", + "allow-read-container-file", + "allow-rename-container-path", + "allow-create-container-directory", + "allow-open-file-viewer", + "allow-aws-sso-refresh", + "allow-get-app-version", + "allow-check-for-updates", + "allow-check-image-update", + "allow-get-help-content", + "allow-open-url-external", + "allow-detect-install-options", + "allow-run-docker-install", + "allow-start-web-terminal", + "allow-stop-web-terminal", + "allow-get-web-terminal-status", + "allow-regenerate-web-terminal-token", + "allow-get-stt-status", + "allow-start-stt", + "allow-stop-stt", + "allow-build-stt-image", + "allow-pull-stt-image", + "allow-transcribe-audio", + "allow-get-gateway-status", + "allow-start-gateway", + "allow-stop-gateway", + "allow-check-gateway-health", + "allow-build-gateway-image", + "allow-pull-gateway-image", + "allow-set-gateway-api-key", + "allow-clear-gateway-api-key", + "allow-get-gateway-auth-token", + "allow-regenerate-gateway-auth-token", + "allow-list-claude-sessions", + "allow-resume-session-command", + "allow-list-container-capabilities", + "allow-list-scheduled-tasks", + "allow-add-scheduled-task", + "allow-update-scheduled-task", + "allow-get-scheduled-task-log", + "allow-set-scheduled-task-enabled", + "allow-run-scheduled-task-now", + "allow-remove-scheduled-task", + "allow-get-scheduler-notifications", + "allow-clear-scheduler-notifications" ] } diff --git a/app/src-tauri/capabilities/file-viewer.json b/app/src-tauri/capabilities/file-viewer.json index 932b73e..083cca9 100644 --- a/app/src-tauri/capabilities/file-viewer.json +++ b/app/src-tauri/capabilities/file-viewer.json @@ -6,6 +6,11 @@ "core:event:allow-listen", "core:event:allow-unlisten", "core:window:allow-destroy", - "core:webview:allow-internal-toggle-devtools" + "core:webview:allow-internal-toggle-devtools", + "allow-viewer-get-state", + "allow-viewer-choose-file", + "allow-viewer-read-file", + "allow-viewer-poll-file", + "allow-viewer-write-file" ] } diff --git a/app/src-tauri/gen/schemas/acl-manifests.json b/app/src-tauri/gen/schemas/acl-manifests.json index c4a47e8..f6913e3 100644 --- a/app/src-tauri/gen/schemas/acl-manifests.json +++ b/app/src-tauri/gen/schemas/acl-manifests.json @@ -1 +1 @@ -{"core":{"default_permission":{"identifier":"default","description":"Default core plugins set.","permissions":["core:path:default","core:event:default","core:window:default","core:webview:default","core:app:default","core:image:default","core:resources:default","core:menu:default","core:tray:default"]},"permissions":{},"permission_sets":{},"global_scope_schema":null},"core:app":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-version","allow-name","allow-tauri-version","allow-identifier","allow-bundle-type","allow-register-listener","allow-remove-listener","allow-supports-multiple-windows"]},"permissions":{"allow-app-hide":{"identifier":"allow-app-hide","description":"Enables the app_hide command without any pre-configured scope.","commands":{"allow":["app_hide"],"deny":[]}},"allow-app-show":{"identifier":"allow-app-show","description":"Enables the app_show command without any pre-configured scope.","commands":{"allow":["app_show"],"deny":[]}},"allow-bundle-type":{"identifier":"allow-bundle-type","description":"Enables the bundle_type command without any pre-configured scope.","commands":{"allow":["bundle_type"],"deny":[]}},"allow-default-window-icon":{"identifier":"allow-default-window-icon","description":"Enables the default_window_icon command without any pre-configured scope.","commands":{"allow":["default_window_icon"],"deny":[]}},"allow-fetch-data-store-identifiers":{"identifier":"allow-fetch-data-store-identifiers","description":"Enables the fetch_data_store_identifiers command without any pre-configured scope.","commands":{"allow":["fetch_data_store_identifiers"],"deny":[]}},"allow-identifier":{"identifier":"allow-identifier","description":"Enables the identifier command without any pre-configured scope.","commands":{"allow":["identifier"],"deny":[]}},"allow-name":{"identifier":"allow-name","description":"Enables the name command without any pre-configured scope.","commands":{"allow":["name"],"deny":[]}},"allow-register-listener":{"identifier":"allow-register-listener","description":"Enables the register_listener command without any pre-configured scope.","commands":{"allow":["register_listener"],"deny":[]}},"allow-remove-data-store":{"identifier":"allow-remove-data-store","description":"Enables the remove_data_store command without any pre-configured scope.","commands":{"allow":["remove_data_store"],"deny":[]}},"allow-remove-listener":{"identifier":"allow-remove-listener","description":"Enables the remove_listener command without any pre-configured scope.","commands":{"allow":["remove_listener"],"deny":[]}},"allow-set-app-theme":{"identifier":"allow-set-app-theme","description":"Enables the set_app_theme command without any pre-configured scope.","commands":{"allow":["set_app_theme"],"deny":[]}},"allow-set-dock-visibility":{"identifier":"allow-set-dock-visibility","description":"Enables the set_dock_visibility command without any pre-configured scope.","commands":{"allow":["set_dock_visibility"],"deny":[]}},"allow-supports-multiple-windows":{"identifier":"allow-supports-multiple-windows","description":"Enables the supports_multiple_windows command without any pre-configured scope.","commands":{"allow":["supports_multiple_windows"],"deny":[]}},"allow-tauri-version":{"identifier":"allow-tauri-version","description":"Enables the tauri_version command without any pre-configured scope.","commands":{"allow":["tauri_version"],"deny":[]}},"allow-version":{"identifier":"allow-version","description":"Enables the version command without any pre-configured scope.","commands":{"allow":["version"],"deny":[]}},"deny-app-hide":{"identifier":"deny-app-hide","description":"Denies the app_hide command without any pre-configured scope.","commands":{"allow":[],"deny":["app_hide"]}},"deny-app-show":{"identifier":"deny-app-show","description":"Denies the app_show command without any pre-configured scope.","commands":{"allow":[],"deny":["app_show"]}},"deny-bundle-type":{"identifier":"deny-bundle-type","description":"Denies the bundle_type command without any pre-configured scope.","commands":{"allow":[],"deny":["bundle_type"]}},"deny-default-window-icon":{"identifier":"deny-default-window-icon","description":"Denies the default_window_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["default_window_icon"]}},"deny-fetch-data-store-identifiers":{"identifier":"deny-fetch-data-store-identifiers","description":"Denies the fetch_data_store_identifiers command without any pre-configured scope.","commands":{"allow":[],"deny":["fetch_data_store_identifiers"]}},"deny-identifier":{"identifier":"deny-identifier","description":"Denies the identifier command without any pre-configured scope.","commands":{"allow":[],"deny":["identifier"]}},"deny-name":{"identifier":"deny-name","description":"Denies the name command without any pre-configured scope.","commands":{"allow":[],"deny":["name"]}},"deny-register-listener":{"identifier":"deny-register-listener","description":"Denies the register_listener command without any pre-configured scope.","commands":{"allow":[],"deny":["register_listener"]}},"deny-remove-data-store":{"identifier":"deny-remove-data-store","description":"Denies the remove_data_store command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_data_store"]}},"deny-remove-listener":{"identifier":"deny-remove-listener","description":"Denies the remove_listener command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_listener"]}},"deny-set-app-theme":{"identifier":"deny-set-app-theme","description":"Denies the set_app_theme command without any pre-configured scope.","commands":{"allow":[],"deny":["set_app_theme"]}},"deny-set-dock-visibility":{"identifier":"deny-set-dock-visibility","description":"Denies the set_dock_visibility command without any pre-configured scope.","commands":{"allow":[],"deny":["set_dock_visibility"]}},"deny-supports-multiple-windows":{"identifier":"deny-supports-multiple-windows","description":"Denies the supports_multiple_windows command without any pre-configured scope.","commands":{"allow":[],"deny":["supports_multiple_windows"]}},"deny-tauri-version":{"identifier":"deny-tauri-version","description":"Denies the tauri_version command without any pre-configured scope.","commands":{"allow":[],"deny":["tauri_version"]}},"deny-version":{"identifier":"deny-version","description":"Denies the version command without any pre-configured scope.","commands":{"allow":[],"deny":["version"]}}},"permission_sets":{},"global_scope_schema":null},"core:event":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-listen","allow-unlisten","allow-emit","allow-emit-to"]},"permissions":{"allow-emit":{"identifier":"allow-emit","description":"Enables the emit command without any pre-configured scope.","commands":{"allow":["emit"],"deny":[]}},"allow-emit-to":{"identifier":"allow-emit-to","description":"Enables the emit_to command without any pre-configured scope.","commands":{"allow":["emit_to"],"deny":[]}},"allow-listen":{"identifier":"allow-listen","description":"Enables the listen command without any pre-configured scope.","commands":{"allow":["listen"],"deny":[]}},"allow-unlisten":{"identifier":"allow-unlisten","description":"Enables the unlisten command without any pre-configured scope.","commands":{"allow":["unlisten"],"deny":[]}},"deny-emit":{"identifier":"deny-emit","description":"Denies the emit command without any pre-configured scope.","commands":{"allow":[],"deny":["emit"]}},"deny-emit-to":{"identifier":"deny-emit-to","description":"Denies the emit_to command without any pre-configured scope.","commands":{"allow":[],"deny":["emit_to"]}},"deny-listen":{"identifier":"deny-listen","description":"Denies the listen command without any pre-configured scope.","commands":{"allow":[],"deny":["listen"]}},"deny-unlisten":{"identifier":"deny-unlisten","description":"Denies the unlisten command without any pre-configured scope.","commands":{"allow":[],"deny":["unlisten"]}}},"permission_sets":{},"global_scope_schema":null},"core:image":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-new","allow-from-bytes","allow-from-path","allow-rgba","allow-size"]},"permissions":{"allow-from-bytes":{"identifier":"allow-from-bytes","description":"Enables the from_bytes command without any pre-configured scope.","commands":{"allow":["from_bytes"],"deny":[]}},"allow-from-path":{"identifier":"allow-from-path","description":"Enables the from_path command without any pre-configured scope.","commands":{"allow":["from_path"],"deny":[]}},"allow-new":{"identifier":"allow-new","description":"Enables the new command without any pre-configured scope.","commands":{"allow":["new"],"deny":[]}},"allow-rgba":{"identifier":"allow-rgba","description":"Enables the rgba command without any pre-configured scope.","commands":{"allow":["rgba"],"deny":[]}},"allow-size":{"identifier":"allow-size","description":"Enables the size command without any pre-configured scope.","commands":{"allow":["size"],"deny":[]}},"deny-from-bytes":{"identifier":"deny-from-bytes","description":"Denies the from_bytes command without any pre-configured scope.","commands":{"allow":[],"deny":["from_bytes"]}},"deny-from-path":{"identifier":"deny-from-path","description":"Denies the from_path command without any pre-configured scope.","commands":{"allow":[],"deny":["from_path"]}},"deny-new":{"identifier":"deny-new","description":"Denies the new command without any pre-configured scope.","commands":{"allow":[],"deny":["new"]}},"deny-rgba":{"identifier":"deny-rgba","description":"Denies the rgba command without any pre-configured scope.","commands":{"allow":[],"deny":["rgba"]}},"deny-size":{"identifier":"deny-size","description":"Denies the size command without any pre-configured scope.","commands":{"allow":[],"deny":["size"]}}},"permission_sets":{},"global_scope_schema":null},"core:menu":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-new","allow-append","allow-prepend","allow-insert","allow-remove","allow-remove-at","allow-items","allow-get","allow-popup","allow-create-default","allow-set-as-app-menu","allow-set-as-window-menu","allow-text","allow-set-text","allow-is-enabled","allow-set-enabled","allow-set-accelerator","allow-set-as-windows-menu-for-nsapp","allow-set-as-help-menu-for-nsapp","allow-is-checked","allow-set-checked","allow-set-icon"]},"permissions":{"allow-append":{"identifier":"allow-append","description":"Enables the append command without any pre-configured scope.","commands":{"allow":["append"],"deny":[]}},"allow-create-default":{"identifier":"allow-create-default","description":"Enables the create_default command without any pre-configured scope.","commands":{"allow":["create_default"],"deny":[]}},"allow-get":{"identifier":"allow-get","description":"Enables the get command without any pre-configured scope.","commands":{"allow":["get"],"deny":[]}},"allow-insert":{"identifier":"allow-insert","description":"Enables the insert command without any pre-configured scope.","commands":{"allow":["insert"],"deny":[]}},"allow-is-checked":{"identifier":"allow-is-checked","description":"Enables the is_checked command without any pre-configured scope.","commands":{"allow":["is_checked"],"deny":[]}},"allow-is-enabled":{"identifier":"allow-is-enabled","description":"Enables the is_enabled command without any pre-configured scope.","commands":{"allow":["is_enabled"],"deny":[]}},"allow-items":{"identifier":"allow-items","description":"Enables the items command without any pre-configured scope.","commands":{"allow":["items"],"deny":[]}},"allow-new":{"identifier":"allow-new","description":"Enables the new command without any pre-configured scope.","commands":{"allow":["new"],"deny":[]}},"allow-popup":{"identifier":"allow-popup","description":"Enables the popup command without any pre-configured scope.","commands":{"allow":["popup"],"deny":[]}},"allow-prepend":{"identifier":"allow-prepend","description":"Enables the prepend command without any pre-configured scope.","commands":{"allow":["prepend"],"deny":[]}},"allow-remove":{"identifier":"allow-remove","description":"Enables the remove command without any pre-configured scope.","commands":{"allow":["remove"],"deny":[]}},"allow-remove-at":{"identifier":"allow-remove-at","description":"Enables the remove_at command without any pre-configured scope.","commands":{"allow":["remove_at"],"deny":[]}},"allow-set-accelerator":{"identifier":"allow-set-accelerator","description":"Enables the set_accelerator command without any pre-configured scope.","commands":{"allow":["set_accelerator"],"deny":[]}},"allow-set-as-app-menu":{"identifier":"allow-set-as-app-menu","description":"Enables the set_as_app_menu command without any pre-configured scope.","commands":{"allow":["set_as_app_menu"],"deny":[]}},"allow-set-as-help-menu-for-nsapp":{"identifier":"allow-set-as-help-menu-for-nsapp","description":"Enables the set_as_help_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":["set_as_help_menu_for_nsapp"],"deny":[]}},"allow-set-as-window-menu":{"identifier":"allow-set-as-window-menu","description":"Enables the set_as_window_menu command without any pre-configured scope.","commands":{"allow":["set_as_window_menu"],"deny":[]}},"allow-set-as-windows-menu-for-nsapp":{"identifier":"allow-set-as-windows-menu-for-nsapp","description":"Enables the set_as_windows_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":["set_as_windows_menu_for_nsapp"],"deny":[]}},"allow-set-checked":{"identifier":"allow-set-checked","description":"Enables the set_checked command without any pre-configured scope.","commands":{"allow":["set_checked"],"deny":[]}},"allow-set-enabled":{"identifier":"allow-set-enabled","description":"Enables the set_enabled command without any pre-configured scope.","commands":{"allow":["set_enabled"],"deny":[]}},"allow-set-icon":{"identifier":"allow-set-icon","description":"Enables the set_icon command without any pre-configured scope.","commands":{"allow":["set_icon"],"deny":[]}},"allow-set-text":{"identifier":"allow-set-text","description":"Enables the set_text command without any pre-configured scope.","commands":{"allow":["set_text"],"deny":[]}},"allow-text":{"identifier":"allow-text","description":"Enables the text command without any pre-configured scope.","commands":{"allow":["text"],"deny":[]}},"deny-append":{"identifier":"deny-append","description":"Denies the append command without any pre-configured scope.","commands":{"allow":[],"deny":["append"]}},"deny-create-default":{"identifier":"deny-create-default","description":"Denies the create_default command without any pre-configured scope.","commands":{"allow":[],"deny":["create_default"]}},"deny-get":{"identifier":"deny-get","description":"Denies the get command without any pre-configured scope.","commands":{"allow":[],"deny":["get"]}},"deny-insert":{"identifier":"deny-insert","description":"Denies the insert command without any pre-configured scope.","commands":{"allow":[],"deny":["insert"]}},"deny-is-checked":{"identifier":"deny-is-checked","description":"Denies the is_checked command without any pre-configured scope.","commands":{"allow":[],"deny":["is_checked"]}},"deny-is-enabled":{"identifier":"deny-is-enabled","description":"Denies the is_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["is_enabled"]}},"deny-items":{"identifier":"deny-items","description":"Denies the items command without any pre-configured scope.","commands":{"allow":[],"deny":["items"]}},"deny-new":{"identifier":"deny-new","description":"Denies the new command without any pre-configured scope.","commands":{"allow":[],"deny":["new"]}},"deny-popup":{"identifier":"deny-popup","description":"Denies the popup command without any pre-configured scope.","commands":{"allow":[],"deny":["popup"]}},"deny-prepend":{"identifier":"deny-prepend","description":"Denies the prepend command without any pre-configured scope.","commands":{"allow":[],"deny":["prepend"]}},"deny-remove":{"identifier":"deny-remove","description":"Denies the remove command without any pre-configured scope.","commands":{"allow":[],"deny":["remove"]}},"deny-remove-at":{"identifier":"deny-remove-at","description":"Denies the remove_at command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_at"]}},"deny-set-accelerator":{"identifier":"deny-set-accelerator","description":"Denies the set_accelerator command without any pre-configured scope.","commands":{"allow":[],"deny":["set_accelerator"]}},"deny-set-as-app-menu":{"identifier":"deny-set-as-app-menu","description":"Denies the set_as_app_menu command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_app_menu"]}},"deny-set-as-help-menu-for-nsapp":{"identifier":"deny-set-as-help-menu-for-nsapp","description":"Denies the set_as_help_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_help_menu_for_nsapp"]}},"deny-set-as-window-menu":{"identifier":"deny-set-as-window-menu","description":"Denies the set_as_window_menu command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_window_menu"]}},"deny-set-as-windows-menu-for-nsapp":{"identifier":"deny-set-as-windows-menu-for-nsapp","description":"Denies the set_as_windows_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_windows_menu_for_nsapp"]}},"deny-set-checked":{"identifier":"deny-set-checked","description":"Denies the set_checked command without any pre-configured scope.","commands":{"allow":[],"deny":["set_checked"]}},"deny-set-enabled":{"identifier":"deny-set-enabled","description":"Denies the set_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["set_enabled"]}},"deny-set-icon":{"identifier":"deny-set-icon","description":"Denies the set_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon"]}},"deny-set-text":{"identifier":"deny-set-text","description":"Denies the set_text command without any pre-configured scope.","commands":{"allow":[],"deny":["set_text"]}},"deny-text":{"identifier":"deny-text","description":"Denies the text command without any pre-configured scope.","commands":{"allow":[],"deny":["text"]}}},"permission_sets":{},"global_scope_schema":null},"core:path":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-resolve-directory","allow-resolve","allow-normalize","allow-join","allow-dirname","allow-extname","allow-basename","allow-is-absolute"]},"permissions":{"allow-basename":{"identifier":"allow-basename","description":"Enables the basename command without any pre-configured scope.","commands":{"allow":["basename"],"deny":[]}},"allow-dirname":{"identifier":"allow-dirname","description":"Enables the dirname command without any pre-configured scope.","commands":{"allow":["dirname"],"deny":[]}},"allow-extname":{"identifier":"allow-extname","description":"Enables the extname command without any pre-configured scope.","commands":{"allow":["extname"],"deny":[]}},"allow-is-absolute":{"identifier":"allow-is-absolute","description":"Enables the is_absolute command without any pre-configured scope.","commands":{"allow":["is_absolute"],"deny":[]}},"allow-join":{"identifier":"allow-join","description":"Enables the join command without any pre-configured scope.","commands":{"allow":["join"],"deny":[]}},"allow-normalize":{"identifier":"allow-normalize","description":"Enables the normalize command without any pre-configured scope.","commands":{"allow":["normalize"],"deny":[]}},"allow-resolve":{"identifier":"allow-resolve","description":"Enables the resolve command without any pre-configured scope.","commands":{"allow":["resolve"],"deny":[]}},"allow-resolve-directory":{"identifier":"allow-resolve-directory","description":"Enables the resolve_directory command without any pre-configured scope.","commands":{"allow":["resolve_directory"],"deny":[]}},"deny-basename":{"identifier":"deny-basename","description":"Denies the basename command without any pre-configured scope.","commands":{"allow":[],"deny":["basename"]}},"deny-dirname":{"identifier":"deny-dirname","description":"Denies the dirname command without any pre-configured scope.","commands":{"allow":[],"deny":["dirname"]}},"deny-extname":{"identifier":"deny-extname","description":"Denies the extname command without any pre-configured scope.","commands":{"allow":[],"deny":["extname"]}},"deny-is-absolute":{"identifier":"deny-is-absolute","description":"Denies the is_absolute command without any pre-configured scope.","commands":{"allow":[],"deny":["is_absolute"]}},"deny-join":{"identifier":"deny-join","description":"Denies the join command without any pre-configured scope.","commands":{"allow":[],"deny":["join"]}},"deny-normalize":{"identifier":"deny-normalize","description":"Denies the normalize command without any pre-configured scope.","commands":{"allow":[],"deny":["normalize"]}},"deny-resolve":{"identifier":"deny-resolve","description":"Denies the resolve command without any pre-configured scope.","commands":{"allow":[],"deny":["resolve"]}},"deny-resolve-directory":{"identifier":"deny-resolve-directory","description":"Denies the resolve_directory command without any pre-configured scope.","commands":{"allow":[],"deny":["resolve_directory"]}}},"permission_sets":{},"global_scope_schema":null},"core:resources":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-close"]},"permissions":{"allow-close":{"identifier":"allow-close","description":"Enables the close command without any pre-configured scope.","commands":{"allow":["close"],"deny":[]}},"deny-close":{"identifier":"deny-close","description":"Denies the close command without any pre-configured scope.","commands":{"allow":[],"deny":["close"]}}},"permission_sets":{},"global_scope_schema":null},"core:tray":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-new","allow-get-by-id","allow-remove-by-id","allow-set-icon","allow-set-menu","allow-set-tooltip","allow-set-title","allow-set-visible","allow-set-temp-dir-path","allow-set-icon-as-template","allow-set-icon-with-as-template","allow-set-show-menu-on-left-click"]},"permissions":{"allow-get-by-id":{"identifier":"allow-get-by-id","description":"Enables the get_by_id command without any pre-configured scope.","commands":{"allow":["get_by_id"],"deny":[]}},"allow-new":{"identifier":"allow-new","description":"Enables the new command without any pre-configured scope.","commands":{"allow":["new"],"deny":[]}},"allow-remove-by-id":{"identifier":"allow-remove-by-id","description":"Enables the remove_by_id command without any pre-configured scope.","commands":{"allow":["remove_by_id"],"deny":[]}},"allow-set-icon":{"identifier":"allow-set-icon","description":"Enables the set_icon command without any pre-configured scope.","commands":{"allow":["set_icon"],"deny":[]}},"allow-set-icon-as-template":{"identifier":"allow-set-icon-as-template","description":"Enables the set_icon_as_template command without any pre-configured scope.","commands":{"allow":["set_icon_as_template"],"deny":[]}},"allow-set-icon-with-as-template":{"identifier":"allow-set-icon-with-as-template","description":"Enables the set_icon_with_as_template command without any pre-configured scope.","commands":{"allow":["set_icon_with_as_template"],"deny":[]}},"allow-set-menu":{"identifier":"allow-set-menu","description":"Enables the set_menu command without any pre-configured scope.","commands":{"allow":["set_menu"],"deny":[]}},"allow-set-show-menu-on-left-click":{"identifier":"allow-set-show-menu-on-left-click","description":"Enables the set_show_menu_on_left_click command without any pre-configured scope.","commands":{"allow":["set_show_menu_on_left_click"],"deny":[]}},"allow-set-temp-dir-path":{"identifier":"allow-set-temp-dir-path","description":"Enables the set_temp_dir_path command without any pre-configured scope.","commands":{"allow":["set_temp_dir_path"],"deny":[]}},"allow-set-title":{"identifier":"allow-set-title","description":"Enables the set_title command without any pre-configured scope.","commands":{"allow":["set_title"],"deny":[]}},"allow-set-tooltip":{"identifier":"allow-set-tooltip","description":"Enables the set_tooltip command without any pre-configured scope.","commands":{"allow":["set_tooltip"],"deny":[]}},"allow-set-visible":{"identifier":"allow-set-visible","description":"Enables the set_visible command without any pre-configured scope.","commands":{"allow":["set_visible"],"deny":[]}},"deny-get-by-id":{"identifier":"deny-get-by-id","description":"Denies the get_by_id command without any pre-configured scope.","commands":{"allow":[],"deny":["get_by_id"]}},"deny-new":{"identifier":"deny-new","description":"Denies the new command without any pre-configured scope.","commands":{"allow":[],"deny":["new"]}},"deny-remove-by-id":{"identifier":"deny-remove-by-id","description":"Denies the remove_by_id command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_by_id"]}},"deny-set-icon":{"identifier":"deny-set-icon","description":"Denies the set_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon"]}},"deny-set-icon-as-template":{"identifier":"deny-set-icon-as-template","description":"Denies the set_icon_as_template command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon_as_template"]}},"deny-set-icon-with-as-template":{"identifier":"deny-set-icon-with-as-template","description":"Denies the set_icon_with_as_template command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon_with_as_template"]}},"deny-set-menu":{"identifier":"deny-set-menu","description":"Denies the set_menu command without any pre-configured scope.","commands":{"allow":[],"deny":["set_menu"]}},"deny-set-show-menu-on-left-click":{"identifier":"deny-set-show-menu-on-left-click","description":"Denies the set_show_menu_on_left_click command without any pre-configured scope.","commands":{"allow":[],"deny":["set_show_menu_on_left_click"]}},"deny-set-temp-dir-path":{"identifier":"deny-set-temp-dir-path","description":"Denies the set_temp_dir_path command without any pre-configured scope.","commands":{"allow":[],"deny":["set_temp_dir_path"]}},"deny-set-title":{"identifier":"deny-set-title","description":"Denies the set_title command without any pre-configured scope.","commands":{"allow":[],"deny":["set_title"]}},"deny-set-tooltip":{"identifier":"deny-set-tooltip","description":"Denies the set_tooltip command without any pre-configured scope.","commands":{"allow":[],"deny":["set_tooltip"]}},"deny-set-visible":{"identifier":"deny-set-visible","description":"Denies the set_visible command without any pre-configured scope.","commands":{"allow":[],"deny":["set_visible"]}}},"permission_sets":{},"global_scope_schema":null},"core:webview":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-get-all-webviews","allow-webview-position","allow-webview-size","allow-internal-toggle-devtools"]},"permissions":{"allow-clear-all-browsing-data":{"identifier":"allow-clear-all-browsing-data","description":"Enables the clear_all_browsing_data command without any pre-configured scope.","commands":{"allow":["clear_all_browsing_data"],"deny":[]}},"allow-create-webview":{"identifier":"allow-create-webview","description":"Enables the create_webview command without any pre-configured scope.","commands":{"allow":["create_webview"],"deny":[]}},"allow-create-webview-window":{"identifier":"allow-create-webview-window","description":"Enables the create_webview_window command without any pre-configured scope.","commands":{"allow":["create_webview_window"],"deny":[]}},"allow-get-all-webviews":{"identifier":"allow-get-all-webviews","description":"Enables the get_all_webviews command without any pre-configured scope.","commands":{"allow":["get_all_webviews"],"deny":[]}},"allow-internal-toggle-devtools":{"identifier":"allow-internal-toggle-devtools","description":"Enables the internal_toggle_devtools command without any pre-configured scope.","commands":{"allow":["internal_toggle_devtools"],"deny":[]}},"allow-print":{"identifier":"allow-print","description":"Enables the print command without any pre-configured scope.","commands":{"allow":["print"],"deny":[]}},"allow-reparent":{"identifier":"allow-reparent","description":"Enables the reparent command without any pre-configured scope.","commands":{"allow":["reparent"],"deny":[]}},"allow-set-webview-auto-resize":{"identifier":"allow-set-webview-auto-resize","description":"Enables the set_webview_auto_resize command without any pre-configured scope.","commands":{"allow":["set_webview_auto_resize"],"deny":[]}},"allow-set-webview-background-color":{"identifier":"allow-set-webview-background-color","description":"Enables the set_webview_background_color command without any pre-configured scope.","commands":{"allow":["set_webview_background_color"],"deny":[]}},"allow-set-webview-focus":{"identifier":"allow-set-webview-focus","description":"Enables the set_webview_focus command without any pre-configured scope.","commands":{"allow":["set_webview_focus"],"deny":[]}},"allow-set-webview-position":{"identifier":"allow-set-webview-position","description":"Enables the set_webview_position command without any pre-configured scope.","commands":{"allow":["set_webview_position"],"deny":[]}},"allow-set-webview-size":{"identifier":"allow-set-webview-size","description":"Enables the set_webview_size command without any pre-configured scope.","commands":{"allow":["set_webview_size"],"deny":[]}},"allow-set-webview-zoom":{"identifier":"allow-set-webview-zoom","description":"Enables the set_webview_zoom command without any pre-configured scope.","commands":{"allow":["set_webview_zoom"],"deny":[]}},"allow-webview-close":{"identifier":"allow-webview-close","description":"Enables the webview_close command without any pre-configured scope.","commands":{"allow":["webview_close"],"deny":[]}},"allow-webview-hide":{"identifier":"allow-webview-hide","description":"Enables the webview_hide command without any pre-configured scope.","commands":{"allow":["webview_hide"],"deny":[]}},"allow-webview-position":{"identifier":"allow-webview-position","description":"Enables the webview_position command without any pre-configured scope.","commands":{"allow":["webview_position"],"deny":[]}},"allow-webview-show":{"identifier":"allow-webview-show","description":"Enables the webview_show command without any pre-configured scope.","commands":{"allow":["webview_show"],"deny":[]}},"allow-webview-size":{"identifier":"allow-webview-size","description":"Enables the webview_size command without any pre-configured scope.","commands":{"allow":["webview_size"],"deny":[]}},"deny-clear-all-browsing-data":{"identifier":"deny-clear-all-browsing-data","description":"Denies the clear_all_browsing_data command without any pre-configured scope.","commands":{"allow":[],"deny":["clear_all_browsing_data"]}},"deny-create-webview":{"identifier":"deny-create-webview","description":"Denies the create_webview command without any pre-configured scope.","commands":{"allow":[],"deny":["create_webview"]}},"deny-create-webview-window":{"identifier":"deny-create-webview-window","description":"Denies the create_webview_window command without any pre-configured scope.","commands":{"allow":[],"deny":["create_webview_window"]}},"deny-get-all-webviews":{"identifier":"deny-get-all-webviews","description":"Denies the get_all_webviews command without any pre-configured scope.","commands":{"allow":[],"deny":["get_all_webviews"]}},"deny-internal-toggle-devtools":{"identifier":"deny-internal-toggle-devtools","description":"Denies the internal_toggle_devtools command without any pre-configured scope.","commands":{"allow":[],"deny":["internal_toggle_devtools"]}},"deny-print":{"identifier":"deny-print","description":"Denies the print command without any pre-configured scope.","commands":{"allow":[],"deny":["print"]}},"deny-reparent":{"identifier":"deny-reparent","description":"Denies the reparent command without any pre-configured scope.","commands":{"allow":[],"deny":["reparent"]}},"deny-set-webview-auto-resize":{"identifier":"deny-set-webview-auto-resize","description":"Denies the set_webview_auto_resize command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_auto_resize"]}},"deny-set-webview-background-color":{"identifier":"deny-set-webview-background-color","description":"Denies the set_webview_background_color command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_background_color"]}},"deny-set-webview-focus":{"identifier":"deny-set-webview-focus","description":"Denies the set_webview_focus command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_focus"]}},"deny-set-webview-position":{"identifier":"deny-set-webview-position","description":"Denies the set_webview_position command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_position"]}},"deny-set-webview-size":{"identifier":"deny-set-webview-size","description":"Denies the set_webview_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_size"]}},"deny-set-webview-zoom":{"identifier":"deny-set-webview-zoom","description":"Denies the set_webview_zoom command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_zoom"]}},"deny-webview-close":{"identifier":"deny-webview-close","description":"Denies the webview_close command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_close"]}},"deny-webview-hide":{"identifier":"deny-webview-hide","description":"Denies the webview_hide command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_hide"]}},"deny-webview-position":{"identifier":"deny-webview-position","description":"Denies the webview_position command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_position"]}},"deny-webview-show":{"identifier":"deny-webview-show","description":"Denies the webview_show command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_show"]}},"deny-webview-size":{"identifier":"deny-webview-size","description":"Denies the webview_size command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_size"]}}},"permission_sets":{},"global_scope_schema":null},"core:window":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-get-all-windows","allow-scale-factor","allow-inner-position","allow-outer-position","allow-inner-size","allow-outer-size","allow-is-fullscreen","allow-is-minimized","allow-is-maximized","allow-is-focused","allow-is-decorated","allow-is-resizable","allow-is-maximizable","allow-is-minimizable","allow-is-closable","allow-is-visible","allow-is-enabled","allow-title","allow-current-monitor","allow-primary-monitor","allow-monitor-from-point","allow-available-monitors","allow-cursor-position","allow-theme","allow-is-always-on-top","allow-activity-name","allow-scene-identifier","allow-internal-toggle-maximize"]},"permissions":{"allow-activity-name":{"identifier":"allow-activity-name","description":"Enables the activity_name command without any pre-configured scope.","commands":{"allow":["activity_name"],"deny":[]}},"allow-available-monitors":{"identifier":"allow-available-monitors","description":"Enables the available_monitors command without any pre-configured scope.","commands":{"allow":["available_monitors"],"deny":[]}},"allow-center":{"identifier":"allow-center","description":"Enables the center command without any pre-configured scope.","commands":{"allow":["center"],"deny":[]}},"allow-close":{"identifier":"allow-close","description":"Enables the close command without any pre-configured scope.","commands":{"allow":["close"],"deny":[]}},"allow-create":{"identifier":"allow-create","description":"Enables the create command without any pre-configured scope.","commands":{"allow":["create"],"deny":[]}},"allow-current-monitor":{"identifier":"allow-current-monitor","description":"Enables the current_monitor command without any pre-configured scope.","commands":{"allow":["current_monitor"],"deny":[]}},"allow-cursor-position":{"identifier":"allow-cursor-position","description":"Enables the cursor_position command without any pre-configured scope.","commands":{"allow":["cursor_position"],"deny":[]}},"allow-destroy":{"identifier":"allow-destroy","description":"Enables the destroy command without any pre-configured scope.","commands":{"allow":["destroy"],"deny":[]}},"allow-get-all-windows":{"identifier":"allow-get-all-windows","description":"Enables the get_all_windows command without any pre-configured scope.","commands":{"allow":["get_all_windows"],"deny":[]}},"allow-hide":{"identifier":"allow-hide","description":"Enables the hide command without any pre-configured scope.","commands":{"allow":["hide"],"deny":[]}},"allow-inner-position":{"identifier":"allow-inner-position","description":"Enables the inner_position command without any pre-configured scope.","commands":{"allow":["inner_position"],"deny":[]}},"allow-inner-size":{"identifier":"allow-inner-size","description":"Enables the inner_size command without any pre-configured scope.","commands":{"allow":["inner_size"],"deny":[]}},"allow-internal-toggle-maximize":{"identifier":"allow-internal-toggle-maximize","description":"Enables the internal_toggle_maximize command without any pre-configured scope.","commands":{"allow":["internal_toggle_maximize"],"deny":[]}},"allow-is-always-on-top":{"identifier":"allow-is-always-on-top","description":"Enables the is_always_on_top command without any pre-configured scope.","commands":{"allow":["is_always_on_top"],"deny":[]}},"allow-is-closable":{"identifier":"allow-is-closable","description":"Enables the is_closable command without any pre-configured scope.","commands":{"allow":["is_closable"],"deny":[]}},"allow-is-decorated":{"identifier":"allow-is-decorated","description":"Enables the is_decorated command without any pre-configured scope.","commands":{"allow":["is_decorated"],"deny":[]}},"allow-is-enabled":{"identifier":"allow-is-enabled","description":"Enables the is_enabled command without any pre-configured scope.","commands":{"allow":["is_enabled"],"deny":[]}},"allow-is-focused":{"identifier":"allow-is-focused","description":"Enables the is_focused command without any pre-configured scope.","commands":{"allow":["is_focused"],"deny":[]}},"allow-is-fullscreen":{"identifier":"allow-is-fullscreen","description":"Enables the is_fullscreen command without any pre-configured scope.","commands":{"allow":["is_fullscreen"],"deny":[]}},"allow-is-maximizable":{"identifier":"allow-is-maximizable","description":"Enables the is_maximizable command without any pre-configured scope.","commands":{"allow":["is_maximizable"],"deny":[]}},"allow-is-maximized":{"identifier":"allow-is-maximized","description":"Enables the is_maximized command without any pre-configured scope.","commands":{"allow":["is_maximized"],"deny":[]}},"allow-is-minimizable":{"identifier":"allow-is-minimizable","description":"Enables the is_minimizable command without any pre-configured scope.","commands":{"allow":["is_minimizable"],"deny":[]}},"allow-is-minimized":{"identifier":"allow-is-minimized","description":"Enables the is_minimized command without any pre-configured scope.","commands":{"allow":["is_minimized"],"deny":[]}},"allow-is-resizable":{"identifier":"allow-is-resizable","description":"Enables the is_resizable command without any pre-configured scope.","commands":{"allow":["is_resizable"],"deny":[]}},"allow-is-visible":{"identifier":"allow-is-visible","description":"Enables the is_visible command without any pre-configured scope.","commands":{"allow":["is_visible"],"deny":[]}},"allow-maximize":{"identifier":"allow-maximize","description":"Enables the maximize command without any pre-configured scope.","commands":{"allow":["maximize"],"deny":[]}},"allow-minimize":{"identifier":"allow-minimize","description":"Enables the minimize command without any pre-configured scope.","commands":{"allow":["minimize"],"deny":[]}},"allow-monitor-from-point":{"identifier":"allow-monitor-from-point","description":"Enables the monitor_from_point command without any pre-configured scope.","commands":{"allow":["monitor_from_point"],"deny":[]}},"allow-outer-position":{"identifier":"allow-outer-position","description":"Enables the outer_position command without any pre-configured scope.","commands":{"allow":["outer_position"],"deny":[]}},"allow-outer-size":{"identifier":"allow-outer-size","description":"Enables the outer_size command without any pre-configured scope.","commands":{"allow":["outer_size"],"deny":[]}},"allow-primary-monitor":{"identifier":"allow-primary-monitor","description":"Enables the primary_monitor command without any pre-configured scope.","commands":{"allow":["primary_monitor"],"deny":[]}},"allow-request-user-attention":{"identifier":"allow-request-user-attention","description":"Enables the request_user_attention command without any pre-configured scope.","commands":{"allow":["request_user_attention"],"deny":[]}},"allow-scale-factor":{"identifier":"allow-scale-factor","description":"Enables the scale_factor command without any pre-configured scope.","commands":{"allow":["scale_factor"],"deny":[]}},"allow-scene-identifier":{"identifier":"allow-scene-identifier","description":"Enables the scene_identifier command without any pre-configured scope.","commands":{"allow":["scene_identifier"],"deny":[]}},"allow-set-always-on-bottom":{"identifier":"allow-set-always-on-bottom","description":"Enables the set_always_on_bottom command without any pre-configured scope.","commands":{"allow":["set_always_on_bottom"],"deny":[]}},"allow-set-always-on-top":{"identifier":"allow-set-always-on-top","description":"Enables the set_always_on_top command without any pre-configured scope.","commands":{"allow":["set_always_on_top"],"deny":[]}},"allow-set-background-color":{"identifier":"allow-set-background-color","description":"Enables the set_background_color command without any pre-configured scope.","commands":{"allow":["set_background_color"],"deny":[]}},"allow-set-badge-count":{"identifier":"allow-set-badge-count","description":"Enables the set_badge_count command without any pre-configured scope.","commands":{"allow":["set_badge_count"],"deny":[]}},"allow-set-badge-label":{"identifier":"allow-set-badge-label","description":"Enables the set_badge_label command without any pre-configured scope.","commands":{"allow":["set_badge_label"],"deny":[]}},"allow-set-closable":{"identifier":"allow-set-closable","description":"Enables the set_closable command without any pre-configured scope.","commands":{"allow":["set_closable"],"deny":[]}},"allow-set-content-protected":{"identifier":"allow-set-content-protected","description":"Enables the set_content_protected command without any pre-configured scope.","commands":{"allow":["set_content_protected"],"deny":[]}},"allow-set-cursor-grab":{"identifier":"allow-set-cursor-grab","description":"Enables the set_cursor_grab command without any pre-configured scope.","commands":{"allow":["set_cursor_grab"],"deny":[]}},"allow-set-cursor-icon":{"identifier":"allow-set-cursor-icon","description":"Enables the set_cursor_icon command without any pre-configured scope.","commands":{"allow":["set_cursor_icon"],"deny":[]}},"allow-set-cursor-position":{"identifier":"allow-set-cursor-position","description":"Enables the set_cursor_position command without any pre-configured scope.","commands":{"allow":["set_cursor_position"],"deny":[]}},"allow-set-cursor-visible":{"identifier":"allow-set-cursor-visible","description":"Enables the set_cursor_visible command without any pre-configured scope.","commands":{"allow":["set_cursor_visible"],"deny":[]}},"allow-set-decorations":{"identifier":"allow-set-decorations","description":"Enables the set_decorations command without any pre-configured scope.","commands":{"allow":["set_decorations"],"deny":[]}},"allow-set-effects":{"identifier":"allow-set-effects","description":"Enables the set_effects command without any pre-configured scope.","commands":{"allow":["set_effects"],"deny":[]}},"allow-set-enabled":{"identifier":"allow-set-enabled","description":"Enables the set_enabled command without any pre-configured scope.","commands":{"allow":["set_enabled"],"deny":[]}},"allow-set-focus":{"identifier":"allow-set-focus","description":"Enables the set_focus command without any pre-configured scope.","commands":{"allow":["set_focus"],"deny":[]}},"allow-set-focusable":{"identifier":"allow-set-focusable","description":"Enables the set_focusable command without any pre-configured scope.","commands":{"allow":["set_focusable"],"deny":[]}},"allow-set-fullscreen":{"identifier":"allow-set-fullscreen","description":"Enables the set_fullscreen command without any pre-configured scope.","commands":{"allow":["set_fullscreen"],"deny":[]}},"allow-set-icon":{"identifier":"allow-set-icon","description":"Enables the set_icon command without any pre-configured scope.","commands":{"allow":["set_icon"],"deny":[]}},"allow-set-ignore-cursor-events":{"identifier":"allow-set-ignore-cursor-events","description":"Enables the set_ignore_cursor_events command without any pre-configured scope.","commands":{"allow":["set_ignore_cursor_events"],"deny":[]}},"allow-set-max-size":{"identifier":"allow-set-max-size","description":"Enables the set_max_size command without any pre-configured scope.","commands":{"allow":["set_max_size"],"deny":[]}},"allow-set-maximizable":{"identifier":"allow-set-maximizable","description":"Enables the set_maximizable command without any pre-configured scope.","commands":{"allow":["set_maximizable"],"deny":[]}},"allow-set-min-size":{"identifier":"allow-set-min-size","description":"Enables the set_min_size command without any pre-configured scope.","commands":{"allow":["set_min_size"],"deny":[]}},"allow-set-minimizable":{"identifier":"allow-set-minimizable","description":"Enables the set_minimizable command without any pre-configured scope.","commands":{"allow":["set_minimizable"],"deny":[]}},"allow-set-overlay-icon":{"identifier":"allow-set-overlay-icon","description":"Enables the set_overlay_icon command without any pre-configured scope.","commands":{"allow":["set_overlay_icon"],"deny":[]}},"allow-set-position":{"identifier":"allow-set-position","description":"Enables the set_position command without any pre-configured scope.","commands":{"allow":["set_position"],"deny":[]}},"allow-set-progress-bar":{"identifier":"allow-set-progress-bar","description":"Enables the set_progress_bar command without any pre-configured scope.","commands":{"allow":["set_progress_bar"],"deny":[]}},"allow-set-resizable":{"identifier":"allow-set-resizable","description":"Enables the set_resizable command without any pre-configured scope.","commands":{"allow":["set_resizable"],"deny":[]}},"allow-set-shadow":{"identifier":"allow-set-shadow","description":"Enables the set_shadow command without any pre-configured scope.","commands":{"allow":["set_shadow"],"deny":[]}},"allow-set-simple-fullscreen":{"identifier":"allow-set-simple-fullscreen","description":"Enables the set_simple_fullscreen command without any pre-configured scope.","commands":{"allow":["set_simple_fullscreen"],"deny":[]}},"allow-set-size":{"identifier":"allow-set-size","description":"Enables the set_size command without any pre-configured scope.","commands":{"allow":["set_size"],"deny":[]}},"allow-set-size-constraints":{"identifier":"allow-set-size-constraints","description":"Enables the set_size_constraints command without any pre-configured scope.","commands":{"allow":["set_size_constraints"],"deny":[]}},"allow-set-skip-taskbar":{"identifier":"allow-set-skip-taskbar","description":"Enables the set_skip_taskbar command without any pre-configured scope.","commands":{"allow":["set_skip_taskbar"],"deny":[]}},"allow-set-theme":{"identifier":"allow-set-theme","description":"Enables the set_theme command without any pre-configured scope.","commands":{"allow":["set_theme"],"deny":[]}},"allow-set-title":{"identifier":"allow-set-title","description":"Enables the set_title command without any pre-configured scope.","commands":{"allow":["set_title"],"deny":[]}},"allow-set-title-bar-style":{"identifier":"allow-set-title-bar-style","description":"Enables the set_title_bar_style command without any pre-configured scope.","commands":{"allow":["set_title_bar_style"],"deny":[]}},"allow-set-visible-on-all-workspaces":{"identifier":"allow-set-visible-on-all-workspaces","description":"Enables the set_visible_on_all_workspaces command without any pre-configured scope.","commands":{"allow":["set_visible_on_all_workspaces"],"deny":[]}},"allow-show":{"identifier":"allow-show","description":"Enables the show command without any pre-configured scope.","commands":{"allow":["show"],"deny":[]}},"allow-start-dragging":{"identifier":"allow-start-dragging","description":"Enables the start_dragging command without any pre-configured scope.","commands":{"allow":["start_dragging"],"deny":[]}},"allow-start-resize-dragging":{"identifier":"allow-start-resize-dragging","description":"Enables the start_resize_dragging command without any pre-configured scope.","commands":{"allow":["start_resize_dragging"],"deny":[]}},"allow-theme":{"identifier":"allow-theme","description":"Enables the theme command without any pre-configured scope.","commands":{"allow":["theme"],"deny":[]}},"allow-title":{"identifier":"allow-title","description":"Enables the title command without any pre-configured scope.","commands":{"allow":["title"],"deny":[]}},"allow-toggle-maximize":{"identifier":"allow-toggle-maximize","description":"Enables the toggle_maximize command without any pre-configured scope.","commands":{"allow":["toggle_maximize"],"deny":[]}},"allow-unmaximize":{"identifier":"allow-unmaximize","description":"Enables the unmaximize command without any pre-configured scope.","commands":{"allow":["unmaximize"],"deny":[]}},"allow-unminimize":{"identifier":"allow-unminimize","description":"Enables the unminimize command without any pre-configured scope.","commands":{"allow":["unminimize"],"deny":[]}},"deny-activity-name":{"identifier":"deny-activity-name","description":"Denies the activity_name command without any pre-configured scope.","commands":{"allow":[],"deny":["activity_name"]}},"deny-available-monitors":{"identifier":"deny-available-monitors","description":"Denies the available_monitors command without any pre-configured scope.","commands":{"allow":[],"deny":["available_monitors"]}},"deny-center":{"identifier":"deny-center","description":"Denies the center command without any pre-configured scope.","commands":{"allow":[],"deny":["center"]}},"deny-close":{"identifier":"deny-close","description":"Denies the close command without any pre-configured scope.","commands":{"allow":[],"deny":["close"]}},"deny-create":{"identifier":"deny-create","description":"Denies the create command without any pre-configured scope.","commands":{"allow":[],"deny":["create"]}},"deny-current-monitor":{"identifier":"deny-current-monitor","description":"Denies the current_monitor command without any pre-configured scope.","commands":{"allow":[],"deny":["current_monitor"]}},"deny-cursor-position":{"identifier":"deny-cursor-position","description":"Denies the cursor_position command without any pre-configured scope.","commands":{"allow":[],"deny":["cursor_position"]}},"deny-destroy":{"identifier":"deny-destroy","description":"Denies the destroy command without any pre-configured scope.","commands":{"allow":[],"deny":["destroy"]}},"deny-get-all-windows":{"identifier":"deny-get-all-windows","description":"Denies the get_all_windows command without any pre-configured scope.","commands":{"allow":[],"deny":["get_all_windows"]}},"deny-hide":{"identifier":"deny-hide","description":"Denies the hide command without any pre-configured scope.","commands":{"allow":[],"deny":["hide"]}},"deny-inner-position":{"identifier":"deny-inner-position","description":"Denies the inner_position command without any pre-configured scope.","commands":{"allow":[],"deny":["inner_position"]}},"deny-inner-size":{"identifier":"deny-inner-size","description":"Denies the inner_size command without any pre-configured scope.","commands":{"allow":[],"deny":["inner_size"]}},"deny-internal-toggle-maximize":{"identifier":"deny-internal-toggle-maximize","description":"Denies the internal_toggle_maximize command without any pre-configured scope.","commands":{"allow":[],"deny":["internal_toggle_maximize"]}},"deny-is-always-on-top":{"identifier":"deny-is-always-on-top","description":"Denies the is_always_on_top command without any pre-configured scope.","commands":{"allow":[],"deny":["is_always_on_top"]}},"deny-is-closable":{"identifier":"deny-is-closable","description":"Denies the is_closable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_closable"]}},"deny-is-decorated":{"identifier":"deny-is-decorated","description":"Denies the is_decorated command without any pre-configured scope.","commands":{"allow":[],"deny":["is_decorated"]}},"deny-is-enabled":{"identifier":"deny-is-enabled","description":"Denies the is_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["is_enabled"]}},"deny-is-focused":{"identifier":"deny-is-focused","description":"Denies the is_focused command without any pre-configured scope.","commands":{"allow":[],"deny":["is_focused"]}},"deny-is-fullscreen":{"identifier":"deny-is-fullscreen","description":"Denies the is_fullscreen command without any pre-configured scope.","commands":{"allow":[],"deny":["is_fullscreen"]}},"deny-is-maximizable":{"identifier":"deny-is-maximizable","description":"Denies the is_maximizable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_maximizable"]}},"deny-is-maximized":{"identifier":"deny-is-maximized","description":"Denies the is_maximized command without any pre-configured scope.","commands":{"allow":[],"deny":["is_maximized"]}},"deny-is-minimizable":{"identifier":"deny-is-minimizable","description":"Denies the is_minimizable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_minimizable"]}},"deny-is-minimized":{"identifier":"deny-is-minimized","description":"Denies the is_minimized command without any pre-configured scope.","commands":{"allow":[],"deny":["is_minimized"]}},"deny-is-resizable":{"identifier":"deny-is-resizable","description":"Denies the is_resizable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_resizable"]}},"deny-is-visible":{"identifier":"deny-is-visible","description":"Denies the is_visible command without any pre-configured scope.","commands":{"allow":[],"deny":["is_visible"]}},"deny-maximize":{"identifier":"deny-maximize","description":"Denies the maximize command without any pre-configured scope.","commands":{"allow":[],"deny":["maximize"]}},"deny-minimize":{"identifier":"deny-minimize","description":"Denies the minimize command without any pre-configured scope.","commands":{"allow":[],"deny":["minimize"]}},"deny-monitor-from-point":{"identifier":"deny-monitor-from-point","description":"Denies the monitor_from_point command without any pre-configured scope.","commands":{"allow":[],"deny":["monitor_from_point"]}},"deny-outer-position":{"identifier":"deny-outer-position","description":"Denies the outer_position command without any pre-configured scope.","commands":{"allow":[],"deny":["outer_position"]}},"deny-outer-size":{"identifier":"deny-outer-size","description":"Denies the outer_size command without any pre-configured scope.","commands":{"allow":[],"deny":["outer_size"]}},"deny-primary-monitor":{"identifier":"deny-primary-monitor","description":"Denies the primary_monitor command without any pre-configured scope.","commands":{"allow":[],"deny":["primary_monitor"]}},"deny-request-user-attention":{"identifier":"deny-request-user-attention","description":"Denies the request_user_attention command without any pre-configured scope.","commands":{"allow":[],"deny":["request_user_attention"]}},"deny-scale-factor":{"identifier":"deny-scale-factor","description":"Denies the scale_factor command without any pre-configured scope.","commands":{"allow":[],"deny":["scale_factor"]}},"deny-scene-identifier":{"identifier":"deny-scene-identifier","description":"Denies the scene_identifier command without any pre-configured scope.","commands":{"allow":[],"deny":["scene_identifier"]}},"deny-set-always-on-bottom":{"identifier":"deny-set-always-on-bottom","description":"Denies the set_always_on_bottom command without any pre-configured scope.","commands":{"allow":[],"deny":["set_always_on_bottom"]}},"deny-set-always-on-top":{"identifier":"deny-set-always-on-top","description":"Denies the set_always_on_top command without any pre-configured scope.","commands":{"allow":[],"deny":["set_always_on_top"]}},"deny-set-background-color":{"identifier":"deny-set-background-color","description":"Denies the set_background_color command without any pre-configured scope.","commands":{"allow":[],"deny":["set_background_color"]}},"deny-set-badge-count":{"identifier":"deny-set-badge-count","description":"Denies the set_badge_count command without any pre-configured scope.","commands":{"allow":[],"deny":["set_badge_count"]}},"deny-set-badge-label":{"identifier":"deny-set-badge-label","description":"Denies the set_badge_label command without any pre-configured scope.","commands":{"allow":[],"deny":["set_badge_label"]}},"deny-set-closable":{"identifier":"deny-set-closable","description":"Denies the set_closable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_closable"]}},"deny-set-content-protected":{"identifier":"deny-set-content-protected","description":"Denies the set_content_protected command without any pre-configured scope.","commands":{"allow":[],"deny":["set_content_protected"]}},"deny-set-cursor-grab":{"identifier":"deny-set-cursor-grab","description":"Denies the set_cursor_grab command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_grab"]}},"deny-set-cursor-icon":{"identifier":"deny-set-cursor-icon","description":"Denies the set_cursor_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_icon"]}},"deny-set-cursor-position":{"identifier":"deny-set-cursor-position","description":"Denies the set_cursor_position command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_position"]}},"deny-set-cursor-visible":{"identifier":"deny-set-cursor-visible","description":"Denies the set_cursor_visible command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_visible"]}},"deny-set-decorations":{"identifier":"deny-set-decorations","description":"Denies the set_decorations command without any pre-configured scope.","commands":{"allow":[],"deny":["set_decorations"]}},"deny-set-effects":{"identifier":"deny-set-effects","description":"Denies the set_effects command without any pre-configured scope.","commands":{"allow":[],"deny":["set_effects"]}},"deny-set-enabled":{"identifier":"deny-set-enabled","description":"Denies the set_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["set_enabled"]}},"deny-set-focus":{"identifier":"deny-set-focus","description":"Denies the set_focus command without any pre-configured scope.","commands":{"allow":[],"deny":["set_focus"]}},"deny-set-focusable":{"identifier":"deny-set-focusable","description":"Denies the set_focusable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_focusable"]}},"deny-set-fullscreen":{"identifier":"deny-set-fullscreen","description":"Denies the set_fullscreen command without any pre-configured scope.","commands":{"allow":[],"deny":["set_fullscreen"]}},"deny-set-icon":{"identifier":"deny-set-icon","description":"Denies the set_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon"]}},"deny-set-ignore-cursor-events":{"identifier":"deny-set-ignore-cursor-events","description":"Denies the set_ignore_cursor_events command without any pre-configured scope.","commands":{"allow":[],"deny":["set_ignore_cursor_events"]}},"deny-set-max-size":{"identifier":"deny-set-max-size","description":"Denies the set_max_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_max_size"]}},"deny-set-maximizable":{"identifier":"deny-set-maximizable","description":"Denies the set_maximizable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_maximizable"]}},"deny-set-min-size":{"identifier":"deny-set-min-size","description":"Denies the set_min_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_min_size"]}},"deny-set-minimizable":{"identifier":"deny-set-minimizable","description":"Denies the set_minimizable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_minimizable"]}},"deny-set-overlay-icon":{"identifier":"deny-set-overlay-icon","description":"Denies the set_overlay_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_overlay_icon"]}},"deny-set-position":{"identifier":"deny-set-position","description":"Denies the set_position command without any pre-configured scope.","commands":{"allow":[],"deny":["set_position"]}},"deny-set-progress-bar":{"identifier":"deny-set-progress-bar","description":"Denies the set_progress_bar command without any pre-configured scope.","commands":{"allow":[],"deny":["set_progress_bar"]}},"deny-set-resizable":{"identifier":"deny-set-resizable","description":"Denies the set_resizable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_resizable"]}},"deny-set-shadow":{"identifier":"deny-set-shadow","description":"Denies the set_shadow command without any pre-configured scope.","commands":{"allow":[],"deny":["set_shadow"]}},"deny-set-simple-fullscreen":{"identifier":"deny-set-simple-fullscreen","description":"Denies the set_simple_fullscreen command without any pre-configured scope.","commands":{"allow":[],"deny":["set_simple_fullscreen"]}},"deny-set-size":{"identifier":"deny-set-size","description":"Denies the set_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_size"]}},"deny-set-size-constraints":{"identifier":"deny-set-size-constraints","description":"Denies the set_size_constraints command without any pre-configured scope.","commands":{"allow":[],"deny":["set_size_constraints"]}},"deny-set-skip-taskbar":{"identifier":"deny-set-skip-taskbar","description":"Denies the set_skip_taskbar command without any pre-configured scope.","commands":{"allow":[],"deny":["set_skip_taskbar"]}},"deny-set-theme":{"identifier":"deny-set-theme","description":"Denies the set_theme command without any pre-configured scope.","commands":{"allow":[],"deny":["set_theme"]}},"deny-set-title":{"identifier":"deny-set-title","description":"Denies the set_title command without any pre-configured scope.","commands":{"allow":[],"deny":["set_title"]}},"deny-set-title-bar-style":{"identifier":"deny-set-title-bar-style","description":"Denies the set_title_bar_style command without any pre-configured scope.","commands":{"allow":[],"deny":["set_title_bar_style"]}},"deny-set-visible-on-all-workspaces":{"identifier":"deny-set-visible-on-all-workspaces","description":"Denies the set_visible_on_all_workspaces command without any pre-configured scope.","commands":{"allow":[],"deny":["set_visible_on_all_workspaces"]}},"deny-show":{"identifier":"deny-show","description":"Denies the show command without any pre-configured scope.","commands":{"allow":[],"deny":["show"]}},"deny-start-dragging":{"identifier":"deny-start-dragging","description":"Denies the start_dragging command without any pre-configured scope.","commands":{"allow":[],"deny":["start_dragging"]}},"deny-start-resize-dragging":{"identifier":"deny-start-resize-dragging","description":"Denies the start_resize_dragging command without any pre-configured scope.","commands":{"allow":[],"deny":["start_resize_dragging"]}},"deny-theme":{"identifier":"deny-theme","description":"Denies the theme command without any pre-configured scope.","commands":{"allow":[],"deny":["theme"]}},"deny-title":{"identifier":"deny-title","description":"Denies the title command without any pre-configured scope.","commands":{"allow":[],"deny":["title"]}},"deny-toggle-maximize":{"identifier":"deny-toggle-maximize","description":"Denies the toggle_maximize command without any pre-configured scope.","commands":{"allow":[],"deny":["toggle_maximize"]}},"deny-unmaximize":{"identifier":"deny-unmaximize","description":"Denies the unmaximize command without any pre-configured scope.","commands":{"allow":[],"deny":["unmaximize"]}},"deny-unminimize":{"identifier":"deny-unminimize","description":"Denies the unminimize command without any pre-configured scope.","commands":{"allow":[],"deny":["unminimize"]}}},"permission_sets":{},"global_scope_schema":null},"dialog":{"default_permission":{"identifier":"default","description":"This permission set configures the types of dialogs\navailable from the dialog plugin.\n\n#### Granted Permissions\n\nAll dialog types are enabled.\n\n\n","permissions":["allow-message","allow-save","allow-open"]},"permissions":{"allow-ask":{"identifier":"allow-ask","description":"Enables the ask command without any pre-configured scope. (**DEPRECATED**: This is now an alias to `allow-message` and will be removed in v3)","commands":{"allow":["message"],"deny":[]}},"allow-confirm":{"identifier":"allow-confirm","description":"Enables the confirm command without any pre-configured scope. (**DEPRECATED**: This is now an alias to `allow-message` and will be removed in v3)","commands":{"allow":["message"],"deny":[]}},"allow-message":{"identifier":"allow-message","description":"Enables the message command without any pre-configured scope.","commands":{"allow":["message"],"deny":[]}},"allow-open":{"identifier":"allow-open","description":"Enables the open command without any pre-configured scope.","commands":{"allow":["open"],"deny":[]}},"allow-save":{"identifier":"allow-save","description":"Enables the save command without any pre-configured scope.","commands":{"allow":["save"],"deny":[]}},"deny-ask":{"identifier":"deny-ask","description":"Denies the ask command without any pre-configured scope. (**DEPRECATED**: This is now an alias to `deny-message` and will be removed in v3)","commands":{"allow":[],"deny":["message"]}},"deny-confirm":{"identifier":"deny-confirm","description":"Denies the confirm command without any pre-configured scope. (**DEPRECATED**: This is now an alias to `deny-message` and will be removed in v3)","commands":{"allow":[],"deny":["message"]}},"deny-message":{"identifier":"deny-message","description":"Denies the message command without any pre-configured scope.","commands":{"allow":[],"deny":["message"]}},"deny-open":{"identifier":"deny-open","description":"Denies the open command without any pre-configured scope.","commands":{"allow":[],"deny":["open"]}},"deny-save":{"identifier":"deny-save","description":"Denies the save command without any pre-configured scope.","commands":{"allow":[],"deny":["save"]}}},"permission_sets":{},"global_scope_schema":null},"opener":{"default_permission":{"identifier":"default","description":"This permission set allows opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application\nas well as reveal file in directories using default file explorer","permissions":["allow-open-url","allow-reveal-item-in-dir","allow-default-urls"]},"permissions":{"allow-default-urls":{"identifier":"allow-default-urls","description":"This enables opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"url":"mailto:*"},{"url":"tel:*"},{"url":"http://*"},{"url":"https://*"}]}},"allow-open-path":{"identifier":"allow-open-path","description":"Enables the open_path command without any pre-configured scope.","commands":{"allow":["open_path"],"deny":[]}},"allow-open-url":{"identifier":"allow-open-url","description":"Enables the open_url command without any pre-configured scope.","commands":{"allow":["open_url"],"deny":[]}},"allow-reveal-item-in-dir":{"identifier":"allow-reveal-item-in-dir","description":"Enables the reveal_item_in_dir command without any pre-configured scope.","commands":{"allow":["reveal_item_in_dir"],"deny":[]}},"deny-open-path":{"identifier":"deny-open-path","description":"Denies the open_path command without any pre-configured scope.","commands":{"allow":[],"deny":["open_path"]}},"deny-open-url":{"identifier":"deny-open-url","description":"Denies the open_url command without any pre-configured scope.","commands":{"allow":[],"deny":["open_url"]}},"deny-reveal-item-in-dir":{"identifier":"deny-reveal-item-in-dir","description":"Denies the reveal_item_in_dir command without any pre-configured scope.","commands":{"allow":[],"deny":["reveal_item_in_dir"]}}},"permission_sets":{},"global_scope_schema":{"$schema":"http://json-schema.org/draft-07/schema#","anyOf":[{"properties":{"app":{"allOf":[{"$ref":"#/definitions/Application"}],"description":"An application to open this url with, for example: firefox."},"url":{"description":"A URL that can be opened by the webview when using the Opener APIs.\n\nWildcards can be used following the UNIX glob pattern.\n\nExamples:\n\n- \"https://*\" : allows all HTTPS origin\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"","type":"string"}},"required":["url"],"type":"object"},{"properties":{"app":{"allOf":[{"$ref":"#/definitions/Application"}],"description":"An application to open this path with, for example: xdg-open."},"path":{"description":"A path that can be opened by the webview when using the Opener APIs.\n\nThe pattern can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$APP`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.","type":"string"}},"required":["path"],"type":"object"}],"definitions":{"Application":{"anyOf":[{"description":"Open in default application.","type":"null"},{"description":"If true, allow open with any application.","type":"boolean"},{"description":"Allow specific application to open with.","type":"string"}],"description":"Opener scope application."}},"description":"Opener scope entry.","title":"OpenerScopeEntry"}}} \ No newline at end of file +{"__app-acl__":{"default_permission":null,"permissions":{"allow-acquire-claude-token":{"identifier":"allow-acquire-claude-token","description":"Enables the acquire_claude_token command without any pre-configured scope.","commands":{"allow":["acquire_claude_token"],"deny":[]}},"allow-add-project":{"identifier":"allow-add-project","description":"Enables the add_project command without any pre-configured scope.","commands":{"allow":["add_project"],"deny":[]}},"allow-add-scheduled-task":{"identifier":"allow-add-scheduled-task","description":"Enables the add_scheduled_task command without any pre-configured scope.","commands":{"allow":["add_scheduled_task"],"deny":[]}},"allow-apply-settings-import":{"identifier":"allow-apply-settings-import","description":"Enables the apply_settings_import command without any pre-configured scope.","commands":{"allow":["apply_settings_import"],"deny":[]}},"allow-aws-sso-refresh":{"identifier":"allow-aws-sso-refresh","description":"Enables the aws_sso_refresh command without any pre-configured scope.","commands":{"allow":["aws_sso_refresh"],"deny":[]}},"allow-build-gateway-image":{"identifier":"allow-build-gateway-image","description":"Enables the build_gateway_image command without any pre-configured scope.","commands":{"allow":["build_gateway_image"],"deny":[]}},"allow-build-image":{"identifier":"allow-build-image","description":"Enables the build_image command without any pre-configured scope.","commands":{"allow":["build_image"],"deny":[]}},"allow-build-stt-image":{"identifier":"allow-build-stt-image","description":"Enables the build_stt_image command without any pre-configured scope.","commands":{"allow":["build_stt_image"],"deny":[]}},"allow-cancel-claude-token":{"identifier":"allow-cancel-claude-token","description":"Enables the cancel_claude_token command without any pre-configured scope.","commands":{"allow":["cancel_claude_token"],"deny":[]}},"allow-check-browser-view-support":{"identifier":"allow-check-browser-view-support","description":"Enables the check_browser_view_support command without any pre-configured scope.","commands":{"allow":["check_browser_view_support"],"deny":[]}},"allow-check-docker":{"identifier":"allow-check-docker","description":"Enables the check_docker command without any pre-configured scope.","commands":{"allow":["check_docker"],"deny":[]}},"allow-check-for-updates":{"identifier":"allow-check-for-updates","description":"Enables the check_for_updates command without any pre-configured scope.","commands":{"allow":["check_for_updates"],"deny":[]}},"allow-check-gateway-health":{"identifier":"allow-check-gateway-health","description":"Enables the check_gateway_health command without any pre-configured scope.","commands":{"allow":["check_gateway_health"],"deny":[]}},"allow-check-image-exists":{"identifier":"allow-check-image-exists","description":"Enables the check_image_exists command without any pre-configured scope.","commands":{"allow":["check_image_exists"],"deny":[]}},"allow-check-image-update":{"identifier":"allow-check-image-update","description":"Enables the check_image_update command without any pre-configured scope.","commands":{"allow":["check_image_update"],"deny":[]}},"allow-clear-claude-token":{"identifier":"allow-clear-claude-token","description":"Enables the clear_claude_token command without any pre-configured scope.","commands":{"allow":["clear_claude_token"],"deny":[]}},"allow-clear-gateway-api-key":{"identifier":"allow-clear-gateway-api-key","description":"Enables the clear_gateway_api_key command without any pre-configured scope.","commands":{"allow":["clear_gateway_api_key"],"deny":[]}},"allow-clear-scheduler-notifications":{"identifier":"allow-clear-scheduler-notifications","description":"Enables the clear_scheduler_notifications command without any pre-configured scope.","commands":{"allow":["clear_scheduler_notifications"],"deny":[]}},"allow-close-browser-view-popout":{"identifier":"allow-close-browser-view-popout","description":"Enables the close_browser_view_popout command without any pre-configured scope.","commands":{"allow":["close_browser_view_popout"],"deny":[]}},"allow-close-container-page":{"identifier":"allow-close-container-page","description":"Enables the close_container_page command without any pre-configured scope.","commands":{"allow":["close_container_page"],"deny":[]}},"allow-close-terminal-session":{"identifier":"allow-close-terminal-session","description":"Enables the close_terminal_session command without any pre-configured scope.","commands":{"allow":["close_terminal_session"],"deny":[]}},"allow-confirm-migration":{"identifier":"allow-confirm-migration","description":"Enables the confirm_migration command without any pre-configured scope.","commands":{"allow":["confirm_migration"],"deny":[]}},"allow-create-container-directory":{"identifier":"allow-create-container-directory","description":"Enables the create_container_directory command without any pre-configured scope.","commands":{"allow":["create_container_directory"],"deny":[]}},"allow-delete-note":{"identifier":"allow-delete-note","description":"Enables the delete_note command without any pre-configured scope.","commands":{"allow":["delete_note"],"deny":[]}},"allow-detect-aws-config":{"identifier":"allow-detect-aws-config","description":"Enables the detect_aws_config command without any pre-configured scope.","commands":{"allow":["detect_aws_config"],"deny":[]}},"allow-detect-host-timezone":{"identifier":"allow-detect-host-timezone","description":"Enables the detect_host_timezone command without any pre-configured scope.","commands":{"allow":["detect_host_timezone"],"deny":[]}},"allow-detect-install-options":{"identifier":"allow-detect-install-options","description":"Enables the detect_install_options command without any pre-configured scope.","commands":{"allow":["detect_install_options"],"deny":[]}},"allow-download-container-backup":{"identifier":"allow-download-container-backup","description":"Enables the download_container_backup command without any pre-configured scope.","commands":{"allow":["download_container_backup"],"deny":[]}},"allow-download-container-file":{"identifier":"allow-download-container-file","description":"Enables the download_container_file command without any pre-configured scope.","commands":{"allow":["download_container_file"],"deny":[]}},"allow-export-settings":{"identifier":"allow-export-settings","description":"Enables the export_settings command without any pre-configured scope.","commands":{"allow":["export_settings"],"deny":[]}},"allow-get-app-version":{"identifier":"allow-get-app-version","description":"Enables the get_app_version command without any pre-configured scope.","commands":{"allow":["get_app_version"],"deny":[]}},"allow-get-auth-bridge-status":{"identifier":"allow-get-auth-bridge-status","description":"Enables the get_auth_bridge_status command without any pre-configured scope.","commands":{"allow":["get_auth_bridge_status"],"deny":[]}},"allow-get-browser-view-match-window":{"identifier":"allow-get-browser-view-match-window","description":"Enables the get_browser_view_match_window command without any pre-configured scope.","commands":{"allow":["get_browser_view_match_window"],"deny":[]}},"allow-get-browser-view-popout-state":{"identifier":"allow-get-browser-view-popout-state","description":"Enables the get_browser_view_popout_state command without any pre-configured scope.","commands":{"allow":["get_browser_view_popout_state"],"deny":[]}},"allow-get-browser-view-status":{"identifier":"allow-get-browser-view-status","description":"Enables the get_browser_view_status command without any pre-configured scope.","commands":{"allow":["get_browser_view_status"],"deny":[]}},"allow-get-container-info":{"identifier":"allow-get-container-info","description":"Enables the get_container_info command without any pre-configured scope.","commands":{"allow":["get_container_info"],"deny":[]}},"allow-get-container-page-state":{"identifier":"allow-get-container-page-state","description":"Enables the get_container_page_state command without any pre-configured scope.","commands":{"allow":["get_container_page_state"],"deny":[]}},"allow-get-container-staleness":{"identifier":"allow-get-container-staleness","description":"Enables the get_container_staleness command without any pre-configured scope.","commands":{"allow":["get_container_staleness"],"deny":[]}},"allow-get-gateway-auth-token":{"identifier":"allow-get-gateway-auth-token","description":"Enables the get_gateway_auth_token command without any pre-configured scope.","commands":{"allow":["get_gateway_auth_token"],"deny":[]}},"allow-get-gateway-status":{"identifier":"allow-get-gateway-status","description":"Enables the get_gateway_status command without any pre-configured scope.","commands":{"allow":["get_gateway_status"],"deny":[]}},"allow-get-help-content":{"identifier":"allow-get-help-content","description":"Enables the get_help_content command without any pre-configured scope.","commands":{"allow":["get_help_content"],"deny":[]}},"allow-get-migration-state":{"identifier":"allow-get-migration-state","description":"Enables the get_migration_state command without any pre-configured scope.","commands":{"allow":["get_migration_state"],"deny":[]}},"allow-get-scheduled-task-log":{"identifier":"allow-get-scheduled-task-log","description":"Enables the get_scheduled_task_log command without any pre-configured scope.","commands":{"allow":["get_scheduled_task_log"],"deny":[]}},"allow-get-scheduler-notifications":{"identifier":"allow-get-scheduler-notifications","description":"Enables the get_scheduler_notifications command without any pre-configured scope.","commands":{"allow":["get_scheduler_notifications"],"deny":[]}},"allow-get-settings":{"identifier":"allow-get-settings","description":"Enables the get_settings command without any pre-configured scope.","commands":{"allow":["get_settings"],"deny":[]}},"allow-get-stt-status":{"identifier":"allow-get-stt-status","description":"Enables the get_stt_status command without any pre-configured scope.","commands":{"allow":["get_stt_status"],"deny":[]}},"allow-get-web-terminal-status":{"identifier":"allow-get-web-terminal-status","description":"Enables the get_web_terminal_status command without any pre-configured scope.","commands":{"allow":["get_web_terminal_status"],"deny":[]}},"allow-has-claude-token":{"identifier":"allow-has-claude-token","description":"Enables the has_claude_token command without any pre-configured scope.","commands":{"allow":["has_claude_token"],"deny":[]}},"allow-inspect-ca-cert-path":{"identifier":"allow-inspect-ca-cert-path","description":"Enables the inspect_ca_cert_path command without any pre-configured scope.","commands":{"allow":["inspect_ca_cert_path"],"deny":[]}},"allow-install-browser-view-browser":{"identifier":"allow-install-browser-view-browser","description":"Enables the install_browser_view_browser command without any pre-configured scope.","commands":{"allow":["install_browser_view_browser"],"deny":[]}},"allow-install-browser-view-support":{"identifier":"allow-install-browser-view-support","description":"Enables the install_browser_view_support command without any pre-configured scope.","commands":{"allow":["install_browser_view_support"],"deny":[]}},"allow-list-aws-profiles":{"identifier":"allow-list-aws-profiles","description":"Enables the list_aws_profiles command without any pre-configured scope.","commands":{"allow":["list_aws_profiles"],"deny":[]}},"allow-list-claude-sessions":{"identifier":"allow-list-claude-sessions","description":"Enables the list_claude_sessions command without any pre-configured scope.","commands":{"allow":["list_claude_sessions"],"deny":[]}},"allow-list-container-capabilities":{"identifier":"allow-list-container-capabilities","description":"Enables the list_container_capabilities command without any pre-configured scope.","commands":{"allow":["list_container_capabilities"],"deny":[]}},"allow-list-container-files":{"identifier":"allow-list-container-files","description":"Enables the list_container_files command without any pre-configured scope.","commands":{"allow":["list_container_files"],"deny":[]}},"allow-list-notes":{"identifier":"allow-list-notes","description":"Enables the list_notes command without any pre-configured scope.","commands":{"allow":["list_notes"],"deny":[]}},"allow-list-projects":{"identifier":"allow-list-projects","description":"Enables the list_projects command without any pre-configured scope.","commands":{"allow":["list_projects"],"deny":[]}},"allow-list-scheduled-tasks":{"identifier":"allow-list-scheduled-tasks","description":"Enables the list_scheduled_tasks command without any pre-configured scope.","commands":{"allow":["list_scheduled_tasks"],"deny":[]}},"allow-migrate-project-to-base":{"identifier":"allow-migrate-project-to-base","description":"Enables the migrate_project_to_base command without any pre-configured scope.","commands":{"allow":["migrate_project_to_base"],"deny":[]}},"allow-open-browser-view-popout":{"identifier":"allow-open-browser-view-popout","description":"Enables the open_browser_view_popout command without any pre-configured scope.","commands":{"allow":["open_browser_view_popout"],"deny":[]}},"allow-open-file-viewer":{"identifier":"allow-open-file-viewer","description":"Enables the open_file_viewer command without any pre-configured scope.","commands":{"allow":["open_file_viewer"],"deny":[]}},"allow-open-page-in-container-browser":{"identifier":"allow-open-page-in-container-browser","description":"Enables the open_page_in_container_browser command without any pre-configured scope.","commands":{"allow":["open_page_in_container_browser"],"deny":[]}},"allow-open-terminal-session":{"identifier":"allow-open-terminal-session","description":"Enables the open_terminal_session command without any pre-configured scope.","commands":{"allow":["open_terminal_session"],"deny":[]}},"allow-open-url-external":{"identifier":"allow-open-url-external","description":"Enables the open_url_external command without any pre-configured scope.","commands":{"allow":["open_url_external"],"deny":[]}},"allow-paste-image-to-terminal":{"identifier":"allow-paste-image-to-terminal","description":"Enables the paste_image_to_terminal command without any pre-configured scope.","commands":{"allow":["paste_image_to_terminal"],"deny":[]}},"allow-preview-settings-import":{"identifier":"allow-preview-settings-import","description":"Enables the preview_settings_import command without any pre-configured scope.","commands":{"allow":["preview_settings_import"],"deny":[]}},"allow-pull-gateway-image":{"identifier":"allow-pull-gateway-image","description":"Enables the pull_gateway_image command without any pre-configured scope.","commands":{"allow":["pull_gateway_image"],"deny":[]}},"allow-pull-image":{"identifier":"allow-pull-image","description":"Enables the pull_image command without any pre-configured scope.","commands":{"allow":["pull_image"],"deny":[]}},"allow-pull-stt-image":{"identifier":"allow-pull-stt-image","description":"Enables the pull_stt_image command without any pre-configured scope.","commands":{"allow":["pull_stt_image"],"deny":[]}},"allow-read-container-file":{"identifier":"allow-read-container-file","description":"Enables the read_container_file command without any pre-configured scope.","commands":{"allow":["read_container_file"],"deny":[]}},"allow-rebuild-project-container":{"identifier":"allow-rebuild-project-container","description":"Enables the rebuild_project_container command without any pre-configured scope.","commands":{"allow":["rebuild_project_container"],"deny":[]}},"allow-reconcile-project-statuses":{"identifier":"allow-reconcile-project-statuses","description":"Enables the reconcile_project_statuses command without any pre-configured scope.","commands":{"allow":["reconcile_project_statuses"],"deny":[]}},"allow-regenerate-gateway-auth-token":{"identifier":"allow-regenerate-gateway-auth-token","description":"Enables the regenerate_gateway_auth_token command without any pre-configured scope.","commands":{"allow":["regenerate_gateway_auth_token"],"deny":[]}},"allow-regenerate-web-terminal-token":{"identifier":"allow-regenerate-web-terminal-token","description":"Enables the regenerate_web_terminal_token command without any pre-configured scope.","commands":{"allow":["regenerate_web_terminal_token"],"deny":[]}},"allow-remove-project":{"identifier":"allow-remove-project","description":"Enables the remove_project command without any pre-configured scope.","commands":{"allow":["remove_project"],"deny":[]}},"allow-remove-scheduled-task":{"identifier":"allow-remove-scheduled-task","description":"Enables the remove_scheduled_task command without any pre-configured scope.","commands":{"allow":["remove_scheduled_task"],"deny":[]}},"allow-rename-container-path":{"identifier":"allow-rename-container-path","description":"Enables the rename_container_path command without any pre-configured scope.","commands":{"allow":["rename_container_path"],"deny":[]}},"allow-resume-session-command":{"identifier":"allow-resume-session-command","description":"Enables the resume_session_command command without any pre-configured scope.","commands":{"allow":["resume_session_command"],"deny":[]}},"allow-rollback-migration":{"identifier":"allow-rollback-migration","description":"Enables the rollback_migration command without any pre-configured scope.","commands":{"allow":["rollback_migration"],"deny":[]}},"allow-run-docker-install":{"identifier":"allow-run-docker-install","description":"Enables the run_docker_install command without any pre-configured scope.","commands":{"allow":["run_docker_install"],"deny":[]}},"allow-run-scheduled-task-now":{"identifier":"allow-run-scheduled-task-now","description":"Enables the run_scheduled_task_now command without any pre-configured scope.","commands":{"allow":["run_scheduled_task_now"],"deny":[]}},"allow-save-note":{"identifier":"allow-save-note","description":"Enables the save_note command without any pre-configured scope.","commands":{"allow":["save_note"],"deny":[]}},"allow-send-audio-data":{"identifier":"allow-send-audio-data","description":"Enables the send_audio_data command without any pre-configured scope.","commands":{"allow":["send_audio_data"],"deny":[]}},"allow-set-auth-bridge-enabled":{"identifier":"allow-set-auth-bridge-enabled","description":"Enables the set_auth_bridge_enabled command without any pre-configured scope.","commands":{"allow":["set_auth_bridge_enabled"],"deny":[]}},"allow-set-browser-view-enabled":{"identifier":"allow-set-browser-view-enabled","description":"Enables the set_browser_view_enabled command without any pre-configured scope.","commands":{"allow":["set_browser_view_enabled"],"deny":[]}},"allow-set-browser-view-match-window":{"identifier":"allow-set-browser-view-match-window","description":"Enables the set_browser_view_match_window command without any pre-configured scope.","commands":{"allow":["set_browser_view_match_window"],"deny":[]}},"allow-set-browser-view-popout-always-on-top":{"identifier":"allow-set-browser-view-popout-always-on-top","description":"Enables the set_browser_view_popout_always_on_top command without any pre-configured scope.","commands":{"allow":["set_browser_view_popout_always_on_top"],"deny":[]}},"allow-set-container-page-viewport":{"identifier":"allow-set-container-page-viewport","description":"Enables the set_container_page_viewport command without any pre-configured scope.","commands":{"allow":["set_container_page_viewport"],"deny":[]}},"allow-set-gateway-api-key":{"identifier":"allow-set-gateway-api-key","description":"Enables the set_gateway_api_key command without any pre-configured scope.","commands":{"allow":["set_gateway_api_key"],"deny":[]}},"allow-set-scheduled-task-enabled":{"identifier":"allow-set-scheduled-task-enabled","description":"Enables the set_scheduled_task_enabled command without any pre-configured scope.","commands":{"allow":["set_scheduled_task_enabled"],"deny":[]}},"allow-start-audio-bridge":{"identifier":"allow-start-audio-bridge","description":"Enables the start_audio_bridge command without any pre-configured scope.","commands":{"allow":["start_audio_bridge"],"deny":[]}},"allow-start-gateway":{"identifier":"allow-start-gateway","description":"Enables the start_gateway command without any pre-configured scope.","commands":{"allow":["start_gateway"],"deny":[]}},"allow-start-project-container":{"identifier":"allow-start-project-container","description":"Enables the start_project_container command without any pre-configured scope.","commands":{"allow":["start_project_container"],"deny":[]}},"allow-start-stt":{"identifier":"allow-start-stt","description":"Enables the start_stt command without any pre-configured scope.","commands":{"allow":["start_stt"],"deny":[]}},"allow-start-web-terminal":{"identifier":"allow-start-web-terminal","description":"Enables the start_web_terminal command without any pre-configured scope.","commands":{"allow":["start_web_terminal"],"deny":[]}},"allow-stop-audio-bridge":{"identifier":"allow-stop-audio-bridge","description":"Enables the stop_audio_bridge command without any pre-configured scope.","commands":{"allow":["stop_audio_bridge"],"deny":[]}},"allow-stop-gateway":{"identifier":"allow-stop-gateway","description":"Enables the stop_gateway command without any pre-configured scope.","commands":{"allow":["stop_gateway"],"deny":[]}},"allow-stop-project-container":{"identifier":"allow-stop-project-container","description":"Enables the stop_project_container command without any pre-configured scope.","commands":{"allow":["stop_project_container"],"deny":[]}},"allow-stop-stt":{"identifier":"allow-stop-stt","description":"Enables the stop_stt command without any pre-configured scope.","commands":{"allow":["stop_stt"],"deny":[]}},"allow-stop-web-terminal":{"identifier":"allow-stop-web-terminal","description":"Enables the stop_web_terminal command without any pre-configured scope.","commands":{"allow":["stop_web_terminal"],"deny":[]}},"allow-submit-claude-token-code":{"identifier":"allow-submit-claude-token-code","description":"Enables the submit_claude_token_code command without any pre-configured scope.","commands":{"allow":["submit_claude_token_code"],"deny":[]}},"allow-sweep-claude-token-snapshots":{"identifier":"allow-sweep-claude-token-snapshots","description":"Enables the sweep_claude_token_snapshots command without any pre-configured scope.","commands":{"allow":["sweep_claude_token_snapshots"],"deny":[]}},"allow-terminal-input":{"identifier":"allow-terminal-input","description":"Enables the terminal_input command without any pre-configured scope.","commands":{"allow":["terminal_input"],"deny":[]}},"allow-terminal-resize":{"identifier":"allow-terminal-resize","description":"Enables the terminal_resize command without any pre-configured scope.","commands":{"allow":["terminal_resize"],"deny":[]}},"allow-transcribe-audio":{"identifier":"allow-transcribe-audio","description":"Enables the transcribe_audio command without any pre-configured scope.","commands":{"allow":["transcribe_audio"],"deny":[]}},"allow-update-project":{"identifier":"allow-update-project","description":"Enables the update_project command without any pre-configured scope.","commands":{"allow":["update_project"],"deny":[]}},"allow-update-scheduled-task":{"identifier":"allow-update-scheduled-task","description":"Enables the update_scheduled_task command without any pre-configured scope.","commands":{"allow":["update_scheduled_task"],"deny":[]}},"allow-update-settings":{"identifier":"allow-update-settings","description":"Enables the update_settings command without any pre-configured scope.","commands":{"allow":["update_settings"],"deny":[]}},"allow-upload-files-to-container":{"identifier":"allow-upload-files-to-container","description":"Enables the upload_files_to_container command without any pre-configured scope.","commands":{"allow":["upload_files_to_container"],"deny":[]}},"allow-upload-host-file-to-terminal":{"identifier":"allow-upload-host-file-to-terminal","description":"Enables the upload_host_file_to_terminal command without any pre-configured scope.","commands":{"allow":["upload_host_file_to_terminal"],"deny":[]}},"allow-viewer-choose-file":{"identifier":"allow-viewer-choose-file","description":"Enables the viewer_choose_file command without any pre-configured scope.","commands":{"allow":["viewer_choose_file"],"deny":[]}},"allow-viewer-get-state":{"identifier":"allow-viewer-get-state","description":"Enables the viewer_get_state command without any pre-configured scope.","commands":{"allow":["viewer_get_state"],"deny":[]}},"allow-viewer-poll-file":{"identifier":"allow-viewer-poll-file","description":"Enables the viewer_poll_file command without any pre-configured scope.","commands":{"allow":["viewer_poll_file"],"deny":[]}},"allow-viewer-read-file":{"identifier":"allow-viewer-read-file","description":"Enables the viewer_read_file command without any pre-configured scope.","commands":{"allow":["viewer_read_file"],"deny":[]}},"allow-viewer-write-file":{"identifier":"allow-viewer-write-file","description":"Enables the viewer_write_file command without any pre-configured scope.","commands":{"allow":["viewer_write_file"],"deny":[]}},"deny-acquire-claude-token":{"identifier":"deny-acquire-claude-token","description":"Denies the acquire_claude_token command without any pre-configured scope.","commands":{"allow":[],"deny":["acquire_claude_token"]}},"deny-add-project":{"identifier":"deny-add-project","description":"Denies the add_project command without any pre-configured scope.","commands":{"allow":[],"deny":["add_project"]}},"deny-add-scheduled-task":{"identifier":"deny-add-scheduled-task","description":"Denies the add_scheduled_task command without any pre-configured scope.","commands":{"allow":[],"deny":["add_scheduled_task"]}},"deny-apply-settings-import":{"identifier":"deny-apply-settings-import","description":"Denies the apply_settings_import command without any pre-configured scope.","commands":{"allow":[],"deny":["apply_settings_import"]}},"deny-aws-sso-refresh":{"identifier":"deny-aws-sso-refresh","description":"Denies the aws_sso_refresh command without any pre-configured scope.","commands":{"allow":[],"deny":["aws_sso_refresh"]}},"deny-build-gateway-image":{"identifier":"deny-build-gateway-image","description":"Denies the build_gateway_image command without any pre-configured scope.","commands":{"allow":[],"deny":["build_gateway_image"]}},"deny-build-image":{"identifier":"deny-build-image","description":"Denies the build_image command without any pre-configured scope.","commands":{"allow":[],"deny":["build_image"]}},"deny-build-stt-image":{"identifier":"deny-build-stt-image","description":"Denies the build_stt_image command without any pre-configured scope.","commands":{"allow":[],"deny":["build_stt_image"]}},"deny-cancel-claude-token":{"identifier":"deny-cancel-claude-token","description":"Denies the cancel_claude_token command without any pre-configured scope.","commands":{"allow":[],"deny":["cancel_claude_token"]}},"deny-check-browser-view-support":{"identifier":"deny-check-browser-view-support","description":"Denies the check_browser_view_support command without any pre-configured scope.","commands":{"allow":[],"deny":["check_browser_view_support"]}},"deny-check-docker":{"identifier":"deny-check-docker","description":"Denies the check_docker command without any pre-configured scope.","commands":{"allow":[],"deny":["check_docker"]}},"deny-check-for-updates":{"identifier":"deny-check-for-updates","description":"Denies the check_for_updates command without any pre-configured scope.","commands":{"allow":[],"deny":["check_for_updates"]}},"deny-check-gateway-health":{"identifier":"deny-check-gateway-health","description":"Denies the check_gateway_health command without any pre-configured scope.","commands":{"allow":[],"deny":["check_gateway_health"]}},"deny-check-image-exists":{"identifier":"deny-check-image-exists","description":"Denies the check_image_exists command without any pre-configured scope.","commands":{"allow":[],"deny":["check_image_exists"]}},"deny-check-image-update":{"identifier":"deny-check-image-update","description":"Denies the check_image_update command without any pre-configured scope.","commands":{"allow":[],"deny":["check_image_update"]}},"deny-clear-claude-token":{"identifier":"deny-clear-claude-token","description":"Denies the clear_claude_token command without any pre-configured scope.","commands":{"allow":[],"deny":["clear_claude_token"]}},"deny-clear-gateway-api-key":{"identifier":"deny-clear-gateway-api-key","description":"Denies the clear_gateway_api_key command without any pre-configured scope.","commands":{"allow":[],"deny":["clear_gateway_api_key"]}},"deny-clear-scheduler-notifications":{"identifier":"deny-clear-scheduler-notifications","description":"Denies the clear_scheduler_notifications command without any pre-configured scope.","commands":{"allow":[],"deny":["clear_scheduler_notifications"]}},"deny-close-browser-view-popout":{"identifier":"deny-close-browser-view-popout","description":"Denies the close_browser_view_popout command without any pre-configured scope.","commands":{"allow":[],"deny":["close_browser_view_popout"]}},"deny-close-container-page":{"identifier":"deny-close-container-page","description":"Denies the close_container_page command without any pre-configured scope.","commands":{"allow":[],"deny":["close_container_page"]}},"deny-close-terminal-session":{"identifier":"deny-close-terminal-session","description":"Denies the close_terminal_session command without any pre-configured scope.","commands":{"allow":[],"deny":["close_terminal_session"]}},"deny-confirm-migration":{"identifier":"deny-confirm-migration","description":"Denies the confirm_migration command without any pre-configured scope.","commands":{"allow":[],"deny":["confirm_migration"]}},"deny-create-container-directory":{"identifier":"deny-create-container-directory","description":"Denies the create_container_directory command without any pre-configured scope.","commands":{"allow":[],"deny":["create_container_directory"]}},"deny-delete-note":{"identifier":"deny-delete-note","description":"Denies the delete_note command without any pre-configured scope.","commands":{"allow":[],"deny":["delete_note"]}},"deny-detect-aws-config":{"identifier":"deny-detect-aws-config","description":"Denies the detect_aws_config command without any pre-configured scope.","commands":{"allow":[],"deny":["detect_aws_config"]}},"deny-detect-host-timezone":{"identifier":"deny-detect-host-timezone","description":"Denies the detect_host_timezone command without any pre-configured scope.","commands":{"allow":[],"deny":["detect_host_timezone"]}},"deny-detect-install-options":{"identifier":"deny-detect-install-options","description":"Denies the detect_install_options command without any pre-configured scope.","commands":{"allow":[],"deny":["detect_install_options"]}},"deny-download-container-backup":{"identifier":"deny-download-container-backup","description":"Denies the download_container_backup command without any pre-configured scope.","commands":{"allow":[],"deny":["download_container_backup"]}},"deny-download-container-file":{"identifier":"deny-download-container-file","description":"Denies the download_container_file command without any pre-configured scope.","commands":{"allow":[],"deny":["download_container_file"]}},"deny-export-settings":{"identifier":"deny-export-settings","description":"Denies the export_settings command without any pre-configured scope.","commands":{"allow":[],"deny":["export_settings"]}},"deny-get-app-version":{"identifier":"deny-get-app-version","description":"Denies the get_app_version command without any pre-configured scope.","commands":{"allow":[],"deny":["get_app_version"]}},"deny-get-auth-bridge-status":{"identifier":"deny-get-auth-bridge-status","description":"Denies the get_auth_bridge_status command without any pre-configured scope.","commands":{"allow":[],"deny":["get_auth_bridge_status"]}},"deny-get-browser-view-match-window":{"identifier":"deny-get-browser-view-match-window","description":"Denies the get_browser_view_match_window command without any pre-configured scope.","commands":{"allow":[],"deny":["get_browser_view_match_window"]}},"deny-get-browser-view-popout-state":{"identifier":"deny-get-browser-view-popout-state","description":"Denies the get_browser_view_popout_state command without any pre-configured scope.","commands":{"allow":[],"deny":["get_browser_view_popout_state"]}},"deny-get-browser-view-status":{"identifier":"deny-get-browser-view-status","description":"Denies the get_browser_view_status command without any pre-configured scope.","commands":{"allow":[],"deny":["get_browser_view_status"]}},"deny-get-container-info":{"identifier":"deny-get-container-info","description":"Denies the get_container_info command without any pre-configured scope.","commands":{"allow":[],"deny":["get_container_info"]}},"deny-get-container-page-state":{"identifier":"deny-get-container-page-state","description":"Denies the get_container_page_state command without any pre-configured scope.","commands":{"allow":[],"deny":["get_container_page_state"]}},"deny-get-container-staleness":{"identifier":"deny-get-container-staleness","description":"Denies the get_container_staleness command without any pre-configured scope.","commands":{"allow":[],"deny":["get_container_staleness"]}},"deny-get-gateway-auth-token":{"identifier":"deny-get-gateway-auth-token","description":"Denies the get_gateway_auth_token command without any pre-configured scope.","commands":{"allow":[],"deny":["get_gateway_auth_token"]}},"deny-get-gateway-status":{"identifier":"deny-get-gateway-status","description":"Denies the get_gateway_status command without any pre-configured scope.","commands":{"allow":[],"deny":["get_gateway_status"]}},"deny-get-help-content":{"identifier":"deny-get-help-content","description":"Denies the get_help_content command without any pre-configured scope.","commands":{"allow":[],"deny":["get_help_content"]}},"deny-get-migration-state":{"identifier":"deny-get-migration-state","description":"Denies the get_migration_state command without any pre-configured scope.","commands":{"allow":[],"deny":["get_migration_state"]}},"deny-get-scheduled-task-log":{"identifier":"deny-get-scheduled-task-log","description":"Denies the get_scheduled_task_log command without any pre-configured scope.","commands":{"allow":[],"deny":["get_scheduled_task_log"]}},"deny-get-scheduler-notifications":{"identifier":"deny-get-scheduler-notifications","description":"Denies the get_scheduler_notifications command without any pre-configured scope.","commands":{"allow":[],"deny":["get_scheduler_notifications"]}},"deny-get-settings":{"identifier":"deny-get-settings","description":"Denies the get_settings command without any pre-configured scope.","commands":{"allow":[],"deny":["get_settings"]}},"deny-get-stt-status":{"identifier":"deny-get-stt-status","description":"Denies the get_stt_status command without any pre-configured scope.","commands":{"allow":[],"deny":["get_stt_status"]}},"deny-get-web-terminal-status":{"identifier":"deny-get-web-terminal-status","description":"Denies the get_web_terminal_status command without any pre-configured scope.","commands":{"allow":[],"deny":["get_web_terminal_status"]}},"deny-has-claude-token":{"identifier":"deny-has-claude-token","description":"Denies the has_claude_token command without any pre-configured scope.","commands":{"allow":[],"deny":["has_claude_token"]}},"deny-inspect-ca-cert-path":{"identifier":"deny-inspect-ca-cert-path","description":"Denies the inspect_ca_cert_path command without any pre-configured scope.","commands":{"allow":[],"deny":["inspect_ca_cert_path"]}},"deny-install-browser-view-browser":{"identifier":"deny-install-browser-view-browser","description":"Denies the install_browser_view_browser command without any pre-configured scope.","commands":{"allow":[],"deny":["install_browser_view_browser"]}},"deny-install-browser-view-support":{"identifier":"deny-install-browser-view-support","description":"Denies the install_browser_view_support command without any pre-configured scope.","commands":{"allow":[],"deny":["install_browser_view_support"]}},"deny-list-aws-profiles":{"identifier":"deny-list-aws-profiles","description":"Denies the list_aws_profiles command without any pre-configured scope.","commands":{"allow":[],"deny":["list_aws_profiles"]}},"deny-list-claude-sessions":{"identifier":"deny-list-claude-sessions","description":"Denies the list_claude_sessions command without any pre-configured scope.","commands":{"allow":[],"deny":["list_claude_sessions"]}},"deny-list-container-capabilities":{"identifier":"deny-list-container-capabilities","description":"Denies the list_container_capabilities command without any pre-configured scope.","commands":{"allow":[],"deny":["list_container_capabilities"]}},"deny-list-container-files":{"identifier":"deny-list-container-files","description":"Denies the list_container_files command without any pre-configured scope.","commands":{"allow":[],"deny":["list_container_files"]}},"deny-list-notes":{"identifier":"deny-list-notes","description":"Denies the list_notes command without any pre-configured scope.","commands":{"allow":[],"deny":["list_notes"]}},"deny-list-projects":{"identifier":"deny-list-projects","description":"Denies the list_projects command without any pre-configured scope.","commands":{"allow":[],"deny":["list_projects"]}},"deny-list-scheduled-tasks":{"identifier":"deny-list-scheduled-tasks","description":"Denies the list_scheduled_tasks command without any pre-configured scope.","commands":{"allow":[],"deny":["list_scheduled_tasks"]}},"deny-migrate-project-to-base":{"identifier":"deny-migrate-project-to-base","description":"Denies the migrate_project_to_base command without any pre-configured scope.","commands":{"allow":[],"deny":["migrate_project_to_base"]}},"deny-open-browser-view-popout":{"identifier":"deny-open-browser-view-popout","description":"Denies the open_browser_view_popout command without any pre-configured scope.","commands":{"allow":[],"deny":["open_browser_view_popout"]}},"deny-open-file-viewer":{"identifier":"deny-open-file-viewer","description":"Denies the open_file_viewer command without any pre-configured scope.","commands":{"allow":[],"deny":["open_file_viewer"]}},"deny-open-page-in-container-browser":{"identifier":"deny-open-page-in-container-browser","description":"Denies the open_page_in_container_browser command without any pre-configured scope.","commands":{"allow":[],"deny":["open_page_in_container_browser"]}},"deny-open-terminal-session":{"identifier":"deny-open-terminal-session","description":"Denies the open_terminal_session command without any pre-configured scope.","commands":{"allow":[],"deny":["open_terminal_session"]}},"deny-open-url-external":{"identifier":"deny-open-url-external","description":"Denies the open_url_external command without any pre-configured scope.","commands":{"allow":[],"deny":["open_url_external"]}},"deny-paste-image-to-terminal":{"identifier":"deny-paste-image-to-terminal","description":"Denies the paste_image_to_terminal command without any pre-configured scope.","commands":{"allow":[],"deny":["paste_image_to_terminal"]}},"deny-preview-settings-import":{"identifier":"deny-preview-settings-import","description":"Denies the preview_settings_import command without any pre-configured scope.","commands":{"allow":[],"deny":["preview_settings_import"]}},"deny-pull-gateway-image":{"identifier":"deny-pull-gateway-image","description":"Denies the pull_gateway_image command without any pre-configured scope.","commands":{"allow":[],"deny":["pull_gateway_image"]}},"deny-pull-image":{"identifier":"deny-pull-image","description":"Denies the pull_image command without any pre-configured scope.","commands":{"allow":[],"deny":["pull_image"]}},"deny-pull-stt-image":{"identifier":"deny-pull-stt-image","description":"Denies the pull_stt_image command without any pre-configured scope.","commands":{"allow":[],"deny":["pull_stt_image"]}},"deny-read-container-file":{"identifier":"deny-read-container-file","description":"Denies the read_container_file command without any pre-configured scope.","commands":{"allow":[],"deny":["read_container_file"]}},"deny-rebuild-project-container":{"identifier":"deny-rebuild-project-container","description":"Denies the rebuild_project_container command without any pre-configured scope.","commands":{"allow":[],"deny":["rebuild_project_container"]}},"deny-reconcile-project-statuses":{"identifier":"deny-reconcile-project-statuses","description":"Denies the reconcile_project_statuses command without any pre-configured scope.","commands":{"allow":[],"deny":["reconcile_project_statuses"]}},"deny-regenerate-gateway-auth-token":{"identifier":"deny-regenerate-gateway-auth-token","description":"Denies the regenerate_gateway_auth_token command without any pre-configured scope.","commands":{"allow":[],"deny":["regenerate_gateway_auth_token"]}},"deny-regenerate-web-terminal-token":{"identifier":"deny-regenerate-web-terminal-token","description":"Denies the regenerate_web_terminal_token command without any pre-configured scope.","commands":{"allow":[],"deny":["regenerate_web_terminal_token"]}},"deny-remove-project":{"identifier":"deny-remove-project","description":"Denies the remove_project command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_project"]}},"deny-remove-scheduled-task":{"identifier":"deny-remove-scheduled-task","description":"Denies the remove_scheduled_task command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_scheduled_task"]}},"deny-rename-container-path":{"identifier":"deny-rename-container-path","description":"Denies the rename_container_path command without any pre-configured scope.","commands":{"allow":[],"deny":["rename_container_path"]}},"deny-resume-session-command":{"identifier":"deny-resume-session-command","description":"Denies the resume_session_command command without any pre-configured scope.","commands":{"allow":[],"deny":["resume_session_command"]}},"deny-rollback-migration":{"identifier":"deny-rollback-migration","description":"Denies the rollback_migration command without any pre-configured scope.","commands":{"allow":[],"deny":["rollback_migration"]}},"deny-run-docker-install":{"identifier":"deny-run-docker-install","description":"Denies the run_docker_install command without any pre-configured scope.","commands":{"allow":[],"deny":["run_docker_install"]}},"deny-run-scheduled-task-now":{"identifier":"deny-run-scheduled-task-now","description":"Denies the run_scheduled_task_now command without any pre-configured scope.","commands":{"allow":[],"deny":["run_scheduled_task_now"]}},"deny-save-note":{"identifier":"deny-save-note","description":"Denies the save_note command without any pre-configured scope.","commands":{"allow":[],"deny":["save_note"]}},"deny-send-audio-data":{"identifier":"deny-send-audio-data","description":"Denies the send_audio_data command without any pre-configured scope.","commands":{"allow":[],"deny":["send_audio_data"]}},"deny-set-auth-bridge-enabled":{"identifier":"deny-set-auth-bridge-enabled","description":"Denies the set_auth_bridge_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["set_auth_bridge_enabled"]}},"deny-set-browser-view-enabled":{"identifier":"deny-set-browser-view-enabled","description":"Denies the set_browser_view_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["set_browser_view_enabled"]}},"deny-set-browser-view-match-window":{"identifier":"deny-set-browser-view-match-window","description":"Denies the set_browser_view_match_window command without any pre-configured scope.","commands":{"allow":[],"deny":["set_browser_view_match_window"]}},"deny-set-browser-view-popout-always-on-top":{"identifier":"deny-set-browser-view-popout-always-on-top","description":"Denies the set_browser_view_popout_always_on_top command without any pre-configured scope.","commands":{"allow":[],"deny":["set_browser_view_popout_always_on_top"]}},"deny-set-container-page-viewport":{"identifier":"deny-set-container-page-viewport","description":"Denies the set_container_page_viewport command without any pre-configured scope.","commands":{"allow":[],"deny":["set_container_page_viewport"]}},"deny-set-gateway-api-key":{"identifier":"deny-set-gateway-api-key","description":"Denies the set_gateway_api_key command without any pre-configured scope.","commands":{"allow":[],"deny":["set_gateway_api_key"]}},"deny-set-scheduled-task-enabled":{"identifier":"deny-set-scheduled-task-enabled","description":"Denies the set_scheduled_task_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["set_scheduled_task_enabled"]}},"deny-start-audio-bridge":{"identifier":"deny-start-audio-bridge","description":"Denies the start_audio_bridge command without any pre-configured scope.","commands":{"allow":[],"deny":["start_audio_bridge"]}},"deny-start-gateway":{"identifier":"deny-start-gateway","description":"Denies the start_gateway command without any pre-configured scope.","commands":{"allow":[],"deny":["start_gateway"]}},"deny-start-project-container":{"identifier":"deny-start-project-container","description":"Denies the start_project_container command without any pre-configured scope.","commands":{"allow":[],"deny":["start_project_container"]}},"deny-start-stt":{"identifier":"deny-start-stt","description":"Denies the start_stt command without any pre-configured scope.","commands":{"allow":[],"deny":["start_stt"]}},"deny-start-web-terminal":{"identifier":"deny-start-web-terminal","description":"Denies the start_web_terminal command without any pre-configured scope.","commands":{"allow":[],"deny":["start_web_terminal"]}},"deny-stop-audio-bridge":{"identifier":"deny-stop-audio-bridge","description":"Denies the stop_audio_bridge command without any pre-configured scope.","commands":{"allow":[],"deny":["stop_audio_bridge"]}},"deny-stop-gateway":{"identifier":"deny-stop-gateway","description":"Denies the stop_gateway command without any pre-configured scope.","commands":{"allow":[],"deny":["stop_gateway"]}},"deny-stop-project-container":{"identifier":"deny-stop-project-container","description":"Denies the stop_project_container command without any pre-configured scope.","commands":{"allow":[],"deny":["stop_project_container"]}},"deny-stop-stt":{"identifier":"deny-stop-stt","description":"Denies the stop_stt command without any pre-configured scope.","commands":{"allow":[],"deny":["stop_stt"]}},"deny-stop-web-terminal":{"identifier":"deny-stop-web-terminal","description":"Denies the stop_web_terminal command without any pre-configured scope.","commands":{"allow":[],"deny":["stop_web_terminal"]}},"deny-submit-claude-token-code":{"identifier":"deny-submit-claude-token-code","description":"Denies the submit_claude_token_code command without any pre-configured scope.","commands":{"allow":[],"deny":["submit_claude_token_code"]}},"deny-sweep-claude-token-snapshots":{"identifier":"deny-sweep-claude-token-snapshots","description":"Denies the sweep_claude_token_snapshots command without any pre-configured scope.","commands":{"allow":[],"deny":["sweep_claude_token_snapshots"]}},"deny-terminal-input":{"identifier":"deny-terminal-input","description":"Denies the terminal_input command without any pre-configured scope.","commands":{"allow":[],"deny":["terminal_input"]}},"deny-terminal-resize":{"identifier":"deny-terminal-resize","description":"Denies the terminal_resize command without any pre-configured scope.","commands":{"allow":[],"deny":["terminal_resize"]}},"deny-transcribe-audio":{"identifier":"deny-transcribe-audio","description":"Denies the transcribe_audio command without any pre-configured scope.","commands":{"allow":[],"deny":["transcribe_audio"]}},"deny-update-project":{"identifier":"deny-update-project","description":"Denies the update_project command without any pre-configured scope.","commands":{"allow":[],"deny":["update_project"]}},"deny-update-scheduled-task":{"identifier":"deny-update-scheduled-task","description":"Denies the update_scheduled_task command without any pre-configured scope.","commands":{"allow":[],"deny":["update_scheduled_task"]}},"deny-update-settings":{"identifier":"deny-update-settings","description":"Denies the update_settings command without any pre-configured scope.","commands":{"allow":[],"deny":["update_settings"]}},"deny-upload-files-to-container":{"identifier":"deny-upload-files-to-container","description":"Denies the upload_files_to_container command without any pre-configured scope.","commands":{"allow":[],"deny":["upload_files_to_container"]}},"deny-upload-host-file-to-terminal":{"identifier":"deny-upload-host-file-to-terminal","description":"Denies the upload_host_file_to_terminal command without any pre-configured scope.","commands":{"allow":[],"deny":["upload_host_file_to_terminal"]}},"deny-viewer-choose-file":{"identifier":"deny-viewer-choose-file","description":"Denies the viewer_choose_file command without any pre-configured scope.","commands":{"allow":[],"deny":["viewer_choose_file"]}},"deny-viewer-get-state":{"identifier":"deny-viewer-get-state","description":"Denies the viewer_get_state command without any pre-configured scope.","commands":{"allow":[],"deny":["viewer_get_state"]}},"deny-viewer-poll-file":{"identifier":"deny-viewer-poll-file","description":"Denies the viewer_poll_file command without any pre-configured scope.","commands":{"allow":[],"deny":["viewer_poll_file"]}},"deny-viewer-read-file":{"identifier":"deny-viewer-read-file","description":"Denies the viewer_read_file command without any pre-configured scope.","commands":{"allow":[],"deny":["viewer_read_file"]}},"deny-viewer-write-file":{"identifier":"deny-viewer-write-file","description":"Denies the viewer_write_file command without any pre-configured scope.","commands":{"allow":[],"deny":["viewer_write_file"]}}},"permission_sets":{},"global_scope_schema":null},"core":{"default_permission":{"identifier":"default","description":"Default core plugins set.","permissions":["core:path:default","core:event:default","core:window:default","core:webview:default","core:app:default","core:image:default","core:resources:default","core:menu:default","core:tray:default"]},"permissions":{},"permission_sets":{},"global_scope_schema":null},"core:app":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-version","allow-name","allow-tauri-version","allow-identifier","allow-bundle-type","allow-register-listener","allow-remove-listener","allow-supports-multiple-windows"]},"permissions":{"allow-app-hide":{"identifier":"allow-app-hide","description":"Enables the app_hide command without any pre-configured scope.","commands":{"allow":["app_hide"],"deny":[]}},"allow-app-show":{"identifier":"allow-app-show","description":"Enables the app_show command without any pre-configured scope.","commands":{"allow":["app_show"],"deny":[]}},"allow-bundle-type":{"identifier":"allow-bundle-type","description":"Enables the bundle_type command without any pre-configured scope.","commands":{"allow":["bundle_type"],"deny":[]}},"allow-default-window-icon":{"identifier":"allow-default-window-icon","description":"Enables the default_window_icon command without any pre-configured scope.","commands":{"allow":["default_window_icon"],"deny":[]}},"allow-fetch-data-store-identifiers":{"identifier":"allow-fetch-data-store-identifiers","description":"Enables the fetch_data_store_identifiers command without any pre-configured scope.","commands":{"allow":["fetch_data_store_identifiers"],"deny":[]}},"allow-identifier":{"identifier":"allow-identifier","description":"Enables the identifier command without any pre-configured scope.","commands":{"allow":["identifier"],"deny":[]}},"allow-name":{"identifier":"allow-name","description":"Enables the name command without any pre-configured scope.","commands":{"allow":["name"],"deny":[]}},"allow-register-listener":{"identifier":"allow-register-listener","description":"Enables the register_listener command without any pre-configured scope.","commands":{"allow":["register_listener"],"deny":[]}},"allow-remove-data-store":{"identifier":"allow-remove-data-store","description":"Enables the remove_data_store command without any pre-configured scope.","commands":{"allow":["remove_data_store"],"deny":[]}},"allow-remove-listener":{"identifier":"allow-remove-listener","description":"Enables the remove_listener command without any pre-configured scope.","commands":{"allow":["remove_listener"],"deny":[]}},"allow-set-app-theme":{"identifier":"allow-set-app-theme","description":"Enables the set_app_theme command without any pre-configured scope.","commands":{"allow":["set_app_theme"],"deny":[]}},"allow-set-dock-visibility":{"identifier":"allow-set-dock-visibility","description":"Enables the set_dock_visibility command without any pre-configured scope.","commands":{"allow":["set_dock_visibility"],"deny":[]}},"allow-supports-multiple-windows":{"identifier":"allow-supports-multiple-windows","description":"Enables the supports_multiple_windows command without any pre-configured scope.","commands":{"allow":["supports_multiple_windows"],"deny":[]}},"allow-tauri-version":{"identifier":"allow-tauri-version","description":"Enables the tauri_version command without any pre-configured scope.","commands":{"allow":["tauri_version"],"deny":[]}},"allow-version":{"identifier":"allow-version","description":"Enables the version command without any pre-configured scope.","commands":{"allow":["version"],"deny":[]}},"deny-app-hide":{"identifier":"deny-app-hide","description":"Denies the app_hide command without any pre-configured scope.","commands":{"allow":[],"deny":["app_hide"]}},"deny-app-show":{"identifier":"deny-app-show","description":"Denies the app_show command without any pre-configured scope.","commands":{"allow":[],"deny":["app_show"]}},"deny-bundle-type":{"identifier":"deny-bundle-type","description":"Denies the bundle_type command without any pre-configured scope.","commands":{"allow":[],"deny":["bundle_type"]}},"deny-default-window-icon":{"identifier":"deny-default-window-icon","description":"Denies the default_window_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["default_window_icon"]}},"deny-fetch-data-store-identifiers":{"identifier":"deny-fetch-data-store-identifiers","description":"Denies the fetch_data_store_identifiers command without any pre-configured scope.","commands":{"allow":[],"deny":["fetch_data_store_identifiers"]}},"deny-identifier":{"identifier":"deny-identifier","description":"Denies the identifier command without any pre-configured scope.","commands":{"allow":[],"deny":["identifier"]}},"deny-name":{"identifier":"deny-name","description":"Denies the name command without any pre-configured scope.","commands":{"allow":[],"deny":["name"]}},"deny-register-listener":{"identifier":"deny-register-listener","description":"Denies the register_listener command without any pre-configured scope.","commands":{"allow":[],"deny":["register_listener"]}},"deny-remove-data-store":{"identifier":"deny-remove-data-store","description":"Denies the remove_data_store command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_data_store"]}},"deny-remove-listener":{"identifier":"deny-remove-listener","description":"Denies the remove_listener command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_listener"]}},"deny-set-app-theme":{"identifier":"deny-set-app-theme","description":"Denies the set_app_theme command without any pre-configured scope.","commands":{"allow":[],"deny":["set_app_theme"]}},"deny-set-dock-visibility":{"identifier":"deny-set-dock-visibility","description":"Denies the set_dock_visibility command without any pre-configured scope.","commands":{"allow":[],"deny":["set_dock_visibility"]}},"deny-supports-multiple-windows":{"identifier":"deny-supports-multiple-windows","description":"Denies the supports_multiple_windows command without any pre-configured scope.","commands":{"allow":[],"deny":["supports_multiple_windows"]}},"deny-tauri-version":{"identifier":"deny-tauri-version","description":"Denies the tauri_version command without any pre-configured scope.","commands":{"allow":[],"deny":["tauri_version"]}},"deny-version":{"identifier":"deny-version","description":"Denies the version command without any pre-configured scope.","commands":{"allow":[],"deny":["version"]}}},"permission_sets":{},"global_scope_schema":null},"core:event":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-listen","allow-unlisten","allow-emit","allow-emit-to"]},"permissions":{"allow-emit":{"identifier":"allow-emit","description":"Enables the emit command without any pre-configured scope.","commands":{"allow":["emit"],"deny":[]}},"allow-emit-to":{"identifier":"allow-emit-to","description":"Enables the emit_to command without any pre-configured scope.","commands":{"allow":["emit_to"],"deny":[]}},"allow-listen":{"identifier":"allow-listen","description":"Enables the listen command without any pre-configured scope.","commands":{"allow":["listen"],"deny":[]}},"allow-unlisten":{"identifier":"allow-unlisten","description":"Enables the unlisten command without any pre-configured scope.","commands":{"allow":["unlisten"],"deny":[]}},"deny-emit":{"identifier":"deny-emit","description":"Denies the emit command without any pre-configured scope.","commands":{"allow":[],"deny":["emit"]}},"deny-emit-to":{"identifier":"deny-emit-to","description":"Denies the emit_to command without any pre-configured scope.","commands":{"allow":[],"deny":["emit_to"]}},"deny-listen":{"identifier":"deny-listen","description":"Denies the listen command without any pre-configured scope.","commands":{"allow":[],"deny":["listen"]}},"deny-unlisten":{"identifier":"deny-unlisten","description":"Denies the unlisten command without any pre-configured scope.","commands":{"allow":[],"deny":["unlisten"]}}},"permission_sets":{},"global_scope_schema":null},"core:image":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-new","allow-from-bytes","allow-from-path","allow-rgba","allow-size"]},"permissions":{"allow-from-bytes":{"identifier":"allow-from-bytes","description":"Enables the from_bytes command without any pre-configured scope.","commands":{"allow":["from_bytes"],"deny":[]}},"allow-from-path":{"identifier":"allow-from-path","description":"Enables the from_path command without any pre-configured scope.","commands":{"allow":["from_path"],"deny":[]}},"allow-new":{"identifier":"allow-new","description":"Enables the new command without any pre-configured scope.","commands":{"allow":["new"],"deny":[]}},"allow-rgba":{"identifier":"allow-rgba","description":"Enables the rgba command without any pre-configured scope.","commands":{"allow":["rgba"],"deny":[]}},"allow-size":{"identifier":"allow-size","description":"Enables the size command without any pre-configured scope.","commands":{"allow":["size"],"deny":[]}},"deny-from-bytes":{"identifier":"deny-from-bytes","description":"Denies the from_bytes command without any pre-configured scope.","commands":{"allow":[],"deny":["from_bytes"]}},"deny-from-path":{"identifier":"deny-from-path","description":"Denies the from_path command without any pre-configured scope.","commands":{"allow":[],"deny":["from_path"]}},"deny-new":{"identifier":"deny-new","description":"Denies the new command without any pre-configured scope.","commands":{"allow":[],"deny":["new"]}},"deny-rgba":{"identifier":"deny-rgba","description":"Denies the rgba command without any pre-configured scope.","commands":{"allow":[],"deny":["rgba"]}},"deny-size":{"identifier":"deny-size","description":"Denies the size command without any pre-configured scope.","commands":{"allow":[],"deny":["size"]}}},"permission_sets":{},"global_scope_schema":null},"core:menu":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-new","allow-append","allow-prepend","allow-insert","allow-remove","allow-remove-at","allow-items","allow-get","allow-popup","allow-create-default","allow-set-as-app-menu","allow-set-as-window-menu","allow-text","allow-set-text","allow-is-enabled","allow-set-enabled","allow-set-accelerator","allow-set-as-windows-menu-for-nsapp","allow-set-as-help-menu-for-nsapp","allow-is-checked","allow-set-checked","allow-set-icon"]},"permissions":{"allow-append":{"identifier":"allow-append","description":"Enables the append command without any pre-configured scope.","commands":{"allow":["append"],"deny":[]}},"allow-create-default":{"identifier":"allow-create-default","description":"Enables the create_default command without any pre-configured scope.","commands":{"allow":["create_default"],"deny":[]}},"allow-get":{"identifier":"allow-get","description":"Enables the get command without any pre-configured scope.","commands":{"allow":["get"],"deny":[]}},"allow-insert":{"identifier":"allow-insert","description":"Enables the insert command without any pre-configured scope.","commands":{"allow":["insert"],"deny":[]}},"allow-is-checked":{"identifier":"allow-is-checked","description":"Enables the is_checked command without any pre-configured scope.","commands":{"allow":["is_checked"],"deny":[]}},"allow-is-enabled":{"identifier":"allow-is-enabled","description":"Enables the is_enabled command without any pre-configured scope.","commands":{"allow":["is_enabled"],"deny":[]}},"allow-items":{"identifier":"allow-items","description":"Enables the items command without any pre-configured scope.","commands":{"allow":["items"],"deny":[]}},"allow-new":{"identifier":"allow-new","description":"Enables the new command without any pre-configured scope.","commands":{"allow":["new"],"deny":[]}},"allow-popup":{"identifier":"allow-popup","description":"Enables the popup command without any pre-configured scope.","commands":{"allow":["popup"],"deny":[]}},"allow-prepend":{"identifier":"allow-prepend","description":"Enables the prepend command without any pre-configured scope.","commands":{"allow":["prepend"],"deny":[]}},"allow-remove":{"identifier":"allow-remove","description":"Enables the remove command without any pre-configured scope.","commands":{"allow":["remove"],"deny":[]}},"allow-remove-at":{"identifier":"allow-remove-at","description":"Enables the remove_at command without any pre-configured scope.","commands":{"allow":["remove_at"],"deny":[]}},"allow-set-accelerator":{"identifier":"allow-set-accelerator","description":"Enables the set_accelerator command without any pre-configured scope.","commands":{"allow":["set_accelerator"],"deny":[]}},"allow-set-as-app-menu":{"identifier":"allow-set-as-app-menu","description":"Enables the set_as_app_menu command without any pre-configured scope.","commands":{"allow":["set_as_app_menu"],"deny":[]}},"allow-set-as-help-menu-for-nsapp":{"identifier":"allow-set-as-help-menu-for-nsapp","description":"Enables the set_as_help_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":["set_as_help_menu_for_nsapp"],"deny":[]}},"allow-set-as-window-menu":{"identifier":"allow-set-as-window-menu","description":"Enables the set_as_window_menu command without any pre-configured scope.","commands":{"allow":["set_as_window_menu"],"deny":[]}},"allow-set-as-windows-menu-for-nsapp":{"identifier":"allow-set-as-windows-menu-for-nsapp","description":"Enables the set_as_windows_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":["set_as_windows_menu_for_nsapp"],"deny":[]}},"allow-set-checked":{"identifier":"allow-set-checked","description":"Enables the set_checked command without any pre-configured scope.","commands":{"allow":["set_checked"],"deny":[]}},"allow-set-enabled":{"identifier":"allow-set-enabled","description":"Enables the set_enabled command without any pre-configured scope.","commands":{"allow":["set_enabled"],"deny":[]}},"allow-set-icon":{"identifier":"allow-set-icon","description":"Enables the set_icon command without any pre-configured scope.","commands":{"allow":["set_icon"],"deny":[]}},"allow-set-text":{"identifier":"allow-set-text","description":"Enables the set_text command without any pre-configured scope.","commands":{"allow":["set_text"],"deny":[]}},"allow-text":{"identifier":"allow-text","description":"Enables the text command without any pre-configured scope.","commands":{"allow":["text"],"deny":[]}},"deny-append":{"identifier":"deny-append","description":"Denies the append command without any pre-configured scope.","commands":{"allow":[],"deny":["append"]}},"deny-create-default":{"identifier":"deny-create-default","description":"Denies the create_default command without any pre-configured scope.","commands":{"allow":[],"deny":["create_default"]}},"deny-get":{"identifier":"deny-get","description":"Denies the get command without any pre-configured scope.","commands":{"allow":[],"deny":["get"]}},"deny-insert":{"identifier":"deny-insert","description":"Denies the insert command without any pre-configured scope.","commands":{"allow":[],"deny":["insert"]}},"deny-is-checked":{"identifier":"deny-is-checked","description":"Denies the is_checked command without any pre-configured scope.","commands":{"allow":[],"deny":["is_checked"]}},"deny-is-enabled":{"identifier":"deny-is-enabled","description":"Denies the is_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["is_enabled"]}},"deny-items":{"identifier":"deny-items","description":"Denies the items command without any pre-configured scope.","commands":{"allow":[],"deny":["items"]}},"deny-new":{"identifier":"deny-new","description":"Denies the new command without any pre-configured scope.","commands":{"allow":[],"deny":["new"]}},"deny-popup":{"identifier":"deny-popup","description":"Denies the popup command without any pre-configured scope.","commands":{"allow":[],"deny":["popup"]}},"deny-prepend":{"identifier":"deny-prepend","description":"Denies the prepend command without any pre-configured scope.","commands":{"allow":[],"deny":["prepend"]}},"deny-remove":{"identifier":"deny-remove","description":"Denies the remove command without any pre-configured scope.","commands":{"allow":[],"deny":["remove"]}},"deny-remove-at":{"identifier":"deny-remove-at","description":"Denies the remove_at command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_at"]}},"deny-set-accelerator":{"identifier":"deny-set-accelerator","description":"Denies the set_accelerator command without any pre-configured scope.","commands":{"allow":[],"deny":["set_accelerator"]}},"deny-set-as-app-menu":{"identifier":"deny-set-as-app-menu","description":"Denies the set_as_app_menu command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_app_menu"]}},"deny-set-as-help-menu-for-nsapp":{"identifier":"deny-set-as-help-menu-for-nsapp","description":"Denies the set_as_help_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_help_menu_for_nsapp"]}},"deny-set-as-window-menu":{"identifier":"deny-set-as-window-menu","description":"Denies the set_as_window_menu command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_window_menu"]}},"deny-set-as-windows-menu-for-nsapp":{"identifier":"deny-set-as-windows-menu-for-nsapp","description":"Denies the set_as_windows_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_windows_menu_for_nsapp"]}},"deny-set-checked":{"identifier":"deny-set-checked","description":"Denies the set_checked command without any pre-configured scope.","commands":{"allow":[],"deny":["set_checked"]}},"deny-set-enabled":{"identifier":"deny-set-enabled","description":"Denies the set_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["set_enabled"]}},"deny-set-icon":{"identifier":"deny-set-icon","description":"Denies the set_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon"]}},"deny-set-text":{"identifier":"deny-set-text","description":"Denies the set_text command without any pre-configured scope.","commands":{"allow":[],"deny":["set_text"]}},"deny-text":{"identifier":"deny-text","description":"Denies the text command without any pre-configured scope.","commands":{"allow":[],"deny":["text"]}}},"permission_sets":{},"global_scope_schema":null},"core:path":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-resolve-directory","allow-resolve","allow-normalize","allow-join","allow-dirname","allow-extname","allow-basename","allow-is-absolute"]},"permissions":{"allow-basename":{"identifier":"allow-basename","description":"Enables the basename command without any pre-configured scope.","commands":{"allow":["basename"],"deny":[]}},"allow-dirname":{"identifier":"allow-dirname","description":"Enables the dirname command without any pre-configured scope.","commands":{"allow":["dirname"],"deny":[]}},"allow-extname":{"identifier":"allow-extname","description":"Enables the extname command without any pre-configured scope.","commands":{"allow":["extname"],"deny":[]}},"allow-is-absolute":{"identifier":"allow-is-absolute","description":"Enables the is_absolute command without any pre-configured scope.","commands":{"allow":["is_absolute"],"deny":[]}},"allow-join":{"identifier":"allow-join","description":"Enables the join command without any pre-configured scope.","commands":{"allow":["join"],"deny":[]}},"allow-normalize":{"identifier":"allow-normalize","description":"Enables the normalize command without any pre-configured scope.","commands":{"allow":["normalize"],"deny":[]}},"allow-resolve":{"identifier":"allow-resolve","description":"Enables the resolve command without any pre-configured scope.","commands":{"allow":["resolve"],"deny":[]}},"allow-resolve-directory":{"identifier":"allow-resolve-directory","description":"Enables the resolve_directory command without any pre-configured scope.","commands":{"allow":["resolve_directory"],"deny":[]}},"deny-basename":{"identifier":"deny-basename","description":"Denies the basename command without any pre-configured scope.","commands":{"allow":[],"deny":["basename"]}},"deny-dirname":{"identifier":"deny-dirname","description":"Denies the dirname command without any pre-configured scope.","commands":{"allow":[],"deny":["dirname"]}},"deny-extname":{"identifier":"deny-extname","description":"Denies the extname command without any pre-configured scope.","commands":{"allow":[],"deny":["extname"]}},"deny-is-absolute":{"identifier":"deny-is-absolute","description":"Denies the is_absolute command without any pre-configured scope.","commands":{"allow":[],"deny":["is_absolute"]}},"deny-join":{"identifier":"deny-join","description":"Denies the join command without any pre-configured scope.","commands":{"allow":[],"deny":["join"]}},"deny-normalize":{"identifier":"deny-normalize","description":"Denies the normalize command without any pre-configured scope.","commands":{"allow":[],"deny":["normalize"]}},"deny-resolve":{"identifier":"deny-resolve","description":"Denies the resolve command without any pre-configured scope.","commands":{"allow":[],"deny":["resolve"]}},"deny-resolve-directory":{"identifier":"deny-resolve-directory","description":"Denies the resolve_directory command without any pre-configured scope.","commands":{"allow":[],"deny":["resolve_directory"]}}},"permission_sets":{},"global_scope_schema":null},"core:resources":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-close"]},"permissions":{"allow-close":{"identifier":"allow-close","description":"Enables the close command without any pre-configured scope.","commands":{"allow":["close"],"deny":[]}},"deny-close":{"identifier":"deny-close","description":"Denies the close command without any pre-configured scope.","commands":{"allow":[],"deny":["close"]}}},"permission_sets":{},"global_scope_schema":null},"core:tray":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-new","allow-get-by-id","allow-remove-by-id","allow-set-icon","allow-set-menu","allow-set-tooltip","allow-set-title","allow-set-visible","allow-set-temp-dir-path","allow-set-icon-as-template","allow-set-icon-with-as-template","allow-set-show-menu-on-left-click"]},"permissions":{"allow-get-by-id":{"identifier":"allow-get-by-id","description":"Enables the get_by_id command without any pre-configured scope.","commands":{"allow":["get_by_id"],"deny":[]}},"allow-new":{"identifier":"allow-new","description":"Enables the new command without any pre-configured scope.","commands":{"allow":["new"],"deny":[]}},"allow-remove-by-id":{"identifier":"allow-remove-by-id","description":"Enables the remove_by_id command without any pre-configured scope.","commands":{"allow":["remove_by_id"],"deny":[]}},"allow-set-icon":{"identifier":"allow-set-icon","description":"Enables the set_icon command without any pre-configured scope.","commands":{"allow":["set_icon"],"deny":[]}},"allow-set-icon-as-template":{"identifier":"allow-set-icon-as-template","description":"Enables the set_icon_as_template command without any pre-configured scope.","commands":{"allow":["set_icon_as_template"],"deny":[]}},"allow-set-icon-with-as-template":{"identifier":"allow-set-icon-with-as-template","description":"Enables the set_icon_with_as_template command without any pre-configured scope.","commands":{"allow":["set_icon_with_as_template"],"deny":[]}},"allow-set-menu":{"identifier":"allow-set-menu","description":"Enables the set_menu command without any pre-configured scope.","commands":{"allow":["set_menu"],"deny":[]}},"allow-set-show-menu-on-left-click":{"identifier":"allow-set-show-menu-on-left-click","description":"Enables the set_show_menu_on_left_click command without any pre-configured scope.","commands":{"allow":["set_show_menu_on_left_click"],"deny":[]}},"allow-set-temp-dir-path":{"identifier":"allow-set-temp-dir-path","description":"Enables the set_temp_dir_path command without any pre-configured scope.","commands":{"allow":["set_temp_dir_path"],"deny":[]}},"allow-set-title":{"identifier":"allow-set-title","description":"Enables the set_title command without any pre-configured scope.","commands":{"allow":["set_title"],"deny":[]}},"allow-set-tooltip":{"identifier":"allow-set-tooltip","description":"Enables the set_tooltip command without any pre-configured scope.","commands":{"allow":["set_tooltip"],"deny":[]}},"allow-set-visible":{"identifier":"allow-set-visible","description":"Enables the set_visible command without any pre-configured scope.","commands":{"allow":["set_visible"],"deny":[]}},"deny-get-by-id":{"identifier":"deny-get-by-id","description":"Denies the get_by_id command without any pre-configured scope.","commands":{"allow":[],"deny":["get_by_id"]}},"deny-new":{"identifier":"deny-new","description":"Denies the new command without any pre-configured scope.","commands":{"allow":[],"deny":["new"]}},"deny-remove-by-id":{"identifier":"deny-remove-by-id","description":"Denies the remove_by_id command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_by_id"]}},"deny-set-icon":{"identifier":"deny-set-icon","description":"Denies the set_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon"]}},"deny-set-icon-as-template":{"identifier":"deny-set-icon-as-template","description":"Denies the set_icon_as_template command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon_as_template"]}},"deny-set-icon-with-as-template":{"identifier":"deny-set-icon-with-as-template","description":"Denies the set_icon_with_as_template command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon_with_as_template"]}},"deny-set-menu":{"identifier":"deny-set-menu","description":"Denies the set_menu command without any pre-configured scope.","commands":{"allow":[],"deny":["set_menu"]}},"deny-set-show-menu-on-left-click":{"identifier":"deny-set-show-menu-on-left-click","description":"Denies the set_show_menu_on_left_click command without any pre-configured scope.","commands":{"allow":[],"deny":["set_show_menu_on_left_click"]}},"deny-set-temp-dir-path":{"identifier":"deny-set-temp-dir-path","description":"Denies the set_temp_dir_path command without any pre-configured scope.","commands":{"allow":[],"deny":["set_temp_dir_path"]}},"deny-set-title":{"identifier":"deny-set-title","description":"Denies the set_title command without any pre-configured scope.","commands":{"allow":[],"deny":["set_title"]}},"deny-set-tooltip":{"identifier":"deny-set-tooltip","description":"Denies the set_tooltip command without any pre-configured scope.","commands":{"allow":[],"deny":["set_tooltip"]}},"deny-set-visible":{"identifier":"deny-set-visible","description":"Denies the set_visible command without any pre-configured scope.","commands":{"allow":[],"deny":["set_visible"]}}},"permission_sets":{},"global_scope_schema":null},"core:webview":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-get-all-webviews","allow-webview-position","allow-webview-size","allow-internal-toggle-devtools"]},"permissions":{"allow-clear-all-browsing-data":{"identifier":"allow-clear-all-browsing-data","description":"Enables the clear_all_browsing_data command without any pre-configured scope.","commands":{"allow":["clear_all_browsing_data"],"deny":[]}},"allow-create-webview":{"identifier":"allow-create-webview","description":"Enables the create_webview command without any pre-configured scope.","commands":{"allow":["create_webview"],"deny":[]}},"allow-create-webview-window":{"identifier":"allow-create-webview-window","description":"Enables the create_webview_window command without any pre-configured scope.","commands":{"allow":["create_webview_window"],"deny":[]}},"allow-get-all-webviews":{"identifier":"allow-get-all-webviews","description":"Enables the get_all_webviews command without any pre-configured scope.","commands":{"allow":["get_all_webviews"],"deny":[]}},"allow-internal-toggle-devtools":{"identifier":"allow-internal-toggle-devtools","description":"Enables the internal_toggle_devtools command without any pre-configured scope.","commands":{"allow":["internal_toggle_devtools"],"deny":[]}},"allow-print":{"identifier":"allow-print","description":"Enables the print command without any pre-configured scope.","commands":{"allow":["print"],"deny":[]}},"allow-reparent":{"identifier":"allow-reparent","description":"Enables the reparent command without any pre-configured scope.","commands":{"allow":["reparent"],"deny":[]}},"allow-set-webview-auto-resize":{"identifier":"allow-set-webview-auto-resize","description":"Enables the set_webview_auto_resize command without any pre-configured scope.","commands":{"allow":["set_webview_auto_resize"],"deny":[]}},"allow-set-webview-background-color":{"identifier":"allow-set-webview-background-color","description":"Enables the set_webview_background_color command without any pre-configured scope.","commands":{"allow":["set_webview_background_color"],"deny":[]}},"allow-set-webview-focus":{"identifier":"allow-set-webview-focus","description":"Enables the set_webview_focus command without any pre-configured scope.","commands":{"allow":["set_webview_focus"],"deny":[]}},"allow-set-webview-position":{"identifier":"allow-set-webview-position","description":"Enables the set_webview_position command without any pre-configured scope.","commands":{"allow":["set_webview_position"],"deny":[]}},"allow-set-webview-size":{"identifier":"allow-set-webview-size","description":"Enables the set_webview_size command without any pre-configured scope.","commands":{"allow":["set_webview_size"],"deny":[]}},"allow-set-webview-zoom":{"identifier":"allow-set-webview-zoom","description":"Enables the set_webview_zoom command without any pre-configured scope.","commands":{"allow":["set_webview_zoom"],"deny":[]}},"allow-webview-close":{"identifier":"allow-webview-close","description":"Enables the webview_close command without any pre-configured scope.","commands":{"allow":["webview_close"],"deny":[]}},"allow-webview-hide":{"identifier":"allow-webview-hide","description":"Enables the webview_hide command without any pre-configured scope.","commands":{"allow":["webview_hide"],"deny":[]}},"allow-webview-position":{"identifier":"allow-webview-position","description":"Enables the webview_position command without any pre-configured scope.","commands":{"allow":["webview_position"],"deny":[]}},"allow-webview-show":{"identifier":"allow-webview-show","description":"Enables the webview_show command without any pre-configured scope.","commands":{"allow":["webview_show"],"deny":[]}},"allow-webview-size":{"identifier":"allow-webview-size","description":"Enables the webview_size command without any pre-configured scope.","commands":{"allow":["webview_size"],"deny":[]}},"deny-clear-all-browsing-data":{"identifier":"deny-clear-all-browsing-data","description":"Denies the clear_all_browsing_data command without any pre-configured scope.","commands":{"allow":[],"deny":["clear_all_browsing_data"]}},"deny-create-webview":{"identifier":"deny-create-webview","description":"Denies the create_webview command without any pre-configured scope.","commands":{"allow":[],"deny":["create_webview"]}},"deny-create-webview-window":{"identifier":"deny-create-webview-window","description":"Denies the create_webview_window command without any pre-configured scope.","commands":{"allow":[],"deny":["create_webview_window"]}},"deny-get-all-webviews":{"identifier":"deny-get-all-webviews","description":"Denies the get_all_webviews command without any pre-configured scope.","commands":{"allow":[],"deny":["get_all_webviews"]}},"deny-internal-toggle-devtools":{"identifier":"deny-internal-toggle-devtools","description":"Denies the internal_toggle_devtools command without any pre-configured scope.","commands":{"allow":[],"deny":["internal_toggle_devtools"]}},"deny-print":{"identifier":"deny-print","description":"Denies the print command without any pre-configured scope.","commands":{"allow":[],"deny":["print"]}},"deny-reparent":{"identifier":"deny-reparent","description":"Denies the reparent command without any pre-configured scope.","commands":{"allow":[],"deny":["reparent"]}},"deny-set-webview-auto-resize":{"identifier":"deny-set-webview-auto-resize","description":"Denies the set_webview_auto_resize command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_auto_resize"]}},"deny-set-webview-background-color":{"identifier":"deny-set-webview-background-color","description":"Denies the set_webview_background_color command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_background_color"]}},"deny-set-webview-focus":{"identifier":"deny-set-webview-focus","description":"Denies the set_webview_focus command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_focus"]}},"deny-set-webview-position":{"identifier":"deny-set-webview-position","description":"Denies the set_webview_position command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_position"]}},"deny-set-webview-size":{"identifier":"deny-set-webview-size","description":"Denies the set_webview_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_size"]}},"deny-set-webview-zoom":{"identifier":"deny-set-webview-zoom","description":"Denies the set_webview_zoom command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_zoom"]}},"deny-webview-close":{"identifier":"deny-webview-close","description":"Denies the webview_close command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_close"]}},"deny-webview-hide":{"identifier":"deny-webview-hide","description":"Denies the webview_hide command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_hide"]}},"deny-webview-position":{"identifier":"deny-webview-position","description":"Denies the webview_position command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_position"]}},"deny-webview-show":{"identifier":"deny-webview-show","description":"Denies the webview_show command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_show"]}},"deny-webview-size":{"identifier":"deny-webview-size","description":"Denies the webview_size command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_size"]}}},"permission_sets":{},"global_scope_schema":null},"core:window":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-get-all-windows","allow-scale-factor","allow-inner-position","allow-outer-position","allow-inner-size","allow-outer-size","allow-is-fullscreen","allow-is-minimized","allow-is-maximized","allow-is-focused","allow-is-decorated","allow-is-resizable","allow-is-maximizable","allow-is-minimizable","allow-is-closable","allow-is-visible","allow-is-enabled","allow-title","allow-current-monitor","allow-primary-monitor","allow-monitor-from-point","allow-available-monitors","allow-cursor-position","allow-theme","allow-is-always-on-top","allow-activity-name","allow-scene-identifier","allow-internal-toggle-maximize"]},"permissions":{"allow-activity-name":{"identifier":"allow-activity-name","description":"Enables the activity_name command without any pre-configured scope.","commands":{"allow":["activity_name"],"deny":[]}},"allow-available-monitors":{"identifier":"allow-available-monitors","description":"Enables the available_monitors command without any pre-configured scope.","commands":{"allow":["available_monitors"],"deny":[]}},"allow-center":{"identifier":"allow-center","description":"Enables the center command without any pre-configured scope.","commands":{"allow":["center"],"deny":[]}},"allow-close":{"identifier":"allow-close","description":"Enables the close command without any pre-configured scope.","commands":{"allow":["close"],"deny":[]}},"allow-create":{"identifier":"allow-create","description":"Enables the create command without any pre-configured scope.","commands":{"allow":["create"],"deny":[]}},"allow-current-monitor":{"identifier":"allow-current-monitor","description":"Enables the current_monitor command without any pre-configured scope.","commands":{"allow":["current_monitor"],"deny":[]}},"allow-cursor-position":{"identifier":"allow-cursor-position","description":"Enables the cursor_position command without any pre-configured scope.","commands":{"allow":["cursor_position"],"deny":[]}},"allow-destroy":{"identifier":"allow-destroy","description":"Enables the destroy command without any pre-configured scope.","commands":{"allow":["destroy"],"deny":[]}},"allow-get-all-windows":{"identifier":"allow-get-all-windows","description":"Enables the get_all_windows command without any pre-configured scope.","commands":{"allow":["get_all_windows"],"deny":[]}},"allow-hide":{"identifier":"allow-hide","description":"Enables the hide command without any pre-configured scope.","commands":{"allow":["hide"],"deny":[]}},"allow-inner-position":{"identifier":"allow-inner-position","description":"Enables the inner_position command without any pre-configured scope.","commands":{"allow":["inner_position"],"deny":[]}},"allow-inner-size":{"identifier":"allow-inner-size","description":"Enables the inner_size command without any pre-configured scope.","commands":{"allow":["inner_size"],"deny":[]}},"allow-internal-toggle-maximize":{"identifier":"allow-internal-toggle-maximize","description":"Enables the internal_toggle_maximize command without any pre-configured scope.","commands":{"allow":["internal_toggle_maximize"],"deny":[]}},"allow-is-always-on-top":{"identifier":"allow-is-always-on-top","description":"Enables the is_always_on_top command without any pre-configured scope.","commands":{"allow":["is_always_on_top"],"deny":[]}},"allow-is-closable":{"identifier":"allow-is-closable","description":"Enables the is_closable command without any pre-configured scope.","commands":{"allow":["is_closable"],"deny":[]}},"allow-is-decorated":{"identifier":"allow-is-decorated","description":"Enables the is_decorated command without any pre-configured scope.","commands":{"allow":["is_decorated"],"deny":[]}},"allow-is-enabled":{"identifier":"allow-is-enabled","description":"Enables the is_enabled command without any pre-configured scope.","commands":{"allow":["is_enabled"],"deny":[]}},"allow-is-focused":{"identifier":"allow-is-focused","description":"Enables the is_focused command without any pre-configured scope.","commands":{"allow":["is_focused"],"deny":[]}},"allow-is-fullscreen":{"identifier":"allow-is-fullscreen","description":"Enables the is_fullscreen command without any pre-configured scope.","commands":{"allow":["is_fullscreen"],"deny":[]}},"allow-is-maximizable":{"identifier":"allow-is-maximizable","description":"Enables the is_maximizable command without any pre-configured scope.","commands":{"allow":["is_maximizable"],"deny":[]}},"allow-is-maximized":{"identifier":"allow-is-maximized","description":"Enables the is_maximized command without any pre-configured scope.","commands":{"allow":["is_maximized"],"deny":[]}},"allow-is-minimizable":{"identifier":"allow-is-minimizable","description":"Enables the is_minimizable command without any pre-configured scope.","commands":{"allow":["is_minimizable"],"deny":[]}},"allow-is-minimized":{"identifier":"allow-is-minimized","description":"Enables the is_minimized command without any pre-configured scope.","commands":{"allow":["is_minimized"],"deny":[]}},"allow-is-resizable":{"identifier":"allow-is-resizable","description":"Enables the is_resizable command without any pre-configured scope.","commands":{"allow":["is_resizable"],"deny":[]}},"allow-is-visible":{"identifier":"allow-is-visible","description":"Enables the is_visible command without any pre-configured scope.","commands":{"allow":["is_visible"],"deny":[]}},"allow-maximize":{"identifier":"allow-maximize","description":"Enables the maximize command without any pre-configured scope.","commands":{"allow":["maximize"],"deny":[]}},"allow-minimize":{"identifier":"allow-minimize","description":"Enables the minimize command without any pre-configured scope.","commands":{"allow":["minimize"],"deny":[]}},"allow-monitor-from-point":{"identifier":"allow-monitor-from-point","description":"Enables the monitor_from_point command without any pre-configured scope.","commands":{"allow":["monitor_from_point"],"deny":[]}},"allow-outer-position":{"identifier":"allow-outer-position","description":"Enables the outer_position command without any pre-configured scope.","commands":{"allow":["outer_position"],"deny":[]}},"allow-outer-size":{"identifier":"allow-outer-size","description":"Enables the outer_size command without any pre-configured scope.","commands":{"allow":["outer_size"],"deny":[]}},"allow-primary-monitor":{"identifier":"allow-primary-monitor","description":"Enables the primary_monitor command without any pre-configured scope.","commands":{"allow":["primary_monitor"],"deny":[]}},"allow-request-user-attention":{"identifier":"allow-request-user-attention","description":"Enables the request_user_attention command without any pre-configured scope.","commands":{"allow":["request_user_attention"],"deny":[]}},"allow-scale-factor":{"identifier":"allow-scale-factor","description":"Enables the scale_factor command without any pre-configured scope.","commands":{"allow":["scale_factor"],"deny":[]}},"allow-scene-identifier":{"identifier":"allow-scene-identifier","description":"Enables the scene_identifier command without any pre-configured scope.","commands":{"allow":["scene_identifier"],"deny":[]}},"allow-set-always-on-bottom":{"identifier":"allow-set-always-on-bottom","description":"Enables the set_always_on_bottom command without any pre-configured scope.","commands":{"allow":["set_always_on_bottom"],"deny":[]}},"allow-set-always-on-top":{"identifier":"allow-set-always-on-top","description":"Enables the set_always_on_top command without any pre-configured scope.","commands":{"allow":["set_always_on_top"],"deny":[]}},"allow-set-background-color":{"identifier":"allow-set-background-color","description":"Enables the set_background_color command without any pre-configured scope.","commands":{"allow":["set_background_color"],"deny":[]}},"allow-set-badge-count":{"identifier":"allow-set-badge-count","description":"Enables the set_badge_count command without any pre-configured scope.","commands":{"allow":["set_badge_count"],"deny":[]}},"allow-set-badge-label":{"identifier":"allow-set-badge-label","description":"Enables the set_badge_label command without any pre-configured scope.","commands":{"allow":["set_badge_label"],"deny":[]}},"allow-set-closable":{"identifier":"allow-set-closable","description":"Enables the set_closable command without any pre-configured scope.","commands":{"allow":["set_closable"],"deny":[]}},"allow-set-content-protected":{"identifier":"allow-set-content-protected","description":"Enables the set_content_protected command without any pre-configured scope.","commands":{"allow":["set_content_protected"],"deny":[]}},"allow-set-cursor-grab":{"identifier":"allow-set-cursor-grab","description":"Enables the set_cursor_grab command without any pre-configured scope.","commands":{"allow":["set_cursor_grab"],"deny":[]}},"allow-set-cursor-icon":{"identifier":"allow-set-cursor-icon","description":"Enables the set_cursor_icon command without any pre-configured scope.","commands":{"allow":["set_cursor_icon"],"deny":[]}},"allow-set-cursor-position":{"identifier":"allow-set-cursor-position","description":"Enables the set_cursor_position command without any pre-configured scope.","commands":{"allow":["set_cursor_position"],"deny":[]}},"allow-set-cursor-visible":{"identifier":"allow-set-cursor-visible","description":"Enables the set_cursor_visible command without any pre-configured scope.","commands":{"allow":["set_cursor_visible"],"deny":[]}},"allow-set-decorations":{"identifier":"allow-set-decorations","description":"Enables the set_decorations command without any pre-configured scope.","commands":{"allow":["set_decorations"],"deny":[]}},"allow-set-effects":{"identifier":"allow-set-effects","description":"Enables the set_effects command without any pre-configured scope.","commands":{"allow":["set_effects"],"deny":[]}},"allow-set-enabled":{"identifier":"allow-set-enabled","description":"Enables the set_enabled command without any pre-configured scope.","commands":{"allow":["set_enabled"],"deny":[]}},"allow-set-focus":{"identifier":"allow-set-focus","description":"Enables the set_focus command without any pre-configured scope.","commands":{"allow":["set_focus"],"deny":[]}},"allow-set-focusable":{"identifier":"allow-set-focusable","description":"Enables the set_focusable command without any pre-configured scope.","commands":{"allow":["set_focusable"],"deny":[]}},"allow-set-fullscreen":{"identifier":"allow-set-fullscreen","description":"Enables the set_fullscreen command without any pre-configured scope.","commands":{"allow":["set_fullscreen"],"deny":[]}},"allow-set-icon":{"identifier":"allow-set-icon","description":"Enables the set_icon command without any pre-configured scope.","commands":{"allow":["set_icon"],"deny":[]}},"allow-set-ignore-cursor-events":{"identifier":"allow-set-ignore-cursor-events","description":"Enables the set_ignore_cursor_events command without any pre-configured scope.","commands":{"allow":["set_ignore_cursor_events"],"deny":[]}},"allow-set-max-size":{"identifier":"allow-set-max-size","description":"Enables the set_max_size command without any pre-configured scope.","commands":{"allow":["set_max_size"],"deny":[]}},"allow-set-maximizable":{"identifier":"allow-set-maximizable","description":"Enables the set_maximizable command without any pre-configured scope.","commands":{"allow":["set_maximizable"],"deny":[]}},"allow-set-min-size":{"identifier":"allow-set-min-size","description":"Enables the set_min_size command without any pre-configured scope.","commands":{"allow":["set_min_size"],"deny":[]}},"allow-set-minimizable":{"identifier":"allow-set-minimizable","description":"Enables the set_minimizable command without any pre-configured scope.","commands":{"allow":["set_minimizable"],"deny":[]}},"allow-set-overlay-icon":{"identifier":"allow-set-overlay-icon","description":"Enables the set_overlay_icon command without any pre-configured scope.","commands":{"allow":["set_overlay_icon"],"deny":[]}},"allow-set-position":{"identifier":"allow-set-position","description":"Enables the set_position command without any pre-configured scope.","commands":{"allow":["set_position"],"deny":[]}},"allow-set-progress-bar":{"identifier":"allow-set-progress-bar","description":"Enables the set_progress_bar command without any pre-configured scope.","commands":{"allow":["set_progress_bar"],"deny":[]}},"allow-set-resizable":{"identifier":"allow-set-resizable","description":"Enables the set_resizable command without any pre-configured scope.","commands":{"allow":["set_resizable"],"deny":[]}},"allow-set-shadow":{"identifier":"allow-set-shadow","description":"Enables the set_shadow command without any pre-configured scope.","commands":{"allow":["set_shadow"],"deny":[]}},"allow-set-simple-fullscreen":{"identifier":"allow-set-simple-fullscreen","description":"Enables the set_simple_fullscreen command without any pre-configured scope.","commands":{"allow":["set_simple_fullscreen"],"deny":[]}},"allow-set-size":{"identifier":"allow-set-size","description":"Enables the set_size command without any pre-configured scope.","commands":{"allow":["set_size"],"deny":[]}},"allow-set-size-constraints":{"identifier":"allow-set-size-constraints","description":"Enables the set_size_constraints command without any pre-configured scope.","commands":{"allow":["set_size_constraints"],"deny":[]}},"allow-set-skip-taskbar":{"identifier":"allow-set-skip-taskbar","description":"Enables the set_skip_taskbar command without any pre-configured scope.","commands":{"allow":["set_skip_taskbar"],"deny":[]}},"allow-set-theme":{"identifier":"allow-set-theme","description":"Enables the set_theme command without any pre-configured scope.","commands":{"allow":["set_theme"],"deny":[]}},"allow-set-title":{"identifier":"allow-set-title","description":"Enables the set_title command without any pre-configured scope.","commands":{"allow":["set_title"],"deny":[]}},"allow-set-title-bar-style":{"identifier":"allow-set-title-bar-style","description":"Enables the set_title_bar_style command without any pre-configured scope.","commands":{"allow":["set_title_bar_style"],"deny":[]}},"allow-set-visible-on-all-workspaces":{"identifier":"allow-set-visible-on-all-workspaces","description":"Enables the set_visible_on_all_workspaces command without any pre-configured scope.","commands":{"allow":["set_visible_on_all_workspaces"],"deny":[]}},"allow-show":{"identifier":"allow-show","description":"Enables the show command without any pre-configured scope.","commands":{"allow":["show"],"deny":[]}},"allow-start-dragging":{"identifier":"allow-start-dragging","description":"Enables the start_dragging command without any pre-configured scope.","commands":{"allow":["start_dragging"],"deny":[]}},"allow-start-resize-dragging":{"identifier":"allow-start-resize-dragging","description":"Enables the start_resize_dragging command without any pre-configured scope.","commands":{"allow":["start_resize_dragging"],"deny":[]}},"allow-theme":{"identifier":"allow-theme","description":"Enables the theme command without any pre-configured scope.","commands":{"allow":["theme"],"deny":[]}},"allow-title":{"identifier":"allow-title","description":"Enables the title command without any pre-configured scope.","commands":{"allow":["title"],"deny":[]}},"allow-toggle-maximize":{"identifier":"allow-toggle-maximize","description":"Enables the toggle_maximize command without any pre-configured scope.","commands":{"allow":["toggle_maximize"],"deny":[]}},"allow-unmaximize":{"identifier":"allow-unmaximize","description":"Enables the unmaximize command without any pre-configured scope.","commands":{"allow":["unmaximize"],"deny":[]}},"allow-unminimize":{"identifier":"allow-unminimize","description":"Enables the unminimize command without any pre-configured scope.","commands":{"allow":["unminimize"],"deny":[]}},"deny-activity-name":{"identifier":"deny-activity-name","description":"Denies the activity_name command without any pre-configured scope.","commands":{"allow":[],"deny":["activity_name"]}},"deny-available-monitors":{"identifier":"deny-available-monitors","description":"Denies the available_monitors command without any pre-configured scope.","commands":{"allow":[],"deny":["available_monitors"]}},"deny-center":{"identifier":"deny-center","description":"Denies the center command without any pre-configured scope.","commands":{"allow":[],"deny":["center"]}},"deny-close":{"identifier":"deny-close","description":"Denies the close command without any pre-configured scope.","commands":{"allow":[],"deny":["close"]}},"deny-create":{"identifier":"deny-create","description":"Denies the create command without any pre-configured scope.","commands":{"allow":[],"deny":["create"]}},"deny-current-monitor":{"identifier":"deny-current-monitor","description":"Denies the current_monitor command without any pre-configured scope.","commands":{"allow":[],"deny":["current_monitor"]}},"deny-cursor-position":{"identifier":"deny-cursor-position","description":"Denies the cursor_position command without any pre-configured scope.","commands":{"allow":[],"deny":["cursor_position"]}},"deny-destroy":{"identifier":"deny-destroy","description":"Denies the destroy command without any pre-configured scope.","commands":{"allow":[],"deny":["destroy"]}},"deny-get-all-windows":{"identifier":"deny-get-all-windows","description":"Denies the get_all_windows command without any pre-configured scope.","commands":{"allow":[],"deny":["get_all_windows"]}},"deny-hide":{"identifier":"deny-hide","description":"Denies the hide command without any pre-configured scope.","commands":{"allow":[],"deny":["hide"]}},"deny-inner-position":{"identifier":"deny-inner-position","description":"Denies the inner_position command without any pre-configured scope.","commands":{"allow":[],"deny":["inner_position"]}},"deny-inner-size":{"identifier":"deny-inner-size","description":"Denies the inner_size command without any pre-configured scope.","commands":{"allow":[],"deny":["inner_size"]}},"deny-internal-toggle-maximize":{"identifier":"deny-internal-toggle-maximize","description":"Denies the internal_toggle_maximize command without any pre-configured scope.","commands":{"allow":[],"deny":["internal_toggle_maximize"]}},"deny-is-always-on-top":{"identifier":"deny-is-always-on-top","description":"Denies the is_always_on_top command without any pre-configured scope.","commands":{"allow":[],"deny":["is_always_on_top"]}},"deny-is-closable":{"identifier":"deny-is-closable","description":"Denies the is_closable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_closable"]}},"deny-is-decorated":{"identifier":"deny-is-decorated","description":"Denies the is_decorated command without any pre-configured scope.","commands":{"allow":[],"deny":["is_decorated"]}},"deny-is-enabled":{"identifier":"deny-is-enabled","description":"Denies the is_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["is_enabled"]}},"deny-is-focused":{"identifier":"deny-is-focused","description":"Denies the is_focused command without any pre-configured scope.","commands":{"allow":[],"deny":["is_focused"]}},"deny-is-fullscreen":{"identifier":"deny-is-fullscreen","description":"Denies the is_fullscreen command without any pre-configured scope.","commands":{"allow":[],"deny":["is_fullscreen"]}},"deny-is-maximizable":{"identifier":"deny-is-maximizable","description":"Denies the is_maximizable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_maximizable"]}},"deny-is-maximized":{"identifier":"deny-is-maximized","description":"Denies the is_maximized command without any pre-configured scope.","commands":{"allow":[],"deny":["is_maximized"]}},"deny-is-minimizable":{"identifier":"deny-is-minimizable","description":"Denies the is_minimizable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_minimizable"]}},"deny-is-minimized":{"identifier":"deny-is-minimized","description":"Denies the is_minimized command without any pre-configured scope.","commands":{"allow":[],"deny":["is_minimized"]}},"deny-is-resizable":{"identifier":"deny-is-resizable","description":"Denies the is_resizable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_resizable"]}},"deny-is-visible":{"identifier":"deny-is-visible","description":"Denies the is_visible command without any pre-configured scope.","commands":{"allow":[],"deny":["is_visible"]}},"deny-maximize":{"identifier":"deny-maximize","description":"Denies the maximize command without any pre-configured scope.","commands":{"allow":[],"deny":["maximize"]}},"deny-minimize":{"identifier":"deny-minimize","description":"Denies the minimize command without any pre-configured scope.","commands":{"allow":[],"deny":["minimize"]}},"deny-monitor-from-point":{"identifier":"deny-monitor-from-point","description":"Denies the monitor_from_point command without any pre-configured scope.","commands":{"allow":[],"deny":["monitor_from_point"]}},"deny-outer-position":{"identifier":"deny-outer-position","description":"Denies the outer_position command without any pre-configured scope.","commands":{"allow":[],"deny":["outer_position"]}},"deny-outer-size":{"identifier":"deny-outer-size","description":"Denies the outer_size command without any pre-configured scope.","commands":{"allow":[],"deny":["outer_size"]}},"deny-primary-monitor":{"identifier":"deny-primary-monitor","description":"Denies the primary_monitor command without any pre-configured scope.","commands":{"allow":[],"deny":["primary_monitor"]}},"deny-request-user-attention":{"identifier":"deny-request-user-attention","description":"Denies the request_user_attention command without any pre-configured scope.","commands":{"allow":[],"deny":["request_user_attention"]}},"deny-scale-factor":{"identifier":"deny-scale-factor","description":"Denies the scale_factor command without any pre-configured scope.","commands":{"allow":[],"deny":["scale_factor"]}},"deny-scene-identifier":{"identifier":"deny-scene-identifier","description":"Denies the scene_identifier command without any pre-configured scope.","commands":{"allow":[],"deny":["scene_identifier"]}},"deny-set-always-on-bottom":{"identifier":"deny-set-always-on-bottom","description":"Denies the set_always_on_bottom command without any pre-configured scope.","commands":{"allow":[],"deny":["set_always_on_bottom"]}},"deny-set-always-on-top":{"identifier":"deny-set-always-on-top","description":"Denies the set_always_on_top command without any pre-configured scope.","commands":{"allow":[],"deny":["set_always_on_top"]}},"deny-set-background-color":{"identifier":"deny-set-background-color","description":"Denies the set_background_color command without any pre-configured scope.","commands":{"allow":[],"deny":["set_background_color"]}},"deny-set-badge-count":{"identifier":"deny-set-badge-count","description":"Denies the set_badge_count command without any pre-configured scope.","commands":{"allow":[],"deny":["set_badge_count"]}},"deny-set-badge-label":{"identifier":"deny-set-badge-label","description":"Denies the set_badge_label command without any pre-configured scope.","commands":{"allow":[],"deny":["set_badge_label"]}},"deny-set-closable":{"identifier":"deny-set-closable","description":"Denies the set_closable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_closable"]}},"deny-set-content-protected":{"identifier":"deny-set-content-protected","description":"Denies the set_content_protected command without any pre-configured scope.","commands":{"allow":[],"deny":["set_content_protected"]}},"deny-set-cursor-grab":{"identifier":"deny-set-cursor-grab","description":"Denies the set_cursor_grab command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_grab"]}},"deny-set-cursor-icon":{"identifier":"deny-set-cursor-icon","description":"Denies the set_cursor_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_icon"]}},"deny-set-cursor-position":{"identifier":"deny-set-cursor-position","description":"Denies the set_cursor_position command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_position"]}},"deny-set-cursor-visible":{"identifier":"deny-set-cursor-visible","description":"Denies the set_cursor_visible command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_visible"]}},"deny-set-decorations":{"identifier":"deny-set-decorations","description":"Denies the set_decorations command without any pre-configured scope.","commands":{"allow":[],"deny":["set_decorations"]}},"deny-set-effects":{"identifier":"deny-set-effects","description":"Denies the set_effects command without any pre-configured scope.","commands":{"allow":[],"deny":["set_effects"]}},"deny-set-enabled":{"identifier":"deny-set-enabled","description":"Denies the set_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["set_enabled"]}},"deny-set-focus":{"identifier":"deny-set-focus","description":"Denies the set_focus command without any pre-configured scope.","commands":{"allow":[],"deny":["set_focus"]}},"deny-set-focusable":{"identifier":"deny-set-focusable","description":"Denies the set_focusable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_focusable"]}},"deny-set-fullscreen":{"identifier":"deny-set-fullscreen","description":"Denies the set_fullscreen command without any pre-configured scope.","commands":{"allow":[],"deny":["set_fullscreen"]}},"deny-set-icon":{"identifier":"deny-set-icon","description":"Denies the set_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon"]}},"deny-set-ignore-cursor-events":{"identifier":"deny-set-ignore-cursor-events","description":"Denies the set_ignore_cursor_events command without any pre-configured scope.","commands":{"allow":[],"deny":["set_ignore_cursor_events"]}},"deny-set-max-size":{"identifier":"deny-set-max-size","description":"Denies the set_max_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_max_size"]}},"deny-set-maximizable":{"identifier":"deny-set-maximizable","description":"Denies the set_maximizable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_maximizable"]}},"deny-set-min-size":{"identifier":"deny-set-min-size","description":"Denies the set_min_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_min_size"]}},"deny-set-minimizable":{"identifier":"deny-set-minimizable","description":"Denies the set_minimizable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_minimizable"]}},"deny-set-overlay-icon":{"identifier":"deny-set-overlay-icon","description":"Denies the set_overlay_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_overlay_icon"]}},"deny-set-position":{"identifier":"deny-set-position","description":"Denies the set_position command without any pre-configured scope.","commands":{"allow":[],"deny":["set_position"]}},"deny-set-progress-bar":{"identifier":"deny-set-progress-bar","description":"Denies the set_progress_bar command without any pre-configured scope.","commands":{"allow":[],"deny":["set_progress_bar"]}},"deny-set-resizable":{"identifier":"deny-set-resizable","description":"Denies the set_resizable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_resizable"]}},"deny-set-shadow":{"identifier":"deny-set-shadow","description":"Denies the set_shadow command without any pre-configured scope.","commands":{"allow":[],"deny":["set_shadow"]}},"deny-set-simple-fullscreen":{"identifier":"deny-set-simple-fullscreen","description":"Denies the set_simple_fullscreen command without any pre-configured scope.","commands":{"allow":[],"deny":["set_simple_fullscreen"]}},"deny-set-size":{"identifier":"deny-set-size","description":"Denies the set_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_size"]}},"deny-set-size-constraints":{"identifier":"deny-set-size-constraints","description":"Denies the set_size_constraints command without any pre-configured scope.","commands":{"allow":[],"deny":["set_size_constraints"]}},"deny-set-skip-taskbar":{"identifier":"deny-set-skip-taskbar","description":"Denies the set_skip_taskbar command without any pre-configured scope.","commands":{"allow":[],"deny":["set_skip_taskbar"]}},"deny-set-theme":{"identifier":"deny-set-theme","description":"Denies the set_theme command without any pre-configured scope.","commands":{"allow":[],"deny":["set_theme"]}},"deny-set-title":{"identifier":"deny-set-title","description":"Denies the set_title command without any pre-configured scope.","commands":{"allow":[],"deny":["set_title"]}},"deny-set-title-bar-style":{"identifier":"deny-set-title-bar-style","description":"Denies the set_title_bar_style command without any pre-configured scope.","commands":{"allow":[],"deny":["set_title_bar_style"]}},"deny-set-visible-on-all-workspaces":{"identifier":"deny-set-visible-on-all-workspaces","description":"Denies the set_visible_on_all_workspaces command without any pre-configured scope.","commands":{"allow":[],"deny":["set_visible_on_all_workspaces"]}},"deny-show":{"identifier":"deny-show","description":"Denies the show command without any pre-configured scope.","commands":{"allow":[],"deny":["show"]}},"deny-start-dragging":{"identifier":"deny-start-dragging","description":"Denies the start_dragging command without any pre-configured scope.","commands":{"allow":[],"deny":["start_dragging"]}},"deny-start-resize-dragging":{"identifier":"deny-start-resize-dragging","description":"Denies the start_resize_dragging command without any pre-configured scope.","commands":{"allow":[],"deny":["start_resize_dragging"]}},"deny-theme":{"identifier":"deny-theme","description":"Denies the theme command without any pre-configured scope.","commands":{"allow":[],"deny":["theme"]}},"deny-title":{"identifier":"deny-title","description":"Denies the title command without any pre-configured scope.","commands":{"allow":[],"deny":["title"]}},"deny-toggle-maximize":{"identifier":"deny-toggle-maximize","description":"Denies the toggle_maximize command without any pre-configured scope.","commands":{"allow":[],"deny":["toggle_maximize"]}},"deny-unmaximize":{"identifier":"deny-unmaximize","description":"Denies the unmaximize command without any pre-configured scope.","commands":{"allow":[],"deny":["unmaximize"]}},"deny-unminimize":{"identifier":"deny-unminimize","description":"Denies the unminimize command without any pre-configured scope.","commands":{"allow":[],"deny":["unminimize"]}}},"permission_sets":{},"global_scope_schema":null},"dialog":{"default_permission":{"identifier":"default","description":"This permission set configures the types of dialogs\navailable from the dialog plugin.\n\n#### Granted Permissions\n\nAll dialog types are enabled.\n\n\n","permissions":["allow-message","allow-save","allow-open"]},"permissions":{"allow-ask":{"identifier":"allow-ask","description":"Enables the ask command without any pre-configured scope. (**DEPRECATED**: This is now an alias to `allow-message` and will be removed in v3)","commands":{"allow":["message"],"deny":[]}},"allow-confirm":{"identifier":"allow-confirm","description":"Enables the confirm command without any pre-configured scope. (**DEPRECATED**: This is now an alias to `allow-message` and will be removed in v3)","commands":{"allow":["message"],"deny":[]}},"allow-message":{"identifier":"allow-message","description":"Enables the message command without any pre-configured scope.","commands":{"allow":["message"],"deny":[]}},"allow-open":{"identifier":"allow-open","description":"Enables the open command without any pre-configured scope.","commands":{"allow":["open"],"deny":[]}},"allow-save":{"identifier":"allow-save","description":"Enables the save command without any pre-configured scope.","commands":{"allow":["save"],"deny":[]}},"deny-ask":{"identifier":"deny-ask","description":"Denies the ask command without any pre-configured scope. (**DEPRECATED**: This is now an alias to `deny-message` and will be removed in v3)","commands":{"allow":[],"deny":["message"]}},"deny-confirm":{"identifier":"deny-confirm","description":"Denies the confirm command without any pre-configured scope. (**DEPRECATED**: This is now an alias to `deny-message` and will be removed in v3)","commands":{"allow":[],"deny":["message"]}},"deny-message":{"identifier":"deny-message","description":"Denies the message command without any pre-configured scope.","commands":{"allow":[],"deny":["message"]}},"deny-open":{"identifier":"deny-open","description":"Denies the open command without any pre-configured scope.","commands":{"allow":[],"deny":["open"]}},"deny-save":{"identifier":"deny-save","description":"Denies the save command without any pre-configured scope.","commands":{"allow":[],"deny":["save"]}}},"permission_sets":{},"global_scope_schema":null},"opener":{"default_permission":{"identifier":"default","description":"This permission set allows opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application\nas well as reveal file in directories using default file explorer","permissions":["allow-open-url","allow-reveal-item-in-dir","allow-default-urls"]},"permissions":{"allow-default-urls":{"identifier":"allow-default-urls","description":"This enables opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"url":"mailto:*"},{"url":"tel:*"},{"url":"http://*"},{"url":"https://*"}]}},"allow-open-path":{"identifier":"allow-open-path","description":"Enables the open_path command without any pre-configured scope.","commands":{"allow":["open_path"],"deny":[]}},"allow-open-url":{"identifier":"allow-open-url","description":"Enables the open_url command without any pre-configured scope.","commands":{"allow":["open_url"],"deny":[]}},"allow-reveal-item-in-dir":{"identifier":"allow-reveal-item-in-dir","description":"Enables the reveal_item_in_dir command without any pre-configured scope.","commands":{"allow":["reveal_item_in_dir"],"deny":[]}},"deny-open-path":{"identifier":"deny-open-path","description":"Denies the open_path command without any pre-configured scope.","commands":{"allow":[],"deny":["open_path"]}},"deny-open-url":{"identifier":"deny-open-url","description":"Denies the open_url command without any pre-configured scope.","commands":{"allow":[],"deny":["open_url"]}},"deny-reveal-item-in-dir":{"identifier":"deny-reveal-item-in-dir","description":"Denies the reveal_item_in_dir command without any pre-configured scope.","commands":{"allow":[],"deny":["reveal_item_in_dir"]}}},"permission_sets":{},"global_scope_schema":{"$schema":"http://json-schema.org/draft-07/schema#","anyOf":[{"properties":{"app":{"allOf":[{"$ref":"#/definitions/Application"}],"description":"An application to open this url with, for example: firefox."},"url":{"description":"A URL that can be opened by the webview when using the Opener APIs.\n\nWildcards can be used following the UNIX glob pattern.\n\nExamples:\n\n- \"https://*\" : allows all HTTPS origin\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"","type":"string"}},"required":["url"],"type":"object"},{"properties":{"app":{"allOf":[{"$ref":"#/definitions/Application"}],"description":"An application to open this path with, for example: xdg-open."},"path":{"description":"A path that can be opened by the webview when using the Opener APIs.\n\nThe pattern can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$APP`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.","type":"string"}},"required":["path"],"type":"object"}],"definitions":{"Application":{"anyOf":[{"description":"Open in default application.","type":"null"},{"description":"If true, allow open with any application.","type":"boolean"},{"description":"Allow specific application to open with.","type":"string"}],"description":"Opener scope application."}},"description":"Opener scope entry.","title":"OpenerScopeEntry"}}} \ No newline at end of file diff --git a/app/src-tauri/gen/schemas/capabilities.json b/app/src-tauri/gen/schemas/capabilities.json index ae67ba0..e1f8254 100644 --- a/app/src-tauri/gen/schemas/capabilities.json +++ b/app/src-tauri/gen/schemas/capabilities.json @@ -1 +1 @@ -{"default":{"identifier":"default","description":"Default capabilities for Triple-C. Every entry here is an IPC command a compromised webview can call directly, so the set is an enumeration of what `app/src` actually invokes — verified against tauri 2.11.0's `PLUGINS` table in `build.rs`, not assumed from a plugin's `default` set. `core:default` in particular is NOT used: it is an alias for `core:{path,event,window,webview,app,image,resources,menu,tray}:default`, and `core:image:default` carries `allow-from-path`, whose handler (`tauri-2.11.0/src/image/plugin.rs:41` → `src/image/mod.rs:96`) is a bare `std::fs::read(path)` with no scope mechanism of any kind. Nothing imports `@tauri-apps/api/image`, so the whole plugin is dropped rather than scoped — there is nothing to scope it with. `core:menu` and `core:tray` are dropped for the same reason (no menu, no tray icon); `core:window` and `core:path` because nothing imports them; `core:resources:allow-close` because no frontend value is a `Resource`; and `core:event`'s `allow-emit`/`allow-emit-to` because the frontend only ever *listens* — every emit in this app originates in Rust. Three notes on what is deliberately kept or accepted: (1) `core:webview:allow-internal-toggle-devtools` is not called by `app/src` at all — it is called by Tauri's own injected `toggle-devtools.js`, which binds Ctrl/Cmd+Shift+I. Both that script and the command behind it are `#[cfg(any(debug_assertions, feature = \"devtools\"))]`, so this grant is a `tauri dev` convenience that does not exist in a release bundle. (2) `opener:allow-open-url` is **gone**. It could not be narrowed by host — `TerminalView`'s `WebLinksAddon` opens links Claude printed inside the container, which are arbitrary by construction, so a host allowlist would have deleted the feature rather than bounded it — and it was carried here as an accepted residual risk: a compromised webview could make the OS open an attacker-chosen http(s) URL, an outbound channel. That risk is now closed rather than recorded. Every host-browser open in the app goes through the `open_url_external` command in `url_open.rs`, which exists because the AppImage environment leaks into a cold-launched browser on Linux (triple-c#34) and which re-validates the URL in Rust — scheme allowlist, no embedded credentials, no control characters, length cap, ASCII asserted before `execvp`. On macOS and Windows that command reaches the same plugin as before, via `OpenerExt::open_url`, whose desktop implementation calls `crate::open::open` directly and is therefore not gated by this file at all (`tauri-plugin-opener-2.5.3/src/lib.rs:60`). The plugin stays a dependency for exactly that reason; what is removed is the webview's ability to reach it without passing the Rust validation. (3) `drag:allow-start-drag` is **gone**, together with the OS drag-out it existed for. It could not be scoped — `tauri-plugin-drag` takes the item paths from the caller and has no scope mechanism, so a compromised webview could call `startDrag({ item: ['~/.ssh/id_rsa'] })` against any host path the user can read — and it was carried as an accepted residual risk for one gesture. Drag-out was held back for separate hardening (see branch `hold/disk-and-dragout`) and the plugin is no longer a dependency. Getting a file *out* of a container is either \"Back up container\" on the project's Overview tab, which archives a tree through the Docker API, or the Files tab's per-row \"Save to host…\", which copies one file; getting one *in* is a drop on the Terminal or the Files tab's \"Upload…\". None of the four touches this permission. The Files tab's two are worth separating out here, because they are the only host-path commands in the app whose dialog is opened by **Rust** rather than by the webview — `pick_save_path` and `pick_files_to_upload` in `commands/file_commands.rs` drive `tauri-plugin-dialog` from the backend, so a compromised webview can ask for a picker and nothing more: it cannot name a host path as an *input* to either command. Be precise about the limit of that claim — host paths do still travel outward in error text (`Failed to create /home/j/Documents/x.txt.triple-c-part-1a2b3c4d: Permission denied`), including canonicalized ones, which disclose symlink targets. That is accepted; the app already hands the webview the project paths. What is closed is the direction that mattered — the webview naming where bytes go. That is the shape an earlier revision of this file named as the honest one if the Files tab ever regained host I/O, and it is the shape it regained it in. The `dialog:allow-open` / `dialog:allow-save` grants below are therefore *not* what those two use; they remain for the frontend pickers in Add Project, the Config tab's workspace and access sections, the CA-certificate field and Backup. Two commands still take a host path over IPC as a string — the terminal drop and `download_container_backup` — and for those `validate_host_path` is the boundary rather than defence in depth. This file is the reviewed threat model of record, so keep this census accurate: a stale reference here is worse than none. Note that dragging files *into* the app is unaffected: `dragDropEnabled` and `onDragDropEvent` are core webview behaviour and need no grant. Historical note kept because it is easy to re-introduce: the `store:*` grants were removed — nothing in `app/src` uses `@tauri-apps/plugin-store`, and the plugin's `resolve_store_path` is a `PathBuf::push` against AppData, which `push` discards outright when handed an absolute path, so the grant was an arbitrary host-file read/write primitive (`plugin:store|load` + `set` + `save` on `~/.claude/settings.json` is host code execution). A second capability file, `file-viewer.json`, covers the `file-viewer-*` windows the terminal file viewer opens on `viewer.html`; it is the only other local-origin window, its grants are listed and justified there, and its one non-obvious grant (`core:window:allow-destroy`) exists because `onCloseRequested` cannot close a window without it. App commands stay ungated by capability in both files — a compromised viewer window can invoke any app command exactly as a compromised main window can, since `generate_handler!` registers every command for every window and this file's `windows` scoping only ever applied to plugin permissions. That is an accepted residual risk, not an oversight: the viewer's app commands are gated by label instead, inside `commands/file_viewer_commands.rs` itself, and the general fix — restricting *app* commands per window at the `build.rs` level — is the pending AppManifest lockdown (`docs/superpowers/specs/2026-09-22-app-manifest-lockdown-design.md`), not yet built. On the CSP side: `app.security.csp` in `tauri.conf.json` covers the shipped bundle, and there is deliberately no `devCsp`. `npm run tauri dev` loads the main document straight from Vite at `build.devUrl` (`http://localhost:1420`), and Tauri only attaches a CSP to documents it serves itself — `protocol/tauri.rs:217` sets the header on `tauri://` assets, and the dev server is proxied through that protocol only when `PROXY_DEV_SERVER`, which is `cfg!(all(dev, mobile))` and therefore false for every desktop build. A `devCsp` here would be inert config that reads as protection, which is worse than its absence. If a CSP in dev is wanted, the only place that can set one is the Vite dev server's own `server.headers` in `app/vite.config.ts`; it is not set today, and dev is not the shipped configuration.","local":true,"windows":["main"],"permissions":["core:event:allow-listen","core:event:allow-unlisten","core:webview:allow-internal-toggle-devtools","dialog:allow-open","dialog:allow-save"]},"file-viewer":{"identifier":"file-viewer","description":"The terminal file viewer windows (`file-viewer-`, opened by `open_file_viewer` on the app's own `viewer.html`). Same rules as `default.json`: app commands need no entry here and are gated by label inside `commands/file_viewer_commands.rs`; this file is the plugin-command surface a compromised viewer webview could reach, and it is the smallest one that lets the window work. `core:event:allow-listen`/`allow-unlisten` are for `file-viewer-goto` (Rust → this window; the viewer subscribes through `getCurrentWindow().listen`, because a bare `listen()` in *any* window receives an `emit_to`). `core:window:allow-destroy` is not optional: `getCurrentWindow().onCloseRequested` in @tauri-apps/api 2.11 makes Rust `prevent_close()` whenever a JS listener exists and then calls `destroy()` itself, so without this grant the window's X button does nothing once the unsaved-changes guard is installed. `allow-close` is deliberately absent — nothing calls it, and `destroy` is the only exit. No `set-title`/`set-focus`/`unminimize`: those are done from Rust when a second click targets an already-open file. `core:webview:allow-internal-toggle-devtools` is the same dev-only convenience `default.json` carries.","local":true,"windows":["file-viewer-*"],"permissions":["core:event:allow-listen","core:event:allow-unlisten","core:window:allow-destroy","core:webview:allow-internal-toggle-devtools"]}} \ No newline at end of file +{"default":{"identifier":"default","description":"Default capabilities for Triple-C. Every entry here is an IPC command a compromised webview can call directly, so the set is an enumeration of what `app/src` actually invokes — verified against tauri 2.11.0's `PLUGINS` table in `build.rs`, not assumed from a plugin's `default` set. `core:default` in particular is NOT used: it is an alias for `core:{path,event,window,webview,app,image,resources,menu,tray}:default`, and `core:image:default` carries `allow-from-path`, whose handler (`tauri-2.11.0/src/image/plugin.rs:41` → `src/image/mod.rs:96`) is a bare `std::fs::read(path)` with no scope mechanism of any kind. Nothing imports `@tauri-apps/api/image`, so the whole plugin is dropped rather than scoped — there is nothing to scope it with. `core:menu` and `core:tray` are dropped for the same reason (no menu, no tray icon); `core:window` and `core:path` because nothing imports them; `core:resources:allow-close` because no frontend value is a `Resource`; and `core:event`'s `allow-emit`/`allow-emit-to` because the frontend only ever *listens* — every emit in this app originates in Rust. Three notes on what is deliberately kept or accepted: (1) `core:webview:allow-internal-toggle-devtools` is not called by `app/src` at all — it is called by Tauri's own injected `toggle-devtools.js`, which binds Ctrl/Cmd+Shift+I. Both that script and the command behind it are `#[cfg(any(debug_assertions, feature = \"devtools\"))]`, so this grant is a `tauri dev` convenience that does not exist in a release bundle. (2) `opener:allow-open-url` is **gone**. It could not be narrowed by host — `TerminalView`'s `WebLinksAddon` opens links Claude printed inside the container, which are arbitrary by construction, so a host allowlist would have deleted the feature rather than bounded it — and it was carried here as an accepted residual risk: a compromised webview could make the OS open an attacker-chosen http(s) URL, an outbound channel. That risk is now closed rather than recorded. Every host-browser open in the app goes through the `open_url_external` command in `url_open.rs`, which exists because the AppImage environment leaks into a cold-launched browser on Linux (triple-c#34) and which re-validates the URL in Rust — scheme allowlist, no embedded credentials, no control characters, length cap, ASCII asserted before `execvp`. On macOS and Windows that command reaches the same plugin as before, via `OpenerExt::open_url`, whose desktop implementation calls `crate::open::open` directly and is therefore not gated by this file at all (`tauri-plugin-opener-2.5.3/src/lib.rs:60`). The plugin stays a dependency for exactly that reason; what is removed is the webview's ability to reach it without passing the Rust validation. (3) `drag:allow-start-drag` is **gone**, together with the OS drag-out it existed for. It could not be scoped — `tauri-plugin-drag` takes the item paths from the caller and has no scope mechanism, so a compromised webview could call `startDrag({ item: ['~/.ssh/id_rsa'] })` against any host path the user can read — and it was carried as an accepted residual risk for one gesture. Drag-out was held back for separate hardening (see branch `hold/disk-and-dragout`) and the plugin is no longer a dependency. Getting a file *out* of a container is either \"Back up container\" on the project's Overview tab, which archives a tree through the Docker API, or the Files tab's per-row \"Save to host…\", which copies one file; getting one *in* is a drop on the Terminal or the Files tab's \"Upload…\". None of the four touches this permission. The Files tab's two are worth separating out here, because they are the only host-path commands in the app whose dialog is opened by **Rust** rather than by the webview — `pick_save_path` and `pick_files_to_upload` in `commands/file_commands.rs` drive `tauri-plugin-dialog` from the backend, so a compromised webview can ask for a picker and nothing more: it cannot name a host path as an *input* to either command. Be precise about the limit of that claim — host paths do still travel outward in error text (`Failed to create /home/j/Documents/x.txt.triple-c-part-1a2b3c4d: Permission denied`), including canonicalized ones, which disclose symlink targets. That is accepted; the app already hands the webview the project paths. What is closed is the direction that mattered — the webview naming where bytes go. That is the shape an earlier revision of this file named as the honest one if the Files tab ever regained host I/O, and it is the shape it regained it in. The `dialog:allow-open` / `dialog:allow-save` grants below are therefore *not* what those two use; they remain for the frontend pickers in Add Project, the Config tab's workspace and access sections, the CA-certificate field and Backup. Two commands still take a host path over IPC as a string — the terminal drop and `download_container_backup` — and for those `validate_host_path` is the boundary rather than defence in depth. This file is the reviewed threat model of record, so keep this census accurate: a stale reference here is worse than none. Note that dragging files *into* the app is unaffected: `dragDropEnabled` and `onDragDropEvent` are core webview behaviour and need no grant. Historical note kept because it is easy to re-introduce: the `store:*` grants were removed — nothing in `app/src` uses `@tauri-apps/plugin-store`, and the plugin's `resolve_store_path` is a `PathBuf::push` against AppData, which `push` discards outright when handed an absolute path, so the grant was an arbitrary host-file read/write primitive (`plugin:store|load` + `set` + `save` on `~/.claude/settings.json` is host code execution). A second capability file, `file-viewer.json`, covers the `file-viewer-*` windows the terminal file viewer opens on `viewer.html`; it is the only other local-origin window, its grants are listed and justified there, and its one non-obvious grant (`core:window:allow-destroy`) exists because `onCloseRequested` cannot close a window without it. App commands stay ungated by capability in both files — a compromised viewer window can invoke any app command exactly as a compromised main window can, since `generate_handler!` registers every command for every window and this file's `windows` scoping only ever applied to plugin permissions. That is an accepted residual risk, not an oversight: the viewer's app commands are gated by label instead, inside `commands/file_viewer_commands.rs` itself, and the general fix — restricting *app* commands per window at the `build.rs` level — is the pending AppManifest lockdown (`docs/superpowers/specs/2026-09-22-app-manifest-lockdown-design.md`), not yet built. On the CSP side: `app.security.csp` in `tauri.conf.json` covers the shipped bundle, and there is deliberately no `devCsp`. `npm run tauri dev` loads the main document straight from Vite at `build.devUrl` (`http://localhost:1420`), and Tauri only attaches a CSP to documents it serves itself — `protocol/tauri.rs:217` sets the header on `tauri://` assets, and the dev server is proxied through that protocol only when `PROXY_DEV_SERVER`, which is `cfg!(all(dev, mobile))` and therefore false for every desktop build. A `devCsp` here would be inert config that reads as protection, which is worse than its absence. If a CSP in dev is wanted, the only place that can set one is the Vite dev server's own `server.headers` in `app/vite.config.ts`; it is not set today, and dev is not the shipped configuration.","local":true,"windows":["main"],"permissions":["core:event:allow-listen","core:event:allow-unlisten","core:webview:allow-internal-toggle-devtools","dialog:allow-open","dialog:allow-save","allow-check-docker","allow-check-image-exists","allow-build-image","allow-get-container-info","allow-list-projects","allow-add-project","allow-remove-project","allow-update-project","allow-start-project-container","allow-stop-project-container","allow-rebuild-project-container","allow-reconcile-project-statuses","allow-list-notes","allow-save-note","allow-delete-note","allow-get-container-staleness","allow-migrate-project-to-base","allow-confirm-migration","allow-rollback-migration","allow-get-migration-state","allow-set-auth-bridge-enabled","allow-get-auth-bridge-status","allow-set-browser-view-enabled","allow-get-browser-view-status","allow-check-browser-view-support","allow-install-browser-view-support","allow-install-browser-view-browser","allow-open-browser-view-popout","allow-close-browser-view-popout","allow-get-browser-view-popout-state","allow-set-browser-view-popout-always-on-top","allow-open-page-in-container-browser","allow-set-container-page-viewport","allow-get-container-page-state","allow-close-container-page","allow-set-browser-view-match-window","allow-get-browser-view-match-window","allow-acquire-claude-token","allow-submit-claude-token-code","allow-cancel-claude-token","allow-has-claude-token","allow-clear-claude-token","allow-sweep-claude-token-snapshots","allow-get-settings","allow-update-settings","allow-pull-image","allow-detect-aws-config","allow-inspect-ca-cert-path","allow-list-aws-profiles","allow-detect-host-timezone","allow-export-settings","allow-preview-settings-import","allow-apply-settings-import","allow-open-terminal-session","allow-terminal-input","allow-terminal-resize","allow-close-terminal-session","allow-paste-image-to-terminal","allow-upload-host-file-to-terminal","allow-start-audio-bridge","allow-send-audio-data","allow-stop-audio-bridge","allow-list-container-files","allow-download-container-backup","allow-download-container-file","allow-upload-files-to-container","allow-read-container-file","allow-rename-container-path","allow-create-container-directory","allow-open-file-viewer","allow-aws-sso-refresh","allow-get-app-version","allow-check-for-updates","allow-check-image-update","allow-get-help-content","allow-open-url-external","allow-detect-install-options","allow-run-docker-install","allow-start-web-terminal","allow-stop-web-terminal","allow-get-web-terminal-status","allow-regenerate-web-terminal-token","allow-get-stt-status","allow-start-stt","allow-stop-stt","allow-build-stt-image","allow-pull-stt-image","allow-transcribe-audio","allow-get-gateway-status","allow-start-gateway","allow-stop-gateway","allow-check-gateway-health","allow-build-gateway-image","allow-pull-gateway-image","allow-set-gateway-api-key","allow-clear-gateway-api-key","allow-get-gateway-auth-token","allow-regenerate-gateway-auth-token","allow-list-claude-sessions","allow-resume-session-command","allow-list-container-capabilities","allow-list-scheduled-tasks","allow-add-scheduled-task","allow-update-scheduled-task","allow-get-scheduled-task-log","allow-set-scheduled-task-enabled","allow-run-scheduled-task-now","allow-remove-scheduled-task","allow-get-scheduler-notifications","allow-clear-scheduler-notifications"]},"file-viewer":{"identifier":"file-viewer","description":"The terminal file viewer windows (`file-viewer-`, opened by `open_file_viewer` on the app's own `viewer.html`). Same rules as `default.json`: app commands need no entry here and are gated by label inside `commands/file_viewer_commands.rs`; this file is the plugin-command surface a compromised viewer webview could reach, and it is the smallest one that lets the window work. `core:event:allow-listen`/`allow-unlisten` are for `file-viewer-goto` (Rust → this window; the viewer subscribes through `getCurrentWindow().listen`, because a bare `listen()` in *any* window receives an `emit_to`). `core:window:allow-destroy` is not optional: `getCurrentWindow().onCloseRequested` in @tauri-apps/api 2.11 makes Rust `prevent_close()` whenever a JS listener exists and then calls `destroy()` itself, so without this grant the window's X button does nothing once the unsaved-changes guard is installed. `allow-close` is deliberately absent — nothing calls it, and `destroy` is the only exit. No `set-title`/`set-focus`/`unminimize`: those are done from Rust when a second click targets an already-open file. `core:webview:allow-internal-toggle-devtools` is the same dev-only convenience `default.json` carries.","local":true,"windows":["file-viewer-*"],"permissions":["core:event:allow-listen","core:event:allow-unlisten","core:window:allow-destroy","core:webview:allow-internal-toggle-devtools","allow-viewer-get-state","allow-viewer-choose-file","allow-viewer-read-file","allow-viewer-poll-file","allow-viewer-write-file"]}} \ No newline at end of file diff --git a/app/src-tauri/gen/schemas/desktop-schema.json b/app/src-tauri/gen/schemas/desktop-schema.json index 156390b..101ec55 100644 --- a/app/src-tauri/gen/schemas/desktop-schema.json +++ b/app/src-tauri/gen/schemas/desktop-schema.json @@ -344,6 +344,1386 @@ "Identifier": { "description": "Permission identifier", "oneOf": [ + { + "description": "Enables the acquire_claude_token command without any pre-configured scope.", + "type": "string", + "const": "allow-acquire-claude-token", + "markdownDescription": "Enables the acquire_claude_token command without any pre-configured scope." + }, + { + "description": "Enables the add_project command without any pre-configured scope.", + "type": "string", + "const": "allow-add-project", + "markdownDescription": "Enables the add_project command without any pre-configured scope." + }, + { + "description": "Enables the add_scheduled_task command without any pre-configured scope.", + "type": "string", + "const": "allow-add-scheduled-task", + "markdownDescription": "Enables the add_scheduled_task command without any pre-configured scope." + }, + { + "description": "Enables the apply_settings_import command without any pre-configured scope.", + "type": "string", + "const": "allow-apply-settings-import", + "markdownDescription": "Enables the apply_settings_import command without any pre-configured scope." + }, + { + "description": "Enables the aws_sso_refresh command without any pre-configured scope.", + "type": "string", + "const": "allow-aws-sso-refresh", + "markdownDescription": "Enables the aws_sso_refresh command without any pre-configured scope." + }, + { + "description": "Enables the build_gateway_image command without any pre-configured scope.", + "type": "string", + "const": "allow-build-gateway-image", + "markdownDescription": "Enables the build_gateway_image command without any pre-configured scope." + }, + { + "description": "Enables the build_image command without any pre-configured scope.", + "type": "string", + "const": "allow-build-image", + "markdownDescription": "Enables the build_image command without any pre-configured scope." + }, + { + "description": "Enables the build_stt_image command without any pre-configured scope.", + "type": "string", + "const": "allow-build-stt-image", + "markdownDescription": "Enables the build_stt_image command without any pre-configured scope." + }, + { + "description": "Enables the cancel_claude_token command without any pre-configured scope.", + "type": "string", + "const": "allow-cancel-claude-token", + "markdownDescription": "Enables the cancel_claude_token command without any pre-configured scope." + }, + { + "description": "Enables the check_browser_view_support command without any pre-configured scope.", + "type": "string", + "const": "allow-check-browser-view-support", + "markdownDescription": "Enables the check_browser_view_support command without any pre-configured scope." + }, + { + "description": "Enables the check_docker command without any pre-configured scope.", + "type": "string", + "const": "allow-check-docker", + "markdownDescription": "Enables the check_docker command without any pre-configured scope." + }, + { + "description": "Enables the check_for_updates command without any pre-configured scope.", + "type": "string", + "const": "allow-check-for-updates", + "markdownDescription": "Enables the check_for_updates command without any pre-configured scope." + }, + { + "description": "Enables the check_gateway_health command without any pre-configured scope.", + "type": "string", + "const": "allow-check-gateway-health", + "markdownDescription": "Enables the check_gateway_health command without any pre-configured scope." + }, + { + "description": "Enables the check_image_exists command without any pre-configured scope.", + "type": "string", + "const": "allow-check-image-exists", + "markdownDescription": "Enables the check_image_exists command without any pre-configured scope." + }, + { + "description": "Enables the check_image_update command without any pre-configured scope.", + "type": "string", + "const": "allow-check-image-update", + "markdownDescription": "Enables the check_image_update command without any pre-configured scope." + }, + { + "description": "Enables the clear_claude_token command without any pre-configured scope.", + "type": "string", + "const": "allow-clear-claude-token", + "markdownDescription": "Enables the clear_claude_token command without any pre-configured scope." + }, + { + "description": "Enables the clear_gateway_api_key command without any pre-configured scope.", + "type": "string", + "const": "allow-clear-gateway-api-key", + "markdownDescription": "Enables the clear_gateway_api_key command without any pre-configured scope." + }, + { + "description": "Enables the clear_scheduler_notifications command without any pre-configured scope.", + "type": "string", + "const": "allow-clear-scheduler-notifications", + "markdownDescription": "Enables the clear_scheduler_notifications command without any pre-configured scope." + }, + { + "description": "Enables the close_browser_view_popout command without any pre-configured scope.", + "type": "string", + "const": "allow-close-browser-view-popout", + "markdownDescription": "Enables the close_browser_view_popout command without any pre-configured scope." + }, + { + "description": "Enables the close_container_page command without any pre-configured scope.", + "type": "string", + "const": "allow-close-container-page", + "markdownDescription": "Enables the close_container_page command without any pre-configured scope." + }, + { + "description": "Enables the close_terminal_session command without any pre-configured scope.", + "type": "string", + "const": "allow-close-terminal-session", + "markdownDescription": "Enables the close_terminal_session command without any pre-configured scope." + }, + { + "description": "Enables the confirm_migration command without any pre-configured scope.", + "type": "string", + "const": "allow-confirm-migration", + "markdownDescription": "Enables the confirm_migration command without any pre-configured scope." + }, + { + "description": "Enables the create_container_directory command without any pre-configured scope.", + "type": "string", + "const": "allow-create-container-directory", + "markdownDescription": "Enables the create_container_directory command without any pre-configured scope." + }, + { + "description": "Enables the delete_note command without any pre-configured scope.", + "type": "string", + "const": "allow-delete-note", + "markdownDescription": "Enables the delete_note command without any pre-configured scope." + }, + { + "description": "Enables the detect_aws_config command without any pre-configured scope.", + "type": "string", + "const": "allow-detect-aws-config", + "markdownDescription": "Enables the detect_aws_config command without any pre-configured scope." + }, + { + "description": "Enables the detect_host_timezone command without any pre-configured scope.", + "type": "string", + "const": "allow-detect-host-timezone", + "markdownDescription": "Enables the detect_host_timezone command without any pre-configured scope." + }, + { + "description": "Enables the detect_install_options command without any pre-configured scope.", + "type": "string", + "const": "allow-detect-install-options", + "markdownDescription": "Enables the detect_install_options command without any pre-configured scope." + }, + { + "description": "Enables the download_container_backup command without any pre-configured scope.", + "type": "string", + "const": "allow-download-container-backup", + "markdownDescription": "Enables the download_container_backup command without any pre-configured scope." + }, + { + "description": "Enables the download_container_file command without any pre-configured scope.", + "type": "string", + "const": "allow-download-container-file", + "markdownDescription": "Enables the download_container_file command without any pre-configured scope." + }, + { + "description": "Enables the export_settings command without any pre-configured scope.", + "type": "string", + "const": "allow-export-settings", + "markdownDescription": "Enables the export_settings command without any pre-configured scope." + }, + { + "description": "Enables the get_app_version command without any pre-configured scope.", + "type": "string", + "const": "allow-get-app-version", + "markdownDescription": "Enables the get_app_version command without any pre-configured scope." + }, + { + "description": "Enables the get_auth_bridge_status command without any pre-configured scope.", + "type": "string", + "const": "allow-get-auth-bridge-status", + "markdownDescription": "Enables the get_auth_bridge_status command without any pre-configured scope." + }, + { + "description": "Enables the get_browser_view_match_window command without any pre-configured scope.", + "type": "string", + "const": "allow-get-browser-view-match-window", + "markdownDescription": "Enables the get_browser_view_match_window command without any pre-configured scope." + }, + { + "description": "Enables the get_browser_view_popout_state command without any pre-configured scope.", + "type": "string", + "const": "allow-get-browser-view-popout-state", + "markdownDescription": "Enables the get_browser_view_popout_state command without any pre-configured scope." + }, + { + "description": "Enables the get_browser_view_status command without any pre-configured scope.", + "type": "string", + "const": "allow-get-browser-view-status", + "markdownDescription": "Enables the get_browser_view_status command without any pre-configured scope." + }, + { + "description": "Enables the get_container_info command without any pre-configured scope.", + "type": "string", + "const": "allow-get-container-info", + "markdownDescription": "Enables the get_container_info command without any pre-configured scope." + }, + { + "description": "Enables the get_container_page_state command without any pre-configured scope.", + "type": "string", + "const": "allow-get-container-page-state", + "markdownDescription": "Enables the get_container_page_state command without any pre-configured scope." + }, + { + "description": "Enables the get_container_staleness command without any pre-configured scope.", + "type": "string", + "const": "allow-get-container-staleness", + "markdownDescription": "Enables the get_container_staleness command without any pre-configured scope." + }, + { + "description": "Enables the get_gateway_auth_token command without any pre-configured scope.", + "type": "string", + "const": "allow-get-gateway-auth-token", + "markdownDescription": "Enables the get_gateway_auth_token command without any pre-configured scope." + }, + { + "description": "Enables the get_gateway_status command without any pre-configured scope.", + "type": "string", + "const": "allow-get-gateway-status", + "markdownDescription": "Enables the get_gateway_status command without any pre-configured scope." + }, + { + "description": "Enables the get_help_content command without any pre-configured scope.", + "type": "string", + "const": "allow-get-help-content", + "markdownDescription": "Enables the get_help_content command without any pre-configured scope." + }, + { + "description": "Enables the get_migration_state command without any pre-configured scope.", + "type": "string", + "const": "allow-get-migration-state", + "markdownDescription": "Enables the get_migration_state command without any pre-configured scope." + }, + { + "description": "Enables the get_scheduled_task_log command without any pre-configured scope.", + "type": "string", + "const": "allow-get-scheduled-task-log", + "markdownDescription": "Enables the get_scheduled_task_log command without any pre-configured scope." + }, + { + "description": "Enables the get_scheduler_notifications command without any pre-configured scope.", + "type": "string", + "const": "allow-get-scheduler-notifications", + "markdownDescription": "Enables the get_scheduler_notifications command without any pre-configured scope." + }, + { + "description": "Enables the get_settings command without any pre-configured scope.", + "type": "string", + "const": "allow-get-settings", + "markdownDescription": "Enables the get_settings command without any pre-configured scope." + }, + { + "description": "Enables the get_stt_status command without any pre-configured scope.", + "type": "string", + "const": "allow-get-stt-status", + "markdownDescription": "Enables the get_stt_status command without any pre-configured scope." + }, + { + "description": "Enables the get_web_terminal_status command without any pre-configured scope.", + "type": "string", + "const": "allow-get-web-terminal-status", + "markdownDescription": "Enables the get_web_terminal_status command without any pre-configured scope." + }, + { + "description": "Enables the has_claude_token command without any pre-configured scope.", + "type": "string", + "const": "allow-has-claude-token", + "markdownDescription": "Enables the has_claude_token command without any pre-configured scope." + }, + { + "description": "Enables the inspect_ca_cert_path command without any pre-configured scope.", + "type": "string", + "const": "allow-inspect-ca-cert-path", + "markdownDescription": "Enables the inspect_ca_cert_path command without any pre-configured scope." + }, + { + "description": "Enables the install_browser_view_browser command without any pre-configured scope.", + "type": "string", + "const": "allow-install-browser-view-browser", + "markdownDescription": "Enables the install_browser_view_browser command without any pre-configured scope." + }, + { + "description": "Enables the install_browser_view_support command without any pre-configured scope.", + "type": "string", + "const": "allow-install-browser-view-support", + "markdownDescription": "Enables the install_browser_view_support command without any pre-configured scope." + }, + { + "description": "Enables the list_aws_profiles command without any pre-configured scope.", + "type": "string", + "const": "allow-list-aws-profiles", + "markdownDescription": "Enables the list_aws_profiles command without any pre-configured scope." + }, + { + "description": "Enables the list_claude_sessions command without any pre-configured scope.", + "type": "string", + "const": "allow-list-claude-sessions", + "markdownDescription": "Enables the list_claude_sessions command without any pre-configured scope." + }, + { + "description": "Enables the list_container_capabilities command without any pre-configured scope.", + "type": "string", + "const": "allow-list-container-capabilities", + "markdownDescription": "Enables the list_container_capabilities command without any pre-configured scope." + }, + { + "description": "Enables the list_container_files command without any pre-configured scope.", + "type": "string", + "const": "allow-list-container-files", + "markdownDescription": "Enables the list_container_files command without any pre-configured scope." + }, + { + "description": "Enables the list_notes command without any pre-configured scope.", + "type": "string", + "const": "allow-list-notes", + "markdownDescription": "Enables the list_notes command without any pre-configured scope." + }, + { + "description": "Enables the list_projects command without any pre-configured scope.", + "type": "string", + "const": "allow-list-projects", + "markdownDescription": "Enables the list_projects command without any pre-configured scope." + }, + { + "description": "Enables the list_scheduled_tasks command without any pre-configured scope.", + "type": "string", + "const": "allow-list-scheduled-tasks", + "markdownDescription": "Enables the list_scheduled_tasks command without any pre-configured scope." + }, + { + "description": "Enables the migrate_project_to_base command without any pre-configured scope.", + "type": "string", + "const": "allow-migrate-project-to-base", + "markdownDescription": "Enables the migrate_project_to_base command without any pre-configured scope." + }, + { + "description": "Enables the open_browser_view_popout command without any pre-configured scope.", + "type": "string", + "const": "allow-open-browser-view-popout", + "markdownDescription": "Enables the open_browser_view_popout command without any pre-configured scope." + }, + { + "description": "Enables the open_file_viewer command without any pre-configured scope.", + "type": "string", + "const": "allow-open-file-viewer", + "markdownDescription": "Enables the open_file_viewer command without any pre-configured scope." + }, + { + "description": "Enables the open_page_in_container_browser command without any pre-configured scope.", + "type": "string", + "const": "allow-open-page-in-container-browser", + "markdownDescription": "Enables the open_page_in_container_browser command without any pre-configured scope." + }, + { + "description": "Enables the open_terminal_session command without any pre-configured scope.", + "type": "string", + "const": "allow-open-terminal-session", + "markdownDescription": "Enables the open_terminal_session command without any pre-configured scope." + }, + { + "description": "Enables the open_url_external command without any pre-configured scope.", + "type": "string", + "const": "allow-open-url-external", + "markdownDescription": "Enables the open_url_external command without any pre-configured scope." + }, + { + "description": "Enables the paste_image_to_terminal command without any pre-configured scope.", + "type": "string", + "const": "allow-paste-image-to-terminal", + "markdownDescription": "Enables the paste_image_to_terminal command without any pre-configured scope." + }, + { + "description": "Enables the preview_settings_import command without any pre-configured scope.", + "type": "string", + "const": "allow-preview-settings-import", + "markdownDescription": "Enables the preview_settings_import command without any pre-configured scope." + }, + { + "description": "Enables the pull_gateway_image command without any pre-configured scope.", + "type": "string", + "const": "allow-pull-gateway-image", + "markdownDescription": "Enables the pull_gateway_image command without any pre-configured scope." + }, + { + "description": "Enables the pull_image command without any pre-configured scope.", + "type": "string", + "const": "allow-pull-image", + "markdownDescription": "Enables the pull_image command without any pre-configured scope." + }, + { + "description": "Enables the pull_stt_image command without any pre-configured scope.", + "type": "string", + "const": "allow-pull-stt-image", + "markdownDescription": "Enables the pull_stt_image command without any pre-configured scope." + }, + { + "description": "Enables the read_container_file command without any pre-configured scope.", + "type": "string", + "const": "allow-read-container-file", + "markdownDescription": "Enables the read_container_file command without any pre-configured scope." + }, + { + "description": "Enables the rebuild_project_container command without any pre-configured scope.", + "type": "string", + "const": "allow-rebuild-project-container", + "markdownDescription": "Enables the rebuild_project_container command without any pre-configured scope." + }, + { + "description": "Enables the reconcile_project_statuses command without any pre-configured scope.", + "type": "string", + "const": "allow-reconcile-project-statuses", + "markdownDescription": "Enables the reconcile_project_statuses command without any pre-configured scope." + }, + { + "description": "Enables the regenerate_gateway_auth_token command without any pre-configured scope.", + "type": "string", + "const": "allow-regenerate-gateway-auth-token", + "markdownDescription": "Enables the regenerate_gateway_auth_token command without any pre-configured scope." + }, + { + "description": "Enables the regenerate_web_terminal_token command without any pre-configured scope.", + "type": "string", + "const": "allow-regenerate-web-terminal-token", + "markdownDescription": "Enables the regenerate_web_terminal_token command without any pre-configured scope." + }, + { + "description": "Enables the remove_project command without any pre-configured scope.", + "type": "string", + "const": "allow-remove-project", + "markdownDescription": "Enables the remove_project command without any pre-configured scope." + }, + { + "description": "Enables the remove_scheduled_task command without any pre-configured scope.", + "type": "string", + "const": "allow-remove-scheduled-task", + "markdownDescription": "Enables the remove_scheduled_task command without any pre-configured scope." + }, + { + "description": "Enables the rename_container_path command without any pre-configured scope.", + "type": "string", + "const": "allow-rename-container-path", + "markdownDescription": "Enables the rename_container_path command without any pre-configured scope." + }, + { + "description": "Enables the resume_session_command command without any pre-configured scope.", + "type": "string", + "const": "allow-resume-session-command", + "markdownDescription": "Enables the resume_session_command command without any pre-configured scope." + }, + { + "description": "Enables the rollback_migration command without any pre-configured scope.", + "type": "string", + "const": "allow-rollback-migration", + "markdownDescription": "Enables the rollback_migration command without any pre-configured scope." + }, + { + "description": "Enables the run_docker_install command without any pre-configured scope.", + "type": "string", + "const": "allow-run-docker-install", + "markdownDescription": "Enables the run_docker_install command without any pre-configured scope." + }, + { + "description": "Enables the run_scheduled_task_now command without any pre-configured scope.", + "type": "string", + "const": "allow-run-scheduled-task-now", + "markdownDescription": "Enables the run_scheduled_task_now command without any pre-configured scope." + }, + { + "description": "Enables the save_note command without any pre-configured scope.", + "type": "string", + "const": "allow-save-note", + "markdownDescription": "Enables the save_note command without any pre-configured scope." + }, + { + "description": "Enables the send_audio_data command without any pre-configured scope.", + "type": "string", + "const": "allow-send-audio-data", + "markdownDescription": "Enables the send_audio_data command without any pre-configured scope." + }, + { + "description": "Enables the set_auth_bridge_enabled command without any pre-configured scope.", + "type": "string", + "const": "allow-set-auth-bridge-enabled", + "markdownDescription": "Enables the set_auth_bridge_enabled command without any pre-configured scope." + }, + { + "description": "Enables the set_browser_view_enabled command without any pre-configured scope.", + "type": "string", + "const": "allow-set-browser-view-enabled", + "markdownDescription": "Enables the set_browser_view_enabled command without any pre-configured scope." + }, + { + "description": "Enables the set_browser_view_match_window command without any pre-configured scope.", + "type": "string", + "const": "allow-set-browser-view-match-window", + "markdownDescription": "Enables the set_browser_view_match_window command without any pre-configured scope." + }, + { + "description": "Enables the set_browser_view_popout_always_on_top command without any pre-configured scope.", + "type": "string", + "const": "allow-set-browser-view-popout-always-on-top", + "markdownDescription": "Enables the set_browser_view_popout_always_on_top command without any pre-configured scope." + }, + { + "description": "Enables the set_container_page_viewport command without any pre-configured scope.", + "type": "string", + "const": "allow-set-container-page-viewport", + "markdownDescription": "Enables the set_container_page_viewport command without any pre-configured scope." + }, + { + "description": "Enables the set_gateway_api_key command without any pre-configured scope.", + "type": "string", + "const": "allow-set-gateway-api-key", + "markdownDescription": "Enables the set_gateway_api_key command without any pre-configured scope." + }, + { + "description": "Enables the set_scheduled_task_enabled command without any pre-configured scope.", + "type": "string", + "const": "allow-set-scheduled-task-enabled", + "markdownDescription": "Enables the set_scheduled_task_enabled command without any pre-configured scope." + }, + { + "description": "Enables the start_audio_bridge command without any pre-configured scope.", + "type": "string", + "const": "allow-start-audio-bridge", + "markdownDescription": "Enables the start_audio_bridge command without any pre-configured scope." + }, + { + "description": "Enables the start_gateway command without any pre-configured scope.", + "type": "string", + "const": "allow-start-gateway", + "markdownDescription": "Enables the start_gateway command without any pre-configured scope." + }, + { + "description": "Enables the start_project_container command without any pre-configured scope.", + "type": "string", + "const": "allow-start-project-container", + "markdownDescription": "Enables the start_project_container command without any pre-configured scope." + }, + { + "description": "Enables the start_stt command without any pre-configured scope.", + "type": "string", + "const": "allow-start-stt", + "markdownDescription": "Enables the start_stt command without any pre-configured scope." + }, + { + "description": "Enables the start_web_terminal command without any pre-configured scope.", + "type": "string", + "const": "allow-start-web-terminal", + "markdownDescription": "Enables the start_web_terminal command without any pre-configured scope." + }, + { + "description": "Enables the stop_audio_bridge command without any pre-configured scope.", + "type": "string", + "const": "allow-stop-audio-bridge", + "markdownDescription": "Enables the stop_audio_bridge command without any pre-configured scope." + }, + { + "description": "Enables the stop_gateway command without any pre-configured scope.", + "type": "string", + "const": "allow-stop-gateway", + "markdownDescription": "Enables the stop_gateway command without any pre-configured scope." + }, + { + "description": "Enables the stop_project_container command without any pre-configured scope.", + "type": "string", + "const": "allow-stop-project-container", + "markdownDescription": "Enables the stop_project_container command without any pre-configured scope." + }, + { + "description": "Enables the stop_stt command without any pre-configured scope.", + "type": "string", + "const": "allow-stop-stt", + "markdownDescription": "Enables the stop_stt command without any pre-configured scope." + }, + { + "description": "Enables the stop_web_terminal command without any pre-configured scope.", + "type": "string", + "const": "allow-stop-web-terminal", + "markdownDescription": "Enables the stop_web_terminal command without any pre-configured scope." + }, + { + "description": "Enables the submit_claude_token_code command without any pre-configured scope.", + "type": "string", + "const": "allow-submit-claude-token-code", + "markdownDescription": "Enables the submit_claude_token_code command without any pre-configured scope." + }, + { + "description": "Enables the sweep_claude_token_snapshots command without any pre-configured scope.", + "type": "string", + "const": "allow-sweep-claude-token-snapshots", + "markdownDescription": "Enables the sweep_claude_token_snapshots command without any pre-configured scope." + }, + { + "description": "Enables the terminal_input command without any pre-configured scope.", + "type": "string", + "const": "allow-terminal-input", + "markdownDescription": "Enables the terminal_input command without any pre-configured scope." + }, + { + "description": "Enables the terminal_resize command without any pre-configured scope.", + "type": "string", + "const": "allow-terminal-resize", + "markdownDescription": "Enables the terminal_resize command without any pre-configured scope." + }, + { + "description": "Enables the transcribe_audio command without any pre-configured scope.", + "type": "string", + "const": "allow-transcribe-audio", + "markdownDescription": "Enables the transcribe_audio command without any pre-configured scope." + }, + { + "description": "Enables the update_project command without any pre-configured scope.", + "type": "string", + "const": "allow-update-project", + "markdownDescription": "Enables the update_project command without any pre-configured scope." + }, + { + "description": "Enables the update_scheduled_task command without any pre-configured scope.", + "type": "string", + "const": "allow-update-scheduled-task", + "markdownDescription": "Enables the update_scheduled_task command without any pre-configured scope." + }, + { + "description": "Enables the update_settings command without any pre-configured scope.", + "type": "string", + "const": "allow-update-settings", + "markdownDescription": "Enables the update_settings command without any pre-configured scope." + }, + { + "description": "Enables the upload_files_to_container command without any pre-configured scope.", + "type": "string", + "const": "allow-upload-files-to-container", + "markdownDescription": "Enables the upload_files_to_container command without any pre-configured scope." + }, + { + "description": "Enables the upload_host_file_to_terminal command without any pre-configured scope.", + "type": "string", + "const": "allow-upload-host-file-to-terminal", + "markdownDescription": "Enables the upload_host_file_to_terminal command without any pre-configured scope." + }, + { + "description": "Enables the viewer_choose_file command without any pre-configured scope.", + "type": "string", + "const": "allow-viewer-choose-file", + "markdownDescription": "Enables the viewer_choose_file command without any pre-configured scope." + }, + { + "description": "Enables the viewer_get_state command without any pre-configured scope.", + "type": "string", + "const": "allow-viewer-get-state", + "markdownDescription": "Enables the viewer_get_state command without any pre-configured scope." + }, + { + "description": "Enables the viewer_poll_file command without any pre-configured scope.", + "type": "string", + "const": "allow-viewer-poll-file", + "markdownDescription": "Enables the viewer_poll_file command without any pre-configured scope." + }, + { + "description": "Enables the viewer_read_file command without any pre-configured scope.", + "type": "string", + "const": "allow-viewer-read-file", + "markdownDescription": "Enables the viewer_read_file command without any pre-configured scope." + }, + { + "description": "Enables the viewer_write_file command without any pre-configured scope.", + "type": "string", + "const": "allow-viewer-write-file", + "markdownDescription": "Enables the viewer_write_file command without any pre-configured scope." + }, + { + "description": "Denies the acquire_claude_token command without any pre-configured scope.", + "type": "string", + "const": "deny-acquire-claude-token", + "markdownDescription": "Denies the acquire_claude_token command without any pre-configured scope." + }, + { + "description": "Denies the add_project command without any pre-configured scope.", + "type": "string", + "const": "deny-add-project", + "markdownDescription": "Denies the add_project command without any pre-configured scope." + }, + { + "description": "Denies the add_scheduled_task command without any pre-configured scope.", + "type": "string", + "const": "deny-add-scheduled-task", + "markdownDescription": "Denies the add_scheduled_task command without any pre-configured scope." + }, + { + "description": "Denies the apply_settings_import command without any pre-configured scope.", + "type": "string", + "const": "deny-apply-settings-import", + "markdownDescription": "Denies the apply_settings_import command without any pre-configured scope." + }, + { + "description": "Denies the aws_sso_refresh command without any pre-configured scope.", + "type": "string", + "const": "deny-aws-sso-refresh", + "markdownDescription": "Denies the aws_sso_refresh command without any pre-configured scope." + }, + { + "description": "Denies the build_gateway_image command without any pre-configured scope.", + "type": "string", + "const": "deny-build-gateway-image", + "markdownDescription": "Denies the build_gateway_image command without any pre-configured scope." + }, + { + "description": "Denies the build_image command without any pre-configured scope.", + "type": "string", + "const": "deny-build-image", + "markdownDescription": "Denies the build_image command without any pre-configured scope." + }, + { + "description": "Denies the build_stt_image command without any pre-configured scope.", + "type": "string", + "const": "deny-build-stt-image", + "markdownDescription": "Denies the build_stt_image command without any pre-configured scope." + }, + { + "description": "Denies the cancel_claude_token command without any pre-configured scope.", + "type": "string", + "const": "deny-cancel-claude-token", + "markdownDescription": "Denies the cancel_claude_token command without any pre-configured scope." + }, + { + "description": "Denies the check_browser_view_support command without any pre-configured scope.", + "type": "string", + "const": "deny-check-browser-view-support", + "markdownDescription": "Denies the check_browser_view_support command without any pre-configured scope." + }, + { + "description": "Denies the check_docker command without any pre-configured scope.", + "type": "string", + "const": "deny-check-docker", + "markdownDescription": "Denies the check_docker command without any pre-configured scope." + }, + { + "description": "Denies the check_for_updates command without any pre-configured scope.", + "type": "string", + "const": "deny-check-for-updates", + "markdownDescription": "Denies the check_for_updates command without any pre-configured scope." + }, + { + "description": "Denies the check_gateway_health command without any pre-configured scope.", + "type": "string", + "const": "deny-check-gateway-health", + "markdownDescription": "Denies the check_gateway_health command without any pre-configured scope." + }, + { + "description": "Denies the check_image_exists command without any pre-configured scope.", + "type": "string", + "const": "deny-check-image-exists", + "markdownDescription": "Denies the check_image_exists command without any pre-configured scope." + }, + { + "description": "Denies the check_image_update command without any pre-configured scope.", + "type": "string", + "const": "deny-check-image-update", + "markdownDescription": "Denies the check_image_update command without any pre-configured scope." + }, + { + "description": "Denies the clear_claude_token command without any pre-configured scope.", + "type": "string", + "const": "deny-clear-claude-token", + "markdownDescription": "Denies the clear_claude_token command without any pre-configured scope." + }, + { + "description": "Denies the clear_gateway_api_key command without any pre-configured scope.", + "type": "string", + "const": "deny-clear-gateway-api-key", + "markdownDescription": "Denies the clear_gateway_api_key command without any pre-configured scope." + }, + { + "description": "Denies the clear_scheduler_notifications command without any pre-configured scope.", + "type": "string", + "const": "deny-clear-scheduler-notifications", + "markdownDescription": "Denies the clear_scheduler_notifications command without any pre-configured scope." + }, + { + "description": "Denies the close_browser_view_popout command without any pre-configured scope.", + "type": "string", + "const": "deny-close-browser-view-popout", + "markdownDescription": "Denies the close_browser_view_popout command without any pre-configured scope." + }, + { + "description": "Denies the close_container_page command without any pre-configured scope.", + "type": "string", + "const": "deny-close-container-page", + "markdownDescription": "Denies the close_container_page command without any pre-configured scope." + }, + { + "description": "Denies the close_terminal_session command without any pre-configured scope.", + "type": "string", + "const": "deny-close-terminal-session", + "markdownDescription": "Denies the close_terminal_session command without any pre-configured scope." + }, + { + "description": "Denies the confirm_migration command without any pre-configured scope.", + "type": "string", + "const": "deny-confirm-migration", + "markdownDescription": "Denies the confirm_migration command without any pre-configured scope." + }, + { + "description": "Denies the create_container_directory command without any pre-configured scope.", + "type": "string", + "const": "deny-create-container-directory", + "markdownDescription": "Denies the create_container_directory command without any pre-configured scope." + }, + { + "description": "Denies the delete_note command without any pre-configured scope.", + "type": "string", + "const": "deny-delete-note", + "markdownDescription": "Denies the delete_note command without any pre-configured scope." + }, + { + "description": "Denies the detect_aws_config command without any pre-configured scope.", + "type": "string", + "const": "deny-detect-aws-config", + "markdownDescription": "Denies the detect_aws_config command without any pre-configured scope." + }, + { + "description": "Denies the detect_host_timezone command without any pre-configured scope.", + "type": "string", + "const": "deny-detect-host-timezone", + "markdownDescription": "Denies the detect_host_timezone command without any pre-configured scope." + }, + { + "description": "Denies the detect_install_options command without any pre-configured scope.", + "type": "string", + "const": "deny-detect-install-options", + "markdownDescription": "Denies the detect_install_options command without any pre-configured scope." + }, + { + "description": "Denies the download_container_backup command without any pre-configured scope.", + "type": "string", + "const": "deny-download-container-backup", + "markdownDescription": "Denies the download_container_backup command without any pre-configured scope." + }, + { + "description": "Denies the download_container_file command without any pre-configured scope.", + "type": "string", + "const": "deny-download-container-file", + "markdownDescription": "Denies the download_container_file command without any pre-configured scope." + }, + { + "description": "Denies the export_settings command without any pre-configured scope.", + "type": "string", + "const": "deny-export-settings", + "markdownDescription": "Denies the export_settings command without any pre-configured scope." + }, + { + "description": "Denies the get_app_version command without any pre-configured scope.", + "type": "string", + "const": "deny-get-app-version", + "markdownDescription": "Denies the get_app_version command without any pre-configured scope." + }, + { + "description": "Denies the get_auth_bridge_status command without any pre-configured scope.", + "type": "string", + "const": "deny-get-auth-bridge-status", + "markdownDescription": "Denies the get_auth_bridge_status command without any pre-configured scope." + }, + { + "description": "Denies the get_browser_view_match_window command without any pre-configured scope.", + "type": "string", + "const": "deny-get-browser-view-match-window", + "markdownDescription": "Denies the get_browser_view_match_window command without any pre-configured scope." + }, + { + "description": "Denies the get_browser_view_popout_state command without any pre-configured scope.", + "type": "string", + "const": "deny-get-browser-view-popout-state", + "markdownDescription": "Denies the get_browser_view_popout_state command without any pre-configured scope." + }, + { + "description": "Denies the get_browser_view_status command without any pre-configured scope.", + "type": "string", + "const": "deny-get-browser-view-status", + "markdownDescription": "Denies the get_browser_view_status command without any pre-configured scope." + }, + { + "description": "Denies the get_container_info command without any pre-configured scope.", + "type": "string", + "const": "deny-get-container-info", + "markdownDescription": "Denies the get_container_info command without any pre-configured scope." + }, + { + "description": "Denies the get_container_page_state command without any pre-configured scope.", + "type": "string", + "const": "deny-get-container-page-state", + "markdownDescription": "Denies the get_container_page_state command without any pre-configured scope." + }, + { + "description": "Denies the get_container_staleness command without any pre-configured scope.", + "type": "string", + "const": "deny-get-container-staleness", + "markdownDescription": "Denies the get_container_staleness command without any pre-configured scope." + }, + { + "description": "Denies the get_gateway_auth_token command without any pre-configured scope.", + "type": "string", + "const": "deny-get-gateway-auth-token", + "markdownDescription": "Denies the get_gateway_auth_token command without any pre-configured scope." + }, + { + "description": "Denies the get_gateway_status command without any pre-configured scope.", + "type": "string", + "const": "deny-get-gateway-status", + "markdownDescription": "Denies the get_gateway_status command without any pre-configured scope." + }, + { + "description": "Denies the get_help_content command without any pre-configured scope.", + "type": "string", + "const": "deny-get-help-content", + "markdownDescription": "Denies the get_help_content command without any pre-configured scope." + }, + { + "description": "Denies the get_migration_state command without any pre-configured scope.", + "type": "string", + "const": "deny-get-migration-state", + "markdownDescription": "Denies the get_migration_state command without any pre-configured scope." + }, + { + "description": "Denies the get_scheduled_task_log command without any pre-configured scope.", + "type": "string", + "const": "deny-get-scheduled-task-log", + "markdownDescription": "Denies the get_scheduled_task_log command without any pre-configured scope." + }, + { + "description": "Denies the get_scheduler_notifications command without any pre-configured scope.", + "type": "string", + "const": "deny-get-scheduler-notifications", + "markdownDescription": "Denies the get_scheduler_notifications command without any pre-configured scope." + }, + { + "description": "Denies the get_settings command without any pre-configured scope.", + "type": "string", + "const": "deny-get-settings", + "markdownDescription": "Denies the get_settings command without any pre-configured scope." + }, + { + "description": "Denies the get_stt_status command without any pre-configured scope.", + "type": "string", + "const": "deny-get-stt-status", + "markdownDescription": "Denies the get_stt_status command without any pre-configured scope." + }, + { + "description": "Denies the get_web_terminal_status command without any pre-configured scope.", + "type": "string", + "const": "deny-get-web-terminal-status", + "markdownDescription": "Denies the get_web_terminal_status command without any pre-configured scope." + }, + { + "description": "Denies the has_claude_token command without any pre-configured scope.", + "type": "string", + "const": "deny-has-claude-token", + "markdownDescription": "Denies the has_claude_token command without any pre-configured scope." + }, + { + "description": "Denies the inspect_ca_cert_path command without any pre-configured scope.", + "type": "string", + "const": "deny-inspect-ca-cert-path", + "markdownDescription": "Denies the inspect_ca_cert_path command without any pre-configured scope." + }, + { + "description": "Denies the install_browser_view_browser command without any pre-configured scope.", + "type": "string", + "const": "deny-install-browser-view-browser", + "markdownDescription": "Denies the install_browser_view_browser command without any pre-configured scope." + }, + { + "description": "Denies the install_browser_view_support command without any pre-configured scope.", + "type": "string", + "const": "deny-install-browser-view-support", + "markdownDescription": "Denies the install_browser_view_support command without any pre-configured scope." + }, + { + "description": "Denies the list_aws_profiles command without any pre-configured scope.", + "type": "string", + "const": "deny-list-aws-profiles", + "markdownDescription": "Denies the list_aws_profiles command without any pre-configured scope." + }, + { + "description": "Denies the list_claude_sessions command without any pre-configured scope.", + "type": "string", + "const": "deny-list-claude-sessions", + "markdownDescription": "Denies the list_claude_sessions command without any pre-configured scope." + }, + { + "description": "Denies the list_container_capabilities command without any pre-configured scope.", + "type": "string", + "const": "deny-list-container-capabilities", + "markdownDescription": "Denies the list_container_capabilities command without any pre-configured scope." + }, + { + "description": "Denies the list_container_files command without any pre-configured scope.", + "type": "string", + "const": "deny-list-container-files", + "markdownDescription": "Denies the list_container_files command without any pre-configured scope." + }, + { + "description": "Denies the list_notes command without any pre-configured scope.", + "type": "string", + "const": "deny-list-notes", + "markdownDescription": "Denies the list_notes command without any pre-configured scope." + }, + { + "description": "Denies the list_projects command without any pre-configured scope.", + "type": "string", + "const": "deny-list-projects", + "markdownDescription": "Denies the list_projects command without any pre-configured scope." + }, + { + "description": "Denies the list_scheduled_tasks command without any pre-configured scope.", + "type": "string", + "const": "deny-list-scheduled-tasks", + "markdownDescription": "Denies the list_scheduled_tasks command without any pre-configured scope." + }, + { + "description": "Denies the migrate_project_to_base command without any pre-configured scope.", + "type": "string", + "const": "deny-migrate-project-to-base", + "markdownDescription": "Denies the migrate_project_to_base command without any pre-configured scope." + }, + { + "description": "Denies the open_browser_view_popout command without any pre-configured scope.", + "type": "string", + "const": "deny-open-browser-view-popout", + "markdownDescription": "Denies the open_browser_view_popout command without any pre-configured scope." + }, + { + "description": "Denies the open_file_viewer command without any pre-configured scope.", + "type": "string", + "const": "deny-open-file-viewer", + "markdownDescription": "Denies the open_file_viewer command without any pre-configured scope." + }, + { + "description": "Denies the open_page_in_container_browser command without any pre-configured scope.", + "type": "string", + "const": "deny-open-page-in-container-browser", + "markdownDescription": "Denies the open_page_in_container_browser command without any pre-configured scope." + }, + { + "description": "Denies the open_terminal_session command without any pre-configured scope.", + "type": "string", + "const": "deny-open-terminal-session", + "markdownDescription": "Denies the open_terminal_session command without any pre-configured scope." + }, + { + "description": "Denies the open_url_external command without any pre-configured scope.", + "type": "string", + "const": "deny-open-url-external", + "markdownDescription": "Denies the open_url_external command without any pre-configured scope." + }, + { + "description": "Denies the paste_image_to_terminal command without any pre-configured scope.", + "type": "string", + "const": "deny-paste-image-to-terminal", + "markdownDescription": "Denies the paste_image_to_terminal command without any pre-configured scope." + }, + { + "description": "Denies the preview_settings_import command without any pre-configured scope.", + "type": "string", + "const": "deny-preview-settings-import", + "markdownDescription": "Denies the preview_settings_import command without any pre-configured scope." + }, + { + "description": "Denies the pull_gateway_image command without any pre-configured scope.", + "type": "string", + "const": "deny-pull-gateway-image", + "markdownDescription": "Denies the pull_gateway_image command without any pre-configured scope." + }, + { + "description": "Denies the pull_image command without any pre-configured scope.", + "type": "string", + "const": "deny-pull-image", + "markdownDescription": "Denies the pull_image command without any pre-configured scope." + }, + { + "description": "Denies the pull_stt_image command without any pre-configured scope.", + "type": "string", + "const": "deny-pull-stt-image", + "markdownDescription": "Denies the pull_stt_image command without any pre-configured scope." + }, + { + "description": "Denies the read_container_file command without any pre-configured scope.", + "type": "string", + "const": "deny-read-container-file", + "markdownDescription": "Denies the read_container_file command without any pre-configured scope." + }, + { + "description": "Denies the rebuild_project_container command without any pre-configured scope.", + "type": "string", + "const": "deny-rebuild-project-container", + "markdownDescription": "Denies the rebuild_project_container command without any pre-configured scope." + }, + { + "description": "Denies the reconcile_project_statuses command without any pre-configured scope.", + "type": "string", + "const": "deny-reconcile-project-statuses", + "markdownDescription": "Denies the reconcile_project_statuses command without any pre-configured scope." + }, + { + "description": "Denies the regenerate_gateway_auth_token command without any pre-configured scope.", + "type": "string", + "const": "deny-regenerate-gateway-auth-token", + "markdownDescription": "Denies the regenerate_gateway_auth_token command without any pre-configured scope." + }, + { + "description": "Denies the regenerate_web_terminal_token command without any pre-configured scope.", + "type": "string", + "const": "deny-regenerate-web-terminal-token", + "markdownDescription": "Denies the regenerate_web_terminal_token command without any pre-configured scope." + }, + { + "description": "Denies the remove_project command without any pre-configured scope.", + "type": "string", + "const": "deny-remove-project", + "markdownDescription": "Denies the remove_project command without any pre-configured scope." + }, + { + "description": "Denies the remove_scheduled_task command without any pre-configured scope.", + "type": "string", + "const": "deny-remove-scheduled-task", + "markdownDescription": "Denies the remove_scheduled_task command without any pre-configured scope." + }, + { + "description": "Denies the rename_container_path command without any pre-configured scope.", + "type": "string", + "const": "deny-rename-container-path", + "markdownDescription": "Denies the rename_container_path command without any pre-configured scope." + }, + { + "description": "Denies the resume_session_command command without any pre-configured scope.", + "type": "string", + "const": "deny-resume-session-command", + "markdownDescription": "Denies the resume_session_command command without any pre-configured scope." + }, + { + "description": "Denies the rollback_migration command without any pre-configured scope.", + "type": "string", + "const": "deny-rollback-migration", + "markdownDescription": "Denies the rollback_migration command without any pre-configured scope." + }, + { + "description": "Denies the run_docker_install command without any pre-configured scope.", + "type": "string", + "const": "deny-run-docker-install", + "markdownDescription": "Denies the run_docker_install command without any pre-configured scope." + }, + { + "description": "Denies the run_scheduled_task_now command without any pre-configured scope.", + "type": "string", + "const": "deny-run-scheduled-task-now", + "markdownDescription": "Denies the run_scheduled_task_now command without any pre-configured scope." + }, + { + "description": "Denies the save_note command without any pre-configured scope.", + "type": "string", + "const": "deny-save-note", + "markdownDescription": "Denies the save_note command without any pre-configured scope." + }, + { + "description": "Denies the send_audio_data command without any pre-configured scope.", + "type": "string", + "const": "deny-send-audio-data", + "markdownDescription": "Denies the send_audio_data command without any pre-configured scope." + }, + { + "description": "Denies the set_auth_bridge_enabled command without any pre-configured scope.", + "type": "string", + "const": "deny-set-auth-bridge-enabled", + "markdownDescription": "Denies the set_auth_bridge_enabled command without any pre-configured scope." + }, + { + "description": "Denies the set_browser_view_enabled command without any pre-configured scope.", + "type": "string", + "const": "deny-set-browser-view-enabled", + "markdownDescription": "Denies the set_browser_view_enabled command without any pre-configured scope." + }, + { + "description": "Denies the set_browser_view_match_window command without any pre-configured scope.", + "type": "string", + "const": "deny-set-browser-view-match-window", + "markdownDescription": "Denies the set_browser_view_match_window command without any pre-configured scope." + }, + { + "description": "Denies the set_browser_view_popout_always_on_top command without any pre-configured scope.", + "type": "string", + "const": "deny-set-browser-view-popout-always-on-top", + "markdownDescription": "Denies the set_browser_view_popout_always_on_top command without any pre-configured scope." + }, + { + "description": "Denies the set_container_page_viewport command without any pre-configured scope.", + "type": "string", + "const": "deny-set-container-page-viewport", + "markdownDescription": "Denies the set_container_page_viewport command without any pre-configured scope." + }, + { + "description": "Denies the set_gateway_api_key command without any pre-configured scope.", + "type": "string", + "const": "deny-set-gateway-api-key", + "markdownDescription": "Denies the set_gateway_api_key command without any pre-configured scope." + }, + { + "description": "Denies the set_scheduled_task_enabled command without any pre-configured scope.", + "type": "string", + "const": "deny-set-scheduled-task-enabled", + "markdownDescription": "Denies the set_scheduled_task_enabled command without any pre-configured scope." + }, + { + "description": "Denies the start_audio_bridge command without any pre-configured scope.", + "type": "string", + "const": "deny-start-audio-bridge", + "markdownDescription": "Denies the start_audio_bridge command without any pre-configured scope." + }, + { + "description": "Denies the start_gateway command without any pre-configured scope.", + "type": "string", + "const": "deny-start-gateway", + "markdownDescription": "Denies the start_gateway command without any pre-configured scope." + }, + { + "description": "Denies the start_project_container command without any pre-configured scope.", + "type": "string", + "const": "deny-start-project-container", + "markdownDescription": "Denies the start_project_container command without any pre-configured scope." + }, + { + "description": "Denies the start_stt command without any pre-configured scope.", + "type": "string", + "const": "deny-start-stt", + "markdownDescription": "Denies the start_stt command without any pre-configured scope." + }, + { + "description": "Denies the start_web_terminal command without any pre-configured scope.", + "type": "string", + "const": "deny-start-web-terminal", + "markdownDescription": "Denies the start_web_terminal command without any pre-configured scope." + }, + { + "description": "Denies the stop_audio_bridge command without any pre-configured scope.", + "type": "string", + "const": "deny-stop-audio-bridge", + "markdownDescription": "Denies the stop_audio_bridge command without any pre-configured scope." + }, + { + "description": "Denies the stop_gateway command without any pre-configured scope.", + "type": "string", + "const": "deny-stop-gateway", + "markdownDescription": "Denies the stop_gateway command without any pre-configured scope." + }, + { + "description": "Denies the stop_project_container command without any pre-configured scope.", + "type": "string", + "const": "deny-stop-project-container", + "markdownDescription": "Denies the stop_project_container command without any pre-configured scope." + }, + { + "description": "Denies the stop_stt command without any pre-configured scope.", + "type": "string", + "const": "deny-stop-stt", + "markdownDescription": "Denies the stop_stt command without any pre-configured scope." + }, + { + "description": "Denies the stop_web_terminal command without any pre-configured scope.", + "type": "string", + "const": "deny-stop-web-terminal", + "markdownDescription": "Denies the stop_web_terminal command without any pre-configured scope." + }, + { + "description": "Denies the submit_claude_token_code command without any pre-configured scope.", + "type": "string", + "const": "deny-submit-claude-token-code", + "markdownDescription": "Denies the submit_claude_token_code command without any pre-configured scope." + }, + { + "description": "Denies the sweep_claude_token_snapshots command without any pre-configured scope.", + "type": "string", + "const": "deny-sweep-claude-token-snapshots", + "markdownDescription": "Denies the sweep_claude_token_snapshots command without any pre-configured scope." + }, + { + "description": "Denies the terminal_input command without any pre-configured scope.", + "type": "string", + "const": "deny-terminal-input", + "markdownDescription": "Denies the terminal_input command without any pre-configured scope." + }, + { + "description": "Denies the terminal_resize command without any pre-configured scope.", + "type": "string", + "const": "deny-terminal-resize", + "markdownDescription": "Denies the terminal_resize command without any pre-configured scope." + }, + { + "description": "Denies the transcribe_audio command without any pre-configured scope.", + "type": "string", + "const": "deny-transcribe-audio", + "markdownDescription": "Denies the transcribe_audio command without any pre-configured scope." + }, + { + "description": "Denies the update_project command without any pre-configured scope.", + "type": "string", + "const": "deny-update-project", + "markdownDescription": "Denies the update_project command without any pre-configured scope." + }, + { + "description": "Denies the update_scheduled_task command without any pre-configured scope.", + "type": "string", + "const": "deny-update-scheduled-task", + "markdownDescription": "Denies the update_scheduled_task command without any pre-configured scope." + }, + { + "description": "Denies the update_settings command without any pre-configured scope.", + "type": "string", + "const": "deny-update-settings", + "markdownDescription": "Denies the update_settings command without any pre-configured scope." + }, + { + "description": "Denies the upload_files_to_container command without any pre-configured scope.", + "type": "string", + "const": "deny-upload-files-to-container", + "markdownDescription": "Denies the upload_files_to_container command without any pre-configured scope." + }, + { + "description": "Denies the upload_host_file_to_terminal command without any pre-configured scope.", + "type": "string", + "const": "deny-upload-host-file-to-terminal", + "markdownDescription": "Denies the upload_host_file_to_terminal command without any pre-configured scope." + }, + { + "description": "Denies the viewer_choose_file command without any pre-configured scope.", + "type": "string", + "const": "deny-viewer-choose-file", + "markdownDescription": "Denies the viewer_choose_file command without any pre-configured scope." + }, + { + "description": "Denies the viewer_get_state command without any pre-configured scope.", + "type": "string", + "const": "deny-viewer-get-state", + "markdownDescription": "Denies the viewer_get_state command without any pre-configured scope." + }, + { + "description": "Denies the viewer_poll_file command without any pre-configured scope.", + "type": "string", + "const": "deny-viewer-poll-file", + "markdownDescription": "Denies the viewer_poll_file command without any pre-configured scope." + }, + { + "description": "Denies the viewer_read_file command without any pre-configured scope.", + "type": "string", + "const": "deny-viewer-read-file", + "markdownDescription": "Denies the viewer_read_file command without any pre-configured scope." + }, + { + "description": "Denies the viewer_write_file command without any pre-configured scope.", + "type": "string", + "const": "deny-viewer-write-file", + "markdownDescription": "Denies the viewer_write_file command without any pre-configured scope." + }, { "description": "Default core plugins set.\n#### This default permission set includes:\n\n- `core:path:default`\n- `core:event:default`\n- `core:window:default`\n- `core:webview:default`\n- `core:app:default`\n- `core:image:default`\n- `core:resources:default`\n- `core:menu:default`\n- `core:tray:default`", "type": "string", diff --git a/app/src-tauri/gen/schemas/linux-schema.json b/app/src-tauri/gen/schemas/linux-schema.json index 156390b..101ec55 100644 --- a/app/src-tauri/gen/schemas/linux-schema.json +++ b/app/src-tauri/gen/schemas/linux-schema.json @@ -344,6 +344,1386 @@ "Identifier": { "description": "Permission identifier", "oneOf": [ + { + "description": "Enables the acquire_claude_token command without any pre-configured scope.", + "type": "string", + "const": "allow-acquire-claude-token", + "markdownDescription": "Enables the acquire_claude_token command without any pre-configured scope." + }, + { + "description": "Enables the add_project command without any pre-configured scope.", + "type": "string", + "const": "allow-add-project", + "markdownDescription": "Enables the add_project command without any pre-configured scope." + }, + { + "description": "Enables the add_scheduled_task command without any pre-configured scope.", + "type": "string", + "const": "allow-add-scheduled-task", + "markdownDescription": "Enables the add_scheduled_task command without any pre-configured scope." + }, + { + "description": "Enables the apply_settings_import command without any pre-configured scope.", + "type": "string", + "const": "allow-apply-settings-import", + "markdownDescription": "Enables the apply_settings_import command without any pre-configured scope." + }, + { + "description": "Enables the aws_sso_refresh command without any pre-configured scope.", + "type": "string", + "const": "allow-aws-sso-refresh", + "markdownDescription": "Enables the aws_sso_refresh command without any pre-configured scope." + }, + { + "description": "Enables the build_gateway_image command without any pre-configured scope.", + "type": "string", + "const": "allow-build-gateway-image", + "markdownDescription": "Enables the build_gateway_image command without any pre-configured scope." + }, + { + "description": "Enables the build_image command without any pre-configured scope.", + "type": "string", + "const": "allow-build-image", + "markdownDescription": "Enables the build_image command without any pre-configured scope." + }, + { + "description": "Enables the build_stt_image command without any pre-configured scope.", + "type": "string", + "const": "allow-build-stt-image", + "markdownDescription": "Enables the build_stt_image command without any pre-configured scope." + }, + { + "description": "Enables the cancel_claude_token command without any pre-configured scope.", + "type": "string", + "const": "allow-cancel-claude-token", + "markdownDescription": "Enables the cancel_claude_token command without any pre-configured scope." + }, + { + "description": "Enables the check_browser_view_support command without any pre-configured scope.", + "type": "string", + "const": "allow-check-browser-view-support", + "markdownDescription": "Enables the check_browser_view_support command without any pre-configured scope." + }, + { + "description": "Enables the check_docker command without any pre-configured scope.", + "type": "string", + "const": "allow-check-docker", + "markdownDescription": "Enables the check_docker command without any pre-configured scope." + }, + { + "description": "Enables the check_for_updates command without any pre-configured scope.", + "type": "string", + "const": "allow-check-for-updates", + "markdownDescription": "Enables the check_for_updates command without any pre-configured scope." + }, + { + "description": "Enables the check_gateway_health command without any pre-configured scope.", + "type": "string", + "const": "allow-check-gateway-health", + "markdownDescription": "Enables the check_gateway_health command without any pre-configured scope." + }, + { + "description": "Enables the check_image_exists command without any pre-configured scope.", + "type": "string", + "const": "allow-check-image-exists", + "markdownDescription": "Enables the check_image_exists command without any pre-configured scope." + }, + { + "description": "Enables the check_image_update command without any pre-configured scope.", + "type": "string", + "const": "allow-check-image-update", + "markdownDescription": "Enables the check_image_update command without any pre-configured scope." + }, + { + "description": "Enables the clear_claude_token command without any pre-configured scope.", + "type": "string", + "const": "allow-clear-claude-token", + "markdownDescription": "Enables the clear_claude_token command without any pre-configured scope." + }, + { + "description": "Enables the clear_gateway_api_key command without any pre-configured scope.", + "type": "string", + "const": "allow-clear-gateway-api-key", + "markdownDescription": "Enables the clear_gateway_api_key command without any pre-configured scope." + }, + { + "description": "Enables the clear_scheduler_notifications command without any pre-configured scope.", + "type": "string", + "const": "allow-clear-scheduler-notifications", + "markdownDescription": "Enables the clear_scheduler_notifications command without any pre-configured scope." + }, + { + "description": "Enables the close_browser_view_popout command without any pre-configured scope.", + "type": "string", + "const": "allow-close-browser-view-popout", + "markdownDescription": "Enables the close_browser_view_popout command without any pre-configured scope." + }, + { + "description": "Enables the close_container_page command without any pre-configured scope.", + "type": "string", + "const": "allow-close-container-page", + "markdownDescription": "Enables the close_container_page command without any pre-configured scope." + }, + { + "description": "Enables the close_terminal_session command without any pre-configured scope.", + "type": "string", + "const": "allow-close-terminal-session", + "markdownDescription": "Enables the close_terminal_session command without any pre-configured scope." + }, + { + "description": "Enables the confirm_migration command without any pre-configured scope.", + "type": "string", + "const": "allow-confirm-migration", + "markdownDescription": "Enables the confirm_migration command without any pre-configured scope." + }, + { + "description": "Enables the create_container_directory command without any pre-configured scope.", + "type": "string", + "const": "allow-create-container-directory", + "markdownDescription": "Enables the create_container_directory command without any pre-configured scope." + }, + { + "description": "Enables the delete_note command without any pre-configured scope.", + "type": "string", + "const": "allow-delete-note", + "markdownDescription": "Enables the delete_note command without any pre-configured scope." + }, + { + "description": "Enables the detect_aws_config command without any pre-configured scope.", + "type": "string", + "const": "allow-detect-aws-config", + "markdownDescription": "Enables the detect_aws_config command without any pre-configured scope." + }, + { + "description": "Enables the detect_host_timezone command without any pre-configured scope.", + "type": "string", + "const": "allow-detect-host-timezone", + "markdownDescription": "Enables the detect_host_timezone command without any pre-configured scope." + }, + { + "description": "Enables the detect_install_options command without any pre-configured scope.", + "type": "string", + "const": "allow-detect-install-options", + "markdownDescription": "Enables the detect_install_options command without any pre-configured scope." + }, + { + "description": "Enables the download_container_backup command without any pre-configured scope.", + "type": "string", + "const": "allow-download-container-backup", + "markdownDescription": "Enables the download_container_backup command without any pre-configured scope." + }, + { + "description": "Enables the download_container_file command without any pre-configured scope.", + "type": "string", + "const": "allow-download-container-file", + "markdownDescription": "Enables the download_container_file command without any pre-configured scope." + }, + { + "description": "Enables the export_settings command without any pre-configured scope.", + "type": "string", + "const": "allow-export-settings", + "markdownDescription": "Enables the export_settings command without any pre-configured scope." + }, + { + "description": "Enables the get_app_version command without any pre-configured scope.", + "type": "string", + "const": "allow-get-app-version", + "markdownDescription": "Enables the get_app_version command without any pre-configured scope." + }, + { + "description": "Enables the get_auth_bridge_status command without any pre-configured scope.", + "type": "string", + "const": "allow-get-auth-bridge-status", + "markdownDescription": "Enables the get_auth_bridge_status command without any pre-configured scope." + }, + { + "description": "Enables the get_browser_view_match_window command without any pre-configured scope.", + "type": "string", + "const": "allow-get-browser-view-match-window", + "markdownDescription": "Enables the get_browser_view_match_window command without any pre-configured scope." + }, + { + "description": "Enables the get_browser_view_popout_state command without any pre-configured scope.", + "type": "string", + "const": "allow-get-browser-view-popout-state", + "markdownDescription": "Enables the get_browser_view_popout_state command without any pre-configured scope." + }, + { + "description": "Enables the get_browser_view_status command without any pre-configured scope.", + "type": "string", + "const": "allow-get-browser-view-status", + "markdownDescription": "Enables the get_browser_view_status command without any pre-configured scope." + }, + { + "description": "Enables the get_container_info command without any pre-configured scope.", + "type": "string", + "const": "allow-get-container-info", + "markdownDescription": "Enables the get_container_info command without any pre-configured scope." + }, + { + "description": "Enables the get_container_page_state command without any pre-configured scope.", + "type": "string", + "const": "allow-get-container-page-state", + "markdownDescription": "Enables the get_container_page_state command without any pre-configured scope." + }, + { + "description": "Enables the get_container_staleness command without any pre-configured scope.", + "type": "string", + "const": "allow-get-container-staleness", + "markdownDescription": "Enables the get_container_staleness command without any pre-configured scope." + }, + { + "description": "Enables the get_gateway_auth_token command without any pre-configured scope.", + "type": "string", + "const": "allow-get-gateway-auth-token", + "markdownDescription": "Enables the get_gateway_auth_token command without any pre-configured scope." + }, + { + "description": "Enables the get_gateway_status command without any pre-configured scope.", + "type": "string", + "const": "allow-get-gateway-status", + "markdownDescription": "Enables the get_gateway_status command without any pre-configured scope." + }, + { + "description": "Enables the get_help_content command without any pre-configured scope.", + "type": "string", + "const": "allow-get-help-content", + "markdownDescription": "Enables the get_help_content command without any pre-configured scope." + }, + { + "description": "Enables the get_migration_state command without any pre-configured scope.", + "type": "string", + "const": "allow-get-migration-state", + "markdownDescription": "Enables the get_migration_state command without any pre-configured scope." + }, + { + "description": "Enables the get_scheduled_task_log command without any pre-configured scope.", + "type": "string", + "const": "allow-get-scheduled-task-log", + "markdownDescription": "Enables the get_scheduled_task_log command without any pre-configured scope." + }, + { + "description": "Enables the get_scheduler_notifications command without any pre-configured scope.", + "type": "string", + "const": "allow-get-scheduler-notifications", + "markdownDescription": "Enables the get_scheduler_notifications command without any pre-configured scope." + }, + { + "description": "Enables the get_settings command without any pre-configured scope.", + "type": "string", + "const": "allow-get-settings", + "markdownDescription": "Enables the get_settings command without any pre-configured scope." + }, + { + "description": "Enables the get_stt_status command without any pre-configured scope.", + "type": "string", + "const": "allow-get-stt-status", + "markdownDescription": "Enables the get_stt_status command without any pre-configured scope." + }, + { + "description": "Enables the get_web_terminal_status command without any pre-configured scope.", + "type": "string", + "const": "allow-get-web-terminal-status", + "markdownDescription": "Enables the get_web_terminal_status command without any pre-configured scope." + }, + { + "description": "Enables the has_claude_token command without any pre-configured scope.", + "type": "string", + "const": "allow-has-claude-token", + "markdownDescription": "Enables the has_claude_token command without any pre-configured scope." + }, + { + "description": "Enables the inspect_ca_cert_path command without any pre-configured scope.", + "type": "string", + "const": "allow-inspect-ca-cert-path", + "markdownDescription": "Enables the inspect_ca_cert_path command without any pre-configured scope." + }, + { + "description": "Enables the install_browser_view_browser command without any pre-configured scope.", + "type": "string", + "const": "allow-install-browser-view-browser", + "markdownDescription": "Enables the install_browser_view_browser command without any pre-configured scope." + }, + { + "description": "Enables the install_browser_view_support command without any pre-configured scope.", + "type": "string", + "const": "allow-install-browser-view-support", + "markdownDescription": "Enables the install_browser_view_support command without any pre-configured scope." + }, + { + "description": "Enables the list_aws_profiles command without any pre-configured scope.", + "type": "string", + "const": "allow-list-aws-profiles", + "markdownDescription": "Enables the list_aws_profiles command without any pre-configured scope." + }, + { + "description": "Enables the list_claude_sessions command without any pre-configured scope.", + "type": "string", + "const": "allow-list-claude-sessions", + "markdownDescription": "Enables the list_claude_sessions command without any pre-configured scope." + }, + { + "description": "Enables the list_container_capabilities command without any pre-configured scope.", + "type": "string", + "const": "allow-list-container-capabilities", + "markdownDescription": "Enables the list_container_capabilities command without any pre-configured scope." + }, + { + "description": "Enables the list_container_files command without any pre-configured scope.", + "type": "string", + "const": "allow-list-container-files", + "markdownDescription": "Enables the list_container_files command without any pre-configured scope." + }, + { + "description": "Enables the list_notes command without any pre-configured scope.", + "type": "string", + "const": "allow-list-notes", + "markdownDescription": "Enables the list_notes command without any pre-configured scope." + }, + { + "description": "Enables the list_projects command without any pre-configured scope.", + "type": "string", + "const": "allow-list-projects", + "markdownDescription": "Enables the list_projects command without any pre-configured scope." + }, + { + "description": "Enables the list_scheduled_tasks command without any pre-configured scope.", + "type": "string", + "const": "allow-list-scheduled-tasks", + "markdownDescription": "Enables the list_scheduled_tasks command without any pre-configured scope." + }, + { + "description": "Enables the migrate_project_to_base command without any pre-configured scope.", + "type": "string", + "const": "allow-migrate-project-to-base", + "markdownDescription": "Enables the migrate_project_to_base command without any pre-configured scope." + }, + { + "description": "Enables the open_browser_view_popout command without any pre-configured scope.", + "type": "string", + "const": "allow-open-browser-view-popout", + "markdownDescription": "Enables the open_browser_view_popout command without any pre-configured scope." + }, + { + "description": "Enables the open_file_viewer command without any pre-configured scope.", + "type": "string", + "const": "allow-open-file-viewer", + "markdownDescription": "Enables the open_file_viewer command without any pre-configured scope." + }, + { + "description": "Enables the open_page_in_container_browser command without any pre-configured scope.", + "type": "string", + "const": "allow-open-page-in-container-browser", + "markdownDescription": "Enables the open_page_in_container_browser command without any pre-configured scope." + }, + { + "description": "Enables the open_terminal_session command without any pre-configured scope.", + "type": "string", + "const": "allow-open-terminal-session", + "markdownDescription": "Enables the open_terminal_session command without any pre-configured scope." + }, + { + "description": "Enables the open_url_external command without any pre-configured scope.", + "type": "string", + "const": "allow-open-url-external", + "markdownDescription": "Enables the open_url_external command without any pre-configured scope." + }, + { + "description": "Enables the paste_image_to_terminal command without any pre-configured scope.", + "type": "string", + "const": "allow-paste-image-to-terminal", + "markdownDescription": "Enables the paste_image_to_terminal command without any pre-configured scope." + }, + { + "description": "Enables the preview_settings_import command without any pre-configured scope.", + "type": "string", + "const": "allow-preview-settings-import", + "markdownDescription": "Enables the preview_settings_import command without any pre-configured scope." + }, + { + "description": "Enables the pull_gateway_image command without any pre-configured scope.", + "type": "string", + "const": "allow-pull-gateway-image", + "markdownDescription": "Enables the pull_gateway_image command without any pre-configured scope." + }, + { + "description": "Enables the pull_image command without any pre-configured scope.", + "type": "string", + "const": "allow-pull-image", + "markdownDescription": "Enables the pull_image command without any pre-configured scope." + }, + { + "description": "Enables the pull_stt_image command without any pre-configured scope.", + "type": "string", + "const": "allow-pull-stt-image", + "markdownDescription": "Enables the pull_stt_image command without any pre-configured scope." + }, + { + "description": "Enables the read_container_file command without any pre-configured scope.", + "type": "string", + "const": "allow-read-container-file", + "markdownDescription": "Enables the read_container_file command without any pre-configured scope." + }, + { + "description": "Enables the rebuild_project_container command without any pre-configured scope.", + "type": "string", + "const": "allow-rebuild-project-container", + "markdownDescription": "Enables the rebuild_project_container command without any pre-configured scope." + }, + { + "description": "Enables the reconcile_project_statuses command without any pre-configured scope.", + "type": "string", + "const": "allow-reconcile-project-statuses", + "markdownDescription": "Enables the reconcile_project_statuses command without any pre-configured scope." + }, + { + "description": "Enables the regenerate_gateway_auth_token command without any pre-configured scope.", + "type": "string", + "const": "allow-regenerate-gateway-auth-token", + "markdownDescription": "Enables the regenerate_gateway_auth_token command without any pre-configured scope." + }, + { + "description": "Enables the regenerate_web_terminal_token command without any pre-configured scope.", + "type": "string", + "const": "allow-regenerate-web-terminal-token", + "markdownDescription": "Enables the regenerate_web_terminal_token command without any pre-configured scope." + }, + { + "description": "Enables the remove_project command without any pre-configured scope.", + "type": "string", + "const": "allow-remove-project", + "markdownDescription": "Enables the remove_project command without any pre-configured scope." + }, + { + "description": "Enables the remove_scheduled_task command without any pre-configured scope.", + "type": "string", + "const": "allow-remove-scheduled-task", + "markdownDescription": "Enables the remove_scheduled_task command without any pre-configured scope." + }, + { + "description": "Enables the rename_container_path command without any pre-configured scope.", + "type": "string", + "const": "allow-rename-container-path", + "markdownDescription": "Enables the rename_container_path command without any pre-configured scope." + }, + { + "description": "Enables the resume_session_command command without any pre-configured scope.", + "type": "string", + "const": "allow-resume-session-command", + "markdownDescription": "Enables the resume_session_command command without any pre-configured scope." + }, + { + "description": "Enables the rollback_migration command without any pre-configured scope.", + "type": "string", + "const": "allow-rollback-migration", + "markdownDescription": "Enables the rollback_migration command without any pre-configured scope." + }, + { + "description": "Enables the run_docker_install command without any pre-configured scope.", + "type": "string", + "const": "allow-run-docker-install", + "markdownDescription": "Enables the run_docker_install command without any pre-configured scope." + }, + { + "description": "Enables the run_scheduled_task_now command without any pre-configured scope.", + "type": "string", + "const": "allow-run-scheduled-task-now", + "markdownDescription": "Enables the run_scheduled_task_now command without any pre-configured scope." + }, + { + "description": "Enables the save_note command without any pre-configured scope.", + "type": "string", + "const": "allow-save-note", + "markdownDescription": "Enables the save_note command without any pre-configured scope." + }, + { + "description": "Enables the send_audio_data command without any pre-configured scope.", + "type": "string", + "const": "allow-send-audio-data", + "markdownDescription": "Enables the send_audio_data command without any pre-configured scope." + }, + { + "description": "Enables the set_auth_bridge_enabled command without any pre-configured scope.", + "type": "string", + "const": "allow-set-auth-bridge-enabled", + "markdownDescription": "Enables the set_auth_bridge_enabled command without any pre-configured scope." + }, + { + "description": "Enables the set_browser_view_enabled command without any pre-configured scope.", + "type": "string", + "const": "allow-set-browser-view-enabled", + "markdownDescription": "Enables the set_browser_view_enabled command without any pre-configured scope." + }, + { + "description": "Enables the set_browser_view_match_window command without any pre-configured scope.", + "type": "string", + "const": "allow-set-browser-view-match-window", + "markdownDescription": "Enables the set_browser_view_match_window command without any pre-configured scope." + }, + { + "description": "Enables the set_browser_view_popout_always_on_top command without any pre-configured scope.", + "type": "string", + "const": "allow-set-browser-view-popout-always-on-top", + "markdownDescription": "Enables the set_browser_view_popout_always_on_top command without any pre-configured scope." + }, + { + "description": "Enables the set_container_page_viewport command without any pre-configured scope.", + "type": "string", + "const": "allow-set-container-page-viewport", + "markdownDescription": "Enables the set_container_page_viewport command without any pre-configured scope." + }, + { + "description": "Enables the set_gateway_api_key command without any pre-configured scope.", + "type": "string", + "const": "allow-set-gateway-api-key", + "markdownDescription": "Enables the set_gateway_api_key command without any pre-configured scope." + }, + { + "description": "Enables the set_scheduled_task_enabled command without any pre-configured scope.", + "type": "string", + "const": "allow-set-scheduled-task-enabled", + "markdownDescription": "Enables the set_scheduled_task_enabled command without any pre-configured scope." + }, + { + "description": "Enables the start_audio_bridge command without any pre-configured scope.", + "type": "string", + "const": "allow-start-audio-bridge", + "markdownDescription": "Enables the start_audio_bridge command without any pre-configured scope." + }, + { + "description": "Enables the start_gateway command without any pre-configured scope.", + "type": "string", + "const": "allow-start-gateway", + "markdownDescription": "Enables the start_gateway command without any pre-configured scope." + }, + { + "description": "Enables the start_project_container command without any pre-configured scope.", + "type": "string", + "const": "allow-start-project-container", + "markdownDescription": "Enables the start_project_container command without any pre-configured scope." + }, + { + "description": "Enables the start_stt command without any pre-configured scope.", + "type": "string", + "const": "allow-start-stt", + "markdownDescription": "Enables the start_stt command without any pre-configured scope." + }, + { + "description": "Enables the start_web_terminal command without any pre-configured scope.", + "type": "string", + "const": "allow-start-web-terminal", + "markdownDescription": "Enables the start_web_terminal command without any pre-configured scope." + }, + { + "description": "Enables the stop_audio_bridge command without any pre-configured scope.", + "type": "string", + "const": "allow-stop-audio-bridge", + "markdownDescription": "Enables the stop_audio_bridge command without any pre-configured scope." + }, + { + "description": "Enables the stop_gateway command without any pre-configured scope.", + "type": "string", + "const": "allow-stop-gateway", + "markdownDescription": "Enables the stop_gateway command without any pre-configured scope." + }, + { + "description": "Enables the stop_project_container command without any pre-configured scope.", + "type": "string", + "const": "allow-stop-project-container", + "markdownDescription": "Enables the stop_project_container command without any pre-configured scope." + }, + { + "description": "Enables the stop_stt command without any pre-configured scope.", + "type": "string", + "const": "allow-stop-stt", + "markdownDescription": "Enables the stop_stt command without any pre-configured scope." + }, + { + "description": "Enables the stop_web_terminal command without any pre-configured scope.", + "type": "string", + "const": "allow-stop-web-terminal", + "markdownDescription": "Enables the stop_web_terminal command without any pre-configured scope." + }, + { + "description": "Enables the submit_claude_token_code command without any pre-configured scope.", + "type": "string", + "const": "allow-submit-claude-token-code", + "markdownDescription": "Enables the submit_claude_token_code command without any pre-configured scope." + }, + { + "description": "Enables the sweep_claude_token_snapshots command without any pre-configured scope.", + "type": "string", + "const": "allow-sweep-claude-token-snapshots", + "markdownDescription": "Enables the sweep_claude_token_snapshots command without any pre-configured scope." + }, + { + "description": "Enables the terminal_input command without any pre-configured scope.", + "type": "string", + "const": "allow-terminal-input", + "markdownDescription": "Enables the terminal_input command without any pre-configured scope." + }, + { + "description": "Enables the terminal_resize command without any pre-configured scope.", + "type": "string", + "const": "allow-terminal-resize", + "markdownDescription": "Enables the terminal_resize command without any pre-configured scope." + }, + { + "description": "Enables the transcribe_audio command without any pre-configured scope.", + "type": "string", + "const": "allow-transcribe-audio", + "markdownDescription": "Enables the transcribe_audio command without any pre-configured scope." + }, + { + "description": "Enables the update_project command without any pre-configured scope.", + "type": "string", + "const": "allow-update-project", + "markdownDescription": "Enables the update_project command without any pre-configured scope." + }, + { + "description": "Enables the update_scheduled_task command without any pre-configured scope.", + "type": "string", + "const": "allow-update-scheduled-task", + "markdownDescription": "Enables the update_scheduled_task command without any pre-configured scope." + }, + { + "description": "Enables the update_settings command without any pre-configured scope.", + "type": "string", + "const": "allow-update-settings", + "markdownDescription": "Enables the update_settings command without any pre-configured scope." + }, + { + "description": "Enables the upload_files_to_container command without any pre-configured scope.", + "type": "string", + "const": "allow-upload-files-to-container", + "markdownDescription": "Enables the upload_files_to_container command without any pre-configured scope." + }, + { + "description": "Enables the upload_host_file_to_terminal command without any pre-configured scope.", + "type": "string", + "const": "allow-upload-host-file-to-terminal", + "markdownDescription": "Enables the upload_host_file_to_terminal command without any pre-configured scope." + }, + { + "description": "Enables the viewer_choose_file command without any pre-configured scope.", + "type": "string", + "const": "allow-viewer-choose-file", + "markdownDescription": "Enables the viewer_choose_file command without any pre-configured scope." + }, + { + "description": "Enables the viewer_get_state command without any pre-configured scope.", + "type": "string", + "const": "allow-viewer-get-state", + "markdownDescription": "Enables the viewer_get_state command without any pre-configured scope." + }, + { + "description": "Enables the viewer_poll_file command without any pre-configured scope.", + "type": "string", + "const": "allow-viewer-poll-file", + "markdownDescription": "Enables the viewer_poll_file command without any pre-configured scope." + }, + { + "description": "Enables the viewer_read_file command without any pre-configured scope.", + "type": "string", + "const": "allow-viewer-read-file", + "markdownDescription": "Enables the viewer_read_file command without any pre-configured scope." + }, + { + "description": "Enables the viewer_write_file command without any pre-configured scope.", + "type": "string", + "const": "allow-viewer-write-file", + "markdownDescription": "Enables the viewer_write_file command without any pre-configured scope." + }, + { + "description": "Denies the acquire_claude_token command without any pre-configured scope.", + "type": "string", + "const": "deny-acquire-claude-token", + "markdownDescription": "Denies the acquire_claude_token command without any pre-configured scope." + }, + { + "description": "Denies the add_project command without any pre-configured scope.", + "type": "string", + "const": "deny-add-project", + "markdownDescription": "Denies the add_project command without any pre-configured scope." + }, + { + "description": "Denies the add_scheduled_task command without any pre-configured scope.", + "type": "string", + "const": "deny-add-scheduled-task", + "markdownDescription": "Denies the add_scheduled_task command without any pre-configured scope." + }, + { + "description": "Denies the apply_settings_import command without any pre-configured scope.", + "type": "string", + "const": "deny-apply-settings-import", + "markdownDescription": "Denies the apply_settings_import command without any pre-configured scope." + }, + { + "description": "Denies the aws_sso_refresh command without any pre-configured scope.", + "type": "string", + "const": "deny-aws-sso-refresh", + "markdownDescription": "Denies the aws_sso_refresh command without any pre-configured scope." + }, + { + "description": "Denies the build_gateway_image command without any pre-configured scope.", + "type": "string", + "const": "deny-build-gateway-image", + "markdownDescription": "Denies the build_gateway_image command without any pre-configured scope." + }, + { + "description": "Denies the build_image command without any pre-configured scope.", + "type": "string", + "const": "deny-build-image", + "markdownDescription": "Denies the build_image command without any pre-configured scope." + }, + { + "description": "Denies the build_stt_image command without any pre-configured scope.", + "type": "string", + "const": "deny-build-stt-image", + "markdownDescription": "Denies the build_stt_image command without any pre-configured scope." + }, + { + "description": "Denies the cancel_claude_token command without any pre-configured scope.", + "type": "string", + "const": "deny-cancel-claude-token", + "markdownDescription": "Denies the cancel_claude_token command without any pre-configured scope." + }, + { + "description": "Denies the check_browser_view_support command without any pre-configured scope.", + "type": "string", + "const": "deny-check-browser-view-support", + "markdownDescription": "Denies the check_browser_view_support command without any pre-configured scope." + }, + { + "description": "Denies the check_docker command without any pre-configured scope.", + "type": "string", + "const": "deny-check-docker", + "markdownDescription": "Denies the check_docker command without any pre-configured scope." + }, + { + "description": "Denies the check_for_updates command without any pre-configured scope.", + "type": "string", + "const": "deny-check-for-updates", + "markdownDescription": "Denies the check_for_updates command without any pre-configured scope." + }, + { + "description": "Denies the check_gateway_health command without any pre-configured scope.", + "type": "string", + "const": "deny-check-gateway-health", + "markdownDescription": "Denies the check_gateway_health command without any pre-configured scope." + }, + { + "description": "Denies the check_image_exists command without any pre-configured scope.", + "type": "string", + "const": "deny-check-image-exists", + "markdownDescription": "Denies the check_image_exists command without any pre-configured scope." + }, + { + "description": "Denies the check_image_update command without any pre-configured scope.", + "type": "string", + "const": "deny-check-image-update", + "markdownDescription": "Denies the check_image_update command without any pre-configured scope." + }, + { + "description": "Denies the clear_claude_token command without any pre-configured scope.", + "type": "string", + "const": "deny-clear-claude-token", + "markdownDescription": "Denies the clear_claude_token command without any pre-configured scope." + }, + { + "description": "Denies the clear_gateway_api_key command without any pre-configured scope.", + "type": "string", + "const": "deny-clear-gateway-api-key", + "markdownDescription": "Denies the clear_gateway_api_key command without any pre-configured scope." + }, + { + "description": "Denies the clear_scheduler_notifications command without any pre-configured scope.", + "type": "string", + "const": "deny-clear-scheduler-notifications", + "markdownDescription": "Denies the clear_scheduler_notifications command without any pre-configured scope." + }, + { + "description": "Denies the close_browser_view_popout command without any pre-configured scope.", + "type": "string", + "const": "deny-close-browser-view-popout", + "markdownDescription": "Denies the close_browser_view_popout command without any pre-configured scope." + }, + { + "description": "Denies the close_container_page command without any pre-configured scope.", + "type": "string", + "const": "deny-close-container-page", + "markdownDescription": "Denies the close_container_page command without any pre-configured scope." + }, + { + "description": "Denies the close_terminal_session command without any pre-configured scope.", + "type": "string", + "const": "deny-close-terminal-session", + "markdownDescription": "Denies the close_terminal_session command without any pre-configured scope." + }, + { + "description": "Denies the confirm_migration command without any pre-configured scope.", + "type": "string", + "const": "deny-confirm-migration", + "markdownDescription": "Denies the confirm_migration command without any pre-configured scope." + }, + { + "description": "Denies the create_container_directory command without any pre-configured scope.", + "type": "string", + "const": "deny-create-container-directory", + "markdownDescription": "Denies the create_container_directory command without any pre-configured scope." + }, + { + "description": "Denies the delete_note command without any pre-configured scope.", + "type": "string", + "const": "deny-delete-note", + "markdownDescription": "Denies the delete_note command without any pre-configured scope." + }, + { + "description": "Denies the detect_aws_config command without any pre-configured scope.", + "type": "string", + "const": "deny-detect-aws-config", + "markdownDescription": "Denies the detect_aws_config command without any pre-configured scope." + }, + { + "description": "Denies the detect_host_timezone command without any pre-configured scope.", + "type": "string", + "const": "deny-detect-host-timezone", + "markdownDescription": "Denies the detect_host_timezone command without any pre-configured scope." + }, + { + "description": "Denies the detect_install_options command without any pre-configured scope.", + "type": "string", + "const": "deny-detect-install-options", + "markdownDescription": "Denies the detect_install_options command without any pre-configured scope." + }, + { + "description": "Denies the download_container_backup command without any pre-configured scope.", + "type": "string", + "const": "deny-download-container-backup", + "markdownDescription": "Denies the download_container_backup command without any pre-configured scope." + }, + { + "description": "Denies the download_container_file command without any pre-configured scope.", + "type": "string", + "const": "deny-download-container-file", + "markdownDescription": "Denies the download_container_file command without any pre-configured scope." + }, + { + "description": "Denies the export_settings command without any pre-configured scope.", + "type": "string", + "const": "deny-export-settings", + "markdownDescription": "Denies the export_settings command without any pre-configured scope." + }, + { + "description": "Denies the get_app_version command without any pre-configured scope.", + "type": "string", + "const": "deny-get-app-version", + "markdownDescription": "Denies the get_app_version command without any pre-configured scope." + }, + { + "description": "Denies the get_auth_bridge_status command without any pre-configured scope.", + "type": "string", + "const": "deny-get-auth-bridge-status", + "markdownDescription": "Denies the get_auth_bridge_status command without any pre-configured scope." + }, + { + "description": "Denies the get_browser_view_match_window command without any pre-configured scope.", + "type": "string", + "const": "deny-get-browser-view-match-window", + "markdownDescription": "Denies the get_browser_view_match_window command without any pre-configured scope." + }, + { + "description": "Denies the get_browser_view_popout_state command without any pre-configured scope.", + "type": "string", + "const": "deny-get-browser-view-popout-state", + "markdownDescription": "Denies the get_browser_view_popout_state command without any pre-configured scope." + }, + { + "description": "Denies the get_browser_view_status command without any pre-configured scope.", + "type": "string", + "const": "deny-get-browser-view-status", + "markdownDescription": "Denies the get_browser_view_status command without any pre-configured scope." + }, + { + "description": "Denies the get_container_info command without any pre-configured scope.", + "type": "string", + "const": "deny-get-container-info", + "markdownDescription": "Denies the get_container_info command without any pre-configured scope." + }, + { + "description": "Denies the get_container_page_state command without any pre-configured scope.", + "type": "string", + "const": "deny-get-container-page-state", + "markdownDescription": "Denies the get_container_page_state command without any pre-configured scope." + }, + { + "description": "Denies the get_container_staleness command without any pre-configured scope.", + "type": "string", + "const": "deny-get-container-staleness", + "markdownDescription": "Denies the get_container_staleness command without any pre-configured scope." + }, + { + "description": "Denies the get_gateway_auth_token command without any pre-configured scope.", + "type": "string", + "const": "deny-get-gateway-auth-token", + "markdownDescription": "Denies the get_gateway_auth_token command without any pre-configured scope." + }, + { + "description": "Denies the get_gateway_status command without any pre-configured scope.", + "type": "string", + "const": "deny-get-gateway-status", + "markdownDescription": "Denies the get_gateway_status command without any pre-configured scope." + }, + { + "description": "Denies the get_help_content command without any pre-configured scope.", + "type": "string", + "const": "deny-get-help-content", + "markdownDescription": "Denies the get_help_content command without any pre-configured scope." + }, + { + "description": "Denies the get_migration_state command without any pre-configured scope.", + "type": "string", + "const": "deny-get-migration-state", + "markdownDescription": "Denies the get_migration_state command without any pre-configured scope." + }, + { + "description": "Denies the get_scheduled_task_log command without any pre-configured scope.", + "type": "string", + "const": "deny-get-scheduled-task-log", + "markdownDescription": "Denies the get_scheduled_task_log command without any pre-configured scope." + }, + { + "description": "Denies the get_scheduler_notifications command without any pre-configured scope.", + "type": "string", + "const": "deny-get-scheduler-notifications", + "markdownDescription": "Denies the get_scheduler_notifications command without any pre-configured scope." + }, + { + "description": "Denies the get_settings command without any pre-configured scope.", + "type": "string", + "const": "deny-get-settings", + "markdownDescription": "Denies the get_settings command without any pre-configured scope." + }, + { + "description": "Denies the get_stt_status command without any pre-configured scope.", + "type": "string", + "const": "deny-get-stt-status", + "markdownDescription": "Denies the get_stt_status command without any pre-configured scope." + }, + { + "description": "Denies the get_web_terminal_status command without any pre-configured scope.", + "type": "string", + "const": "deny-get-web-terminal-status", + "markdownDescription": "Denies the get_web_terminal_status command without any pre-configured scope." + }, + { + "description": "Denies the has_claude_token command without any pre-configured scope.", + "type": "string", + "const": "deny-has-claude-token", + "markdownDescription": "Denies the has_claude_token command without any pre-configured scope." + }, + { + "description": "Denies the inspect_ca_cert_path command without any pre-configured scope.", + "type": "string", + "const": "deny-inspect-ca-cert-path", + "markdownDescription": "Denies the inspect_ca_cert_path command without any pre-configured scope." + }, + { + "description": "Denies the install_browser_view_browser command without any pre-configured scope.", + "type": "string", + "const": "deny-install-browser-view-browser", + "markdownDescription": "Denies the install_browser_view_browser command without any pre-configured scope." + }, + { + "description": "Denies the install_browser_view_support command without any pre-configured scope.", + "type": "string", + "const": "deny-install-browser-view-support", + "markdownDescription": "Denies the install_browser_view_support command without any pre-configured scope." + }, + { + "description": "Denies the list_aws_profiles command without any pre-configured scope.", + "type": "string", + "const": "deny-list-aws-profiles", + "markdownDescription": "Denies the list_aws_profiles command without any pre-configured scope." + }, + { + "description": "Denies the list_claude_sessions command without any pre-configured scope.", + "type": "string", + "const": "deny-list-claude-sessions", + "markdownDescription": "Denies the list_claude_sessions command without any pre-configured scope." + }, + { + "description": "Denies the list_container_capabilities command without any pre-configured scope.", + "type": "string", + "const": "deny-list-container-capabilities", + "markdownDescription": "Denies the list_container_capabilities command without any pre-configured scope." + }, + { + "description": "Denies the list_container_files command without any pre-configured scope.", + "type": "string", + "const": "deny-list-container-files", + "markdownDescription": "Denies the list_container_files command without any pre-configured scope." + }, + { + "description": "Denies the list_notes command without any pre-configured scope.", + "type": "string", + "const": "deny-list-notes", + "markdownDescription": "Denies the list_notes command without any pre-configured scope." + }, + { + "description": "Denies the list_projects command without any pre-configured scope.", + "type": "string", + "const": "deny-list-projects", + "markdownDescription": "Denies the list_projects command without any pre-configured scope." + }, + { + "description": "Denies the list_scheduled_tasks command without any pre-configured scope.", + "type": "string", + "const": "deny-list-scheduled-tasks", + "markdownDescription": "Denies the list_scheduled_tasks command without any pre-configured scope." + }, + { + "description": "Denies the migrate_project_to_base command without any pre-configured scope.", + "type": "string", + "const": "deny-migrate-project-to-base", + "markdownDescription": "Denies the migrate_project_to_base command without any pre-configured scope." + }, + { + "description": "Denies the open_browser_view_popout command without any pre-configured scope.", + "type": "string", + "const": "deny-open-browser-view-popout", + "markdownDescription": "Denies the open_browser_view_popout command without any pre-configured scope." + }, + { + "description": "Denies the open_file_viewer command without any pre-configured scope.", + "type": "string", + "const": "deny-open-file-viewer", + "markdownDescription": "Denies the open_file_viewer command without any pre-configured scope." + }, + { + "description": "Denies the open_page_in_container_browser command without any pre-configured scope.", + "type": "string", + "const": "deny-open-page-in-container-browser", + "markdownDescription": "Denies the open_page_in_container_browser command without any pre-configured scope." + }, + { + "description": "Denies the open_terminal_session command without any pre-configured scope.", + "type": "string", + "const": "deny-open-terminal-session", + "markdownDescription": "Denies the open_terminal_session command without any pre-configured scope." + }, + { + "description": "Denies the open_url_external command without any pre-configured scope.", + "type": "string", + "const": "deny-open-url-external", + "markdownDescription": "Denies the open_url_external command without any pre-configured scope." + }, + { + "description": "Denies the paste_image_to_terminal command without any pre-configured scope.", + "type": "string", + "const": "deny-paste-image-to-terminal", + "markdownDescription": "Denies the paste_image_to_terminal command without any pre-configured scope." + }, + { + "description": "Denies the preview_settings_import command without any pre-configured scope.", + "type": "string", + "const": "deny-preview-settings-import", + "markdownDescription": "Denies the preview_settings_import command without any pre-configured scope." + }, + { + "description": "Denies the pull_gateway_image command without any pre-configured scope.", + "type": "string", + "const": "deny-pull-gateway-image", + "markdownDescription": "Denies the pull_gateway_image command without any pre-configured scope." + }, + { + "description": "Denies the pull_image command without any pre-configured scope.", + "type": "string", + "const": "deny-pull-image", + "markdownDescription": "Denies the pull_image command without any pre-configured scope." + }, + { + "description": "Denies the pull_stt_image command without any pre-configured scope.", + "type": "string", + "const": "deny-pull-stt-image", + "markdownDescription": "Denies the pull_stt_image command without any pre-configured scope." + }, + { + "description": "Denies the read_container_file command without any pre-configured scope.", + "type": "string", + "const": "deny-read-container-file", + "markdownDescription": "Denies the read_container_file command without any pre-configured scope." + }, + { + "description": "Denies the rebuild_project_container command without any pre-configured scope.", + "type": "string", + "const": "deny-rebuild-project-container", + "markdownDescription": "Denies the rebuild_project_container command without any pre-configured scope." + }, + { + "description": "Denies the reconcile_project_statuses command without any pre-configured scope.", + "type": "string", + "const": "deny-reconcile-project-statuses", + "markdownDescription": "Denies the reconcile_project_statuses command without any pre-configured scope." + }, + { + "description": "Denies the regenerate_gateway_auth_token command without any pre-configured scope.", + "type": "string", + "const": "deny-regenerate-gateway-auth-token", + "markdownDescription": "Denies the regenerate_gateway_auth_token command without any pre-configured scope." + }, + { + "description": "Denies the regenerate_web_terminal_token command without any pre-configured scope.", + "type": "string", + "const": "deny-regenerate-web-terminal-token", + "markdownDescription": "Denies the regenerate_web_terminal_token command without any pre-configured scope." + }, + { + "description": "Denies the remove_project command without any pre-configured scope.", + "type": "string", + "const": "deny-remove-project", + "markdownDescription": "Denies the remove_project command without any pre-configured scope." + }, + { + "description": "Denies the remove_scheduled_task command without any pre-configured scope.", + "type": "string", + "const": "deny-remove-scheduled-task", + "markdownDescription": "Denies the remove_scheduled_task command without any pre-configured scope." + }, + { + "description": "Denies the rename_container_path command without any pre-configured scope.", + "type": "string", + "const": "deny-rename-container-path", + "markdownDescription": "Denies the rename_container_path command without any pre-configured scope." + }, + { + "description": "Denies the resume_session_command command without any pre-configured scope.", + "type": "string", + "const": "deny-resume-session-command", + "markdownDescription": "Denies the resume_session_command command without any pre-configured scope." + }, + { + "description": "Denies the rollback_migration command without any pre-configured scope.", + "type": "string", + "const": "deny-rollback-migration", + "markdownDescription": "Denies the rollback_migration command without any pre-configured scope." + }, + { + "description": "Denies the run_docker_install command without any pre-configured scope.", + "type": "string", + "const": "deny-run-docker-install", + "markdownDescription": "Denies the run_docker_install command without any pre-configured scope." + }, + { + "description": "Denies the run_scheduled_task_now command without any pre-configured scope.", + "type": "string", + "const": "deny-run-scheduled-task-now", + "markdownDescription": "Denies the run_scheduled_task_now command without any pre-configured scope." + }, + { + "description": "Denies the save_note command without any pre-configured scope.", + "type": "string", + "const": "deny-save-note", + "markdownDescription": "Denies the save_note command without any pre-configured scope." + }, + { + "description": "Denies the send_audio_data command without any pre-configured scope.", + "type": "string", + "const": "deny-send-audio-data", + "markdownDescription": "Denies the send_audio_data command without any pre-configured scope." + }, + { + "description": "Denies the set_auth_bridge_enabled command without any pre-configured scope.", + "type": "string", + "const": "deny-set-auth-bridge-enabled", + "markdownDescription": "Denies the set_auth_bridge_enabled command without any pre-configured scope." + }, + { + "description": "Denies the set_browser_view_enabled command without any pre-configured scope.", + "type": "string", + "const": "deny-set-browser-view-enabled", + "markdownDescription": "Denies the set_browser_view_enabled command without any pre-configured scope." + }, + { + "description": "Denies the set_browser_view_match_window command without any pre-configured scope.", + "type": "string", + "const": "deny-set-browser-view-match-window", + "markdownDescription": "Denies the set_browser_view_match_window command without any pre-configured scope." + }, + { + "description": "Denies the set_browser_view_popout_always_on_top command without any pre-configured scope.", + "type": "string", + "const": "deny-set-browser-view-popout-always-on-top", + "markdownDescription": "Denies the set_browser_view_popout_always_on_top command without any pre-configured scope." + }, + { + "description": "Denies the set_container_page_viewport command without any pre-configured scope.", + "type": "string", + "const": "deny-set-container-page-viewport", + "markdownDescription": "Denies the set_container_page_viewport command without any pre-configured scope." + }, + { + "description": "Denies the set_gateway_api_key command without any pre-configured scope.", + "type": "string", + "const": "deny-set-gateway-api-key", + "markdownDescription": "Denies the set_gateway_api_key command without any pre-configured scope." + }, + { + "description": "Denies the set_scheduled_task_enabled command without any pre-configured scope.", + "type": "string", + "const": "deny-set-scheduled-task-enabled", + "markdownDescription": "Denies the set_scheduled_task_enabled command without any pre-configured scope." + }, + { + "description": "Denies the start_audio_bridge command without any pre-configured scope.", + "type": "string", + "const": "deny-start-audio-bridge", + "markdownDescription": "Denies the start_audio_bridge command without any pre-configured scope." + }, + { + "description": "Denies the start_gateway command without any pre-configured scope.", + "type": "string", + "const": "deny-start-gateway", + "markdownDescription": "Denies the start_gateway command without any pre-configured scope." + }, + { + "description": "Denies the start_project_container command without any pre-configured scope.", + "type": "string", + "const": "deny-start-project-container", + "markdownDescription": "Denies the start_project_container command without any pre-configured scope." + }, + { + "description": "Denies the start_stt command without any pre-configured scope.", + "type": "string", + "const": "deny-start-stt", + "markdownDescription": "Denies the start_stt command without any pre-configured scope." + }, + { + "description": "Denies the start_web_terminal command without any pre-configured scope.", + "type": "string", + "const": "deny-start-web-terminal", + "markdownDescription": "Denies the start_web_terminal command without any pre-configured scope." + }, + { + "description": "Denies the stop_audio_bridge command without any pre-configured scope.", + "type": "string", + "const": "deny-stop-audio-bridge", + "markdownDescription": "Denies the stop_audio_bridge command without any pre-configured scope." + }, + { + "description": "Denies the stop_gateway command without any pre-configured scope.", + "type": "string", + "const": "deny-stop-gateway", + "markdownDescription": "Denies the stop_gateway command without any pre-configured scope." + }, + { + "description": "Denies the stop_project_container command without any pre-configured scope.", + "type": "string", + "const": "deny-stop-project-container", + "markdownDescription": "Denies the stop_project_container command without any pre-configured scope." + }, + { + "description": "Denies the stop_stt command without any pre-configured scope.", + "type": "string", + "const": "deny-stop-stt", + "markdownDescription": "Denies the stop_stt command without any pre-configured scope." + }, + { + "description": "Denies the stop_web_terminal command without any pre-configured scope.", + "type": "string", + "const": "deny-stop-web-terminal", + "markdownDescription": "Denies the stop_web_terminal command without any pre-configured scope." + }, + { + "description": "Denies the submit_claude_token_code command without any pre-configured scope.", + "type": "string", + "const": "deny-submit-claude-token-code", + "markdownDescription": "Denies the submit_claude_token_code command without any pre-configured scope." + }, + { + "description": "Denies the sweep_claude_token_snapshots command without any pre-configured scope.", + "type": "string", + "const": "deny-sweep-claude-token-snapshots", + "markdownDescription": "Denies the sweep_claude_token_snapshots command without any pre-configured scope." + }, + { + "description": "Denies the terminal_input command without any pre-configured scope.", + "type": "string", + "const": "deny-terminal-input", + "markdownDescription": "Denies the terminal_input command without any pre-configured scope." + }, + { + "description": "Denies the terminal_resize command without any pre-configured scope.", + "type": "string", + "const": "deny-terminal-resize", + "markdownDescription": "Denies the terminal_resize command without any pre-configured scope." + }, + { + "description": "Denies the transcribe_audio command without any pre-configured scope.", + "type": "string", + "const": "deny-transcribe-audio", + "markdownDescription": "Denies the transcribe_audio command without any pre-configured scope." + }, + { + "description": "Denies the update_project command without any pre-configured scope.", + "type": "string", + "const": "deny-update-project", + "markdownDescription": "Denies the update_project command without any pre-configured scope." + }, + { + "description": "Denies the update_scheduled_task command without any pre-configured scope.", + "type": "string", + "const": "deny-update-scheduled-task", + "markdownDescription": "Denies the update_scheduled_task command without any pre-configured scope." + }, + { + "description": "Denies the update_settings command without any pre-configured scope.", + "type": "string", + "const": "deny-update-settings", + "markdownDescription": "Denies the update_settings command without any pre-configured scope." + }, + { + "description": "Denies the upload_files_to_container command without any pre-configured scope.", + "type": "string", + "const": "deny-upload-files-to-container", + "markdownDescription": "Denies the upload_files_to_container command without any pre-configured scope." + }, + { + "description": "Denies the upload_host_file_to_terminal command without any pre-configured scope.", + "type": "string", + "const": "deny-upload-host-file-to-terminal", + "markdownDescription": "Denies the upload_host_file_to_terminal command without any pre-configured scope." + }, + { + "description": "Denies the viewer_choose_file command without any pre-configured scope.", + "type": "string", + "const": "deny-viewer-choose-file", + "markdownDescription": "Denies the viewer_choose_file command without any pre-configured scope." + }, + { + "description": "Denies the viewer_get_state command without any pre-configured scope.", + "type": "string", + "const": "deny-viewer-get-state", + "markdownDescription": "Denies the viewer_get_state command without any pre-configured scope." + }, + { + "description": "Denies the viewer_poll_file command without any pre-configured scope.", + "type": "string", + "const": "deny-viewer-poll-file", + "markdownDescription": "Denies the viewer_poll_file command without any pre-configured scope." + }, + { + "description": "Denies the viewer_read_file command without any pre-configured scope.", + "type": "string", + "const": "deny-viewer-read-file", + "markdownDescription": "Denies the viewer_read_file command without any pre-configured scope." + }, + { + "description": "Denies the viewer_write_file command without any pre-configured scope.", + "type": "string", + "const": "deny-viewer-write-file", + "markdownDescription": "Denies the viewer_write_file command without any pre-configured scope." + }, { "description": "Default core plugins set.\n#### This default permission set includes:\n\n- `core:path:default`\n- `core:event:default`\n- `core:window:default`\n- `core:webview:default`\n- `core:app:default`\n- `core:image:default`\n- `core:resources:default`\n- `core:menu:default`\n- `core:tray:default`", "type": "string", diff --git a/app/src-tauri/src/file_viewer/mod.rs b/app/src-tauri/src/file_viewer/mod.rs index d07272e..a9aa5a2 100644 --- a/app/src-tauri/src/file_viewer/mod.rs +++ b/app/src-tauri/src/file_viewer/mod.rs @@ -73,6 +73,14 @@ mod tests { assert_eq!( permissions, vec![ + // App commands (bare): the five viewer commands, and nothing else — build.rs + // refuses any other bare grant in this file. + "allow-viewer-choose-file", + "allow-viewer-get-state", + "allow-viewer-poll-file", + "allow-viewer-read-file", + "allow-viewer-write-file", + // Plugin/core grants, unchanged. "core:event:allow-listen", "core:event:allow-unlisten", "core:webview:allow-internal-toggle-devtools", diff --git a/app/src-tauri/src/lib.rs b/app/src-tauri/src/lib.rs index 9edb0a5..3226d3c 100644 --- a/app/src-tauri/src/lib.rs +++ b/app/src-tauri/src/lib.rs @@ -912,7 +912,10 @@ mod tests { }) .collect(); - let mut sorted = listed.clone(); + // Plugin and core grants: the exact reviewed list, unchanged by the lockdown. + let (bare, prefixed): (Vec, Vec) = + listed.iter().cloned().partition(|g| !g.contains(':')); + let mut sorted = prefixed; sorted.sort(); let mut expected = vec![ "core:event:allow-listen", @@ -924,11 +927,31 @@ mod tests { expected.sort(); assert_eq!( sorted, expected, - "the capability set changed. That is allowed — but it is the IPC \ + "the plugin/core capability set changed. That is allowed — but it is the IPC \ surface a compromised webview can call, so update this list \ deliberately rather than to make the test pass." ); + // App commands: since build.rs declares the AppManifest, the bare `allow-*` grants + // are the complete list of app commands the main window may call. `build.rs` already + // fails the build when they disagree with generate_handler!; this keeps the reviewed + // rule ("every non-viewer command, exactly") visible where the plugin census lives. + let registered = crate::command_census::registered_commands(include_str!("lib.rs")) + .expect("lib.rs should contain a generate_handler! list"); + let mut expected_bare: Vec = registered + .iter() + .filter(|c| crate::command_census::expected_windows(c) == ["main"]) + .map(|c| crate::command_census::allow_permission(c)) + .collect(); + expected_bare.sort(); + let mut bare = bare; + bare.sort(); + assert_eq!( + bare, expected_bare, + "default.json's app-command grants must be exactly the main-window commands" + ); + assert!(bare.len() >= 100, "the census found {} app grants; the parser has stopped seeing the list", bare.len()); + // Belt and braces: the `*:default` aliases are the specific trap here, // because they expand to a set the file never spells out. `store:*` in // particular was an arbitrary host-file read/write primitive.