Huakun Shen 99b940b03b
File Transfer (Local Network) (#34)
* feat: implement a file streamer for file share

Only server with hardcoded file path

* bump valibot version

* feat: add server-info gRPC module to serve server info

* feat: add ssl cert and public key to peers state

When peer is online, KK always have know its cert and pub key for future secure communication

* feat: add grpc ts package

* Enable "/refresh-worker-extension" rest API, grpc version isn't ready  yet

* update pnpm lock

* ci: fix CI by moving protobuf install order

* ci: fix

* upgrade api due to valibot incompatibility

* fix: use fs instead of bun shell to be compatible with windows

* skip grpc pkg build on windows

* feat: local network file transfer prototype working

* fix: grpc build.ts

* download next to 14

* ci: add ci env try to fix next

* fix: hideRefreshBtn and a few other btns' hide API in iframe ext page

* feat: disable NODE_TLS_REJECT_UNAUTHORIZED for extension HMR refresh

* fix: manifest json schema with objectWithRest to allow any other fields in package.json

* chore: update valibot and related dependencies to version 1.0.0-beta.9 in pnpm-lock.yaml

* ci: add protobuf compiler installation to manifest-schema-upload workflow

* refactor: move grpc code from jarvis to a separate grpc crate

for easier testing

* feat(file-transfer): POC multi file + directory file transfer

* feat(file-transfer): replace file transfer recursive download in ts with rust

* feat(file-transfer): implement on_progress event for file transfer

* feat(file-transfer): report progress every 1MB instead of 100 iterations

* feat(file-transfer): add progress bar

* feat(file-transfer): UI

* feat(file-transfer): add file transfer bucket info preview

Show total size and number of files

* feat(file-transfer): improve UX

Show bucket info during confirm; improve progress bar UI, prevent inconsistent width

* feat(grpc): skip build in Cloudflare Pages due to missing protoc

* refactor: with cargo fix, unused imports removed

* ci: debug cloudflare pages env var

* fix(grpc): update environment variable access for Cloudflare Pages build check

* fix(grpc): add error handling for protoc command in build script

* chore: update kkrpc version to 0.0.13, remove kkrpc submodule, and enhance grpc build script logging

- Updated kkrpc dependency version from 0.0.12 to 0.0.13 in package.json.
- Removed the kkrpc submodule from the project.
- Enhanced logging in the grpc build script to include additional Cloudflare Pages environment variables for better debugging.

* fix(api): typescript error, remove base.json from tsconfig

* chore: update pnpm lock

* fix(api): update TypeScript configuration to extend base.json and clean up unused options

* refactor(api): update TypeScript configuration to extend path-alias.json and enhance compiler options

* fix(api): restore KunkunManifestPermission in PermissionUnion and update valibot import in schema tests

* fix: missing trait error

* fix: js require replaced with import

* test: fix a unit test with a more robust method

---------

Co-authored-by: Huakun Shen <huaukun.shen@huakunshen.com>
2024-12-11 08:14:40 -05:00

2273 lines
25 KiB
Markdown

## Permission Table
<table>
<tr>
<th>Identifier</th>
<th>Description</th>
</tr>
<tr>
<td>
`jarvis:allow-all`
</td>
<td>
This enables all permissions for Jarvis
</td>
</tr>
<tr>
<td>
`jarvis:allow-add-to-history`
</td>
<td>
Enables the add_to_history command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-add-to-history`
</td>
<td>
Denies the add_to_history command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-app-is-dev`
</td>
<td>
Enables the app_is_dev command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-app-is-dev`
</td>
<td>
Denies the app_is_dev command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-check-screen-capture-access`
</td>
<td>
Enables the check_screen_capture_access command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-check-screen-capture-access`
</td>
<td>
Denies the check_screen_capture_access command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-close-devtools`
</td>
<td>
Enables the close_devtools command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-close-devtools`
</td>
<td>
Denies the close_devtools command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-compress-tarball`
</td>
<td>
Enables the compress_tarball command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-compress-tarball`
</td>
<td>
Denies the compress_tarball command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-create-command`
</td>
<td>
Enables the create_command command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-create-command`
</td>
<td>
Denies the create_command command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-create-extension`
</td>
<td>
Enables the create_extension command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-create-extension`
</td>
<td>
Denies the create_extension command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-create-extension-data`
</td>
<td>
Enables the create_extension_data command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-create-extension-data`
</td>
<td>
Denies the create_extension_data command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-decompress-tarball`
</td>
<td>
Enables the decompress_tarball command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-decompress-tarball`
</td>
<td>
Denies the decompress_tarball command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-delete-command-by-id`
</td>
<td>
Enables the delete_command_by_id command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-delete-command-by-id`
</td>
<td>
Denies the delete_command_by_id command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-delete-extension-by-ext-id`
</td>
<td>
Enables the delete_extension_by_ext_id command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-delete-extension-by-ext-id`
</td>
<td>
Denies the delete_extension_by_ext_id command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-delete-extension-by-path`
</td>
<td>
Enables the delete_extension_by_path command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-delete-extension-by-path`
</td>
<td>
Denies the delete_extension_by_path command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-delete-extension-data-by-id`
</td>
<td>
Enables the delete_extension_data_by_id command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-delete-extension-data-by-id`
</td>
<td>
Denies the delete_extension_data_by_id command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-download-file`
</td>
<td>
Enables the download_file command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-download-file`
</td>
<td>
Denies the download_file command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-download-files`
</td>
<td>
Enables the download_files command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-download-files`
</td>
<td>
Denies the download_files command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-eject-all-disks`
</td>
<td>
Enables the eject_all_disks command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-eject-all-disks`
</td>
<td>
Denies the eject_all_disks command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-empty-trash`
</td>
<td>
Enables the empty_trash command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-empty-trash`
</td>
<td>
Denies the empty_trash command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-file-search`
</td>
<td>
Enables the file_search command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-file-search`
</td>
<td>
Denies the file_search command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-file-transfer-preview-bucket`
</td>
<td>
Enables the file_transfer_preview_bucket command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-file-transfer-preview-bucket`
</td>
<td>
Denies the file_transfer_preview_bucket command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-get-all-extensions`
</td>
<td>
Enables the get_all_extensions command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-get-all-extensions`
</td>
<td>
Denies the get_all_extensions command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-get-all-extensions-by-identifier`
</td>
<td>
Enables the get_all_extensions_by_identifier command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-get-all-extensions-by-identifier`
</td>
<td>
Denies the get_all_extensions_by_identifier command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-get-applications`
</td>
<td>
Enables the get_applications command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-get-applications`
</td>
<td>
Denies the get_applications command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-get-command-by-id`
</td>
<td>
Enables the get_command_by_id command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-get-command-by-id`
</td>
<td>
Denies the get_command_by_id command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-get-commands-by-ext-id`
</td>
<td>
Enables the get_commands_by_ext_id command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-get-commands-by-ext-id`
</td>
<td>
Denies the get_commands_by_ext_id command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-get-default-extensions-dir`
</td>
<td>
Enables the get_default_extensions_dir command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-get-default-extensions-dir`
</td>
<td>
Denies the get_default_extensions_dir command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-get-default-extensions-storage-dir`
</td>
<td>
Enables the get_default_extensions_storage_dir command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-get-default-extensions-storage-dir`
</td>
<td>
Denies the get_default_extensions_storage_dir command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-get-dev-extension-folder`
</td>
<td>
Enables the get_dev_extension_folder command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-get-dev-extension-folder`
</td>
<td>
Denies the get_dev_extension_folder command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-get-ext-label-map`
</td>
<td>
Enables the get_ext_label_map command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-get-ext-label-map`
</td>
<td>
Denies the get_ext_label_map command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-get-extension-data-by-id`
</td>
<td>
Enables the get_extension_data_by_id command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-get-extension-data-by-id`
</td>
<td>
Denies the get_extension_data_by_id command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-get-extension-folder`
</td>
<td>
Enables the get_extension_folder command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-get-extension-folder`
</td>
<td>
Denies the get_extension_folder command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-get-file-transfer-bucket-by-key`
</td>
<td>
Enables the get_file_transfer_bucket_by_key command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-get-file-transfer-bucket-by-key`
</td>
<td>
Denies the get_file_transfer_bucket_by_key command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-get-file-transfer-bucket-keys`
</td>
<td>
Enables the get_file_transfer_bucket_keys command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-get-file-transfer-bucket-keys`
</td>
<td>
Denies the get_file_transfer_bucket_keys command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-get-files-to-send`
</td>
<td>
Enables the get_files_to_send command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-get-files-to-send`
</td>
<td>
Denies the get_files_to_send command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-get-history`
</td>
<td>
Enables the get_history command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-get-history`
</td>
<td>
Denies the get_history command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-get-peers`
</td>
<td>
Enables the get_peers command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-get-peers`
</td>
<td>
Denies the get_peers command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-get-selected-files-in-file-explorer`
</td>
<td>
Enables the get_selected_files_in_file_explorer command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-get-selected-files-in-file-explorer`
</td>
<td>
Denies the get_selected_files_in_file_explorer command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-get-server-port`
</td>
<td>
Enables the get_server_port command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-get-server-port`
</td>
<td>
Denies the get_server_port command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-get-unique-extension-by-identifier`
</td>
<td>
Enables the get_unique_extension_by_identifier command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-get-unique-extension-by-identifier`
</td>
<td>
Denies the get_unique_extension_by_identifier command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-get-unique-extension-by-path`
</td>
<td>
Enables the get_unique_extension_by_path command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-get-unique-extension-by-path`
</td>
<td>
Denies the get_unique_extension_by_path command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-hide-all-apps-except-frontmost`
</td>
<td>
Enables the hide_all_apps_except_frontmost command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-hide-all-apps-except-frontmost`
</td>
<td>
Denies the hide_all_apps_except_frontmost command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-is-devtools-open`
</td>
<td>
Enables the is_devtools_open command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-is-devtools-open`
</td>
<td>
Denies the is_devtools_open command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-is-window-label-registered`
</td>
<td>
Enables the is_window_label_registered command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-is-window-label-registered`
</td>
<td>
Denies the is_window_label_registered command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-local-net-send-file`
</td>
<td>
Enables the local_net_send_file command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-local-net-send-file`
</td>
<td>
Denies the local_net_send_file command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-logout-user`
</td>
<td>
Enables the logout_user command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-logout-user`
</td>
<td>
Denies the logout_user command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-mute`
</td>
<td>
Enables the mute command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-mute`
</td>
<td>
Denies the mute command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-open-devtools`
</td>
<td>
Enables the open_devtools command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-open-devtools`
</td>
<td>
Denies the open_devtools command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-open-trash`
</td>
<td>
Enables the open_trash command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-open-trash`
</td>
<td>
Denies the open_trash command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-path-exists`
</td>
<td>
Enables the path_exists command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-path-exists`
</td>
<td>
Denies the path_exists command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-plist-to-json`
</td>
<td>
Enables the plist_to_json command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-plist-to-json`
</td>
<td>
Denies the plist_to_json command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-quit-all-apps`
</td>
<td>
Enables the quit_all_apps command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-quit-all-apps`
</td>
<td>
Denies the quit_all_apps command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-reboot`
</td>
<td>
Enables the reboot command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-reboot`
</td>
<td>
Denies the reboot command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-refresh-applications-list`
</td>
<td>
Enables the refresh_applications_list command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-refresh-applications-list`
</td>
<td>
Denies the refresh_applications_list command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-refresh-applications-list-in-bg`
</td>
<td>
Enables the refresh_applications_list_in_bg command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-refresh-applications-list-in-bg`
</td>
<td>
Denies the refresh_applications_list_in_bg command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-register-extension-spawned-process`
</td>
<td>
Enables the register_extension_spawned_process command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-register-extension-spawned-process`
</td>
<td>
Denies the register_extension_spawned_process command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-register-extension-window`
</td>
<td>
Enables the register_extension_window command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-register-extension-window`
</td>
<td>
Denies the register_extension_window command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-request-screen-capture-access`
</td>
<td>
Enables the request_screen_capture_access command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-request-screen-capture-access`
</td>
<td>
Denies the request_screen_capture_access command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-restart-server`
</td>
<td>
Enables the restart_server command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-restart-server`
</td>
<td>
Denies the restart_server command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-run-apple-script`
</td>
<td>
Enables the run_apple_script command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-run-apple-script`
</td>
<td>
Denies the run_apple_script command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-run-powershell`
</td>
<td>
Enables the run_powershell command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-run-powershell`
</td>
<td>
Denies the run_powershell command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-search-extension-data`
</td>
<td>
Enables the search_extension_data command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-search-extension-data`
</td>
<td>
Denies the search_extension_data command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-server-is-running`
</td>
<td>
Enables the server_is_running command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-server-is-running`
</td>
<td>
Denies the server_is_running command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-set-dev-extension-folder`
</td>
<td>
Enables the set_dev_extension_folder command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-set-dev-extension-folder`
</td>
<td>
Denies the set_dev_extension_folder command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-set-extension-folder`
</td>
<td>
Enables the set_extension_folder command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-set-extension-folder`
</td>
<td>
Denies the set_extension_folder command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-set-volume`
</td>
<td>
Enables the set_volume command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-set-volume`
</td>
<td>
Denies the set_volume command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-show-desktop`
</td>
<td>
Enables the show_desktop command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-show-desktop`
</td>
<td>
Denies the show_desktop command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-shutdown`
</td>
<td>
Enables the shutdown command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-shutdown`
</td>
<td>
Denies the shutdown command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-sleep`
</td>
<td>
Enables the sleep command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-sleep`
</td>
<td>
Denies the sleep command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-sleep-displays`
</td>
<td>
Enables the sleep_displays command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-sleep-displays`
</td>
<td>
Denies the sleep_displays command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-spawn-extension-file-server`
</td>
<td>
Enables the spawn_extension_file_server command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-spawn-extension-file-server`
</td>
<td>
Denies the spawn_extension_file_server command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-start-server`
</td>
<td>
Enables the start_server command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-start-server`
</td>
<td>
Denies the start_server command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-stop-server`
</td>
<td>
Enables the stop_server command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-stop-server`
</td>
<td>
Denies the stop_server command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-toggle-bluetooth`
</td>
<td>
Enables the toggle_bluetooth command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-toggle-bluetooth`
</td>
<td>
Denies the toggle_bluetooth command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-toggle-devtools`
</td>
<td>
Enables the toggle_devtools command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-toggle-devtools`
</td>
<td>
Denies the toggle_devtools command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-toggle-hidden-files`
</td>
<td>
Enables the toggle_hidden_files command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-toggle-hidden-files`
</td>
<td>
Denies the toggle_hidden_files command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-toggle-mute`
</td>
<td>
Enables the toggle_mute command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-toggle-mute`
</td>
<td>
Denies the toggle_mute command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-toggle-stage-manager`
</td>
<td>
Enables the toggle_stage_manager command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-toggle-stage-manager`
</td>
<td>
Denies the toggle_stage_manager command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-toggle-system-appearance`
</td>
<td>
Enables the toggle_system_appearance command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-toggle-system-appearance`
</td>
<td>
Denies the toggle_system_appearance command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-turn-volume-down`
</td>
<td>
Enables the turn_volume_down command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-turn-volume-down`
</td>
<td>
Denies the turn_volume_down command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-turn-volume-up`
</td>
<td>
Enables the turn_volume_up command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-turn-volume-up`
</td>
<td>
Denies the turn_volume_up command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-unmute`
</td>
<td>
Enables the unmute command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-unmute`
</td>
<td>
Denies the unmute command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-unregister-extension-spawned-process`
</td>
<td>
Enables the unregister_extension_spawned_process command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-unregister-extension-spawned-process`
</td>
<td>
Denies the unregister_extension_spawned_process command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-unregister-extension-window`
</td>
<td>
Enables the unregister_extension_window command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-unregister-extension-window`
</td>
<td>
Denies the unregister_extension_window command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-unzip`
</td>
<td>
Enables the unzip command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-unzip`
</td>
<td>
Denies the unzip command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-update-command-by-id`
</td>
<td>
Enables the update_command_by_id command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-update-command-by-id`
</td>
<td>
Denies the update_command_by_id command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-update-extension-data-by-id`
</td>
<td>
Enables the update_extension_data_by_id command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-update-extension-data-by-id`
</td>
<td>
Denies the update_extension_data_by_id command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-verify-auth`
</td>
<td>
Enables the verify_auth command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:deny-verify-auth`
</td>
<td>
Denies the verify_auth command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`jarvis:allow-all-store`
</td>
<td>
This enables all permissions for Jarvis
</td>
</tr>
</table>