windows-development-sandbox 1.17.0 → 1.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +92 -92
- package/config.example.json +97 -4
- package/dist/app/features/accounts/accounts.def.d.ts +116 -2
- package/dist/app/features/accounts/accounts.def.js +80 -12
- package/dist/app/features/accounts/accounts.run.d.ts +29 -0
- package/dist/app/features/accounts/accounts.run.js +36 -6
- package/dist/app/features/accounts/index.d.ts +2 -0
- package/dist/app/features/accounts/index.js +4 -1
- package/dist/app/features/accounts/services.def.d.ts +111 -0
- package/dist/app/features/accounts/services.def.js +187 -0
- package/dist/app/features/accounts/services.run.d.ts +65 -0
- package/dist/app/features/accounts/services.run.js +212 -0
- package/dist/app/features/defs.d.ts +112 -1
- package/dist/app/features/defs.js +5 -0
- package/dist/app/features/settings/categories.def.js +21 -4
- package/dist/app/registry.js +5 -1
- package/dist/bin/agent-sandbox.js +2 -2
- package/dist/bin/{chunk-QLGGAG3D.js → chunk-BKF43GJ3.js} +51 -16
- package/dist/bin/{chunk-REE3EMHD.js → chunk-YD3A67RS.js} +3812 -1702
- package/dist/bin/{chunk-XYUVIVJT.js → chunk-Z5D32FN3.js} +1 -1
- package/dist/bin/claude-host.js +2 -2
- package/dist/bin/claude-sbx.js +2 -2
- package/dist/bin/codex-sbx.js +2 -2
- package/dist/bin/gemini-sbx.js +2 -2
- package/dist/bin/sandbox.js +2 -2
- package/dist/bin/sbx-hide.js +2 -2
- package/dist/bin/sbx-show.js +2 -2
- package/dist/cli/commands/launch/launch.js +30 -1
- package/dist/cli/manifest.d.ts +93 -65
- package/dist/cli/manifest.js +23 -5
- package/dist/cli/menu/pages/accounts-page.js +31 -16
- package/dist/cli/services/accounts-service.d.ts +14 -4
- package/dist/cli/services/accounts-service.js +19 -6
- package/dist/cli/services/data-collect.js +26 -1
- package/dist/core/config/defaults.js +47 -4
- package/dist/core/detect/toolchains.d.ts +15 -1
- package/dist/core/detect/toolchains.js +45 -12
- package/dist/core/local-config/overrides.js +6 -0
- package/dist/core/schema/accounts.d.ts +27 -0
- package/dist/core/schema/accounts.js +32 -0
- package/dist/core/schema/config.d.ts +239 -0
- package/dist/core/schema/config.js +6 -0
- package/dist/core/schema/pc-installs.d.ts +7 -0
- package/dist/core/schema/pc-installs.js +17 -0
- package/dist/core/schema/toolchains.d.ts +61 -0
- package/dist/core/schema/toolchains.js +106 -0
- package/dist/core/types.d.ts +18 -0
- package/dist/guest/accounts/adapter.d.ts +25 -0
- package/dist/guest/accounts/adapter.js +21 -0
- package/dist/guest/accounts/adapters.d.ts +5 -0
- package/dist/guest/accounts/adapters.js +18 -0
- package/dist/guest/accounts/apply.d.ts +41 -0
- package/dist/guest/accounts/apply.js +47 -0
- package/dist/guest/accounts/kinds/appstore.d.ts +2 -0
- package/dist/guest/accounts/kinds/appstore.js +7 -0
- package/dist/guest/accounts/kinds/cfx.d.ts +2 -0
- package/dist/guest/accounts/kinds/cfx.js +7 -0
- package/dist/guest/accounts/kinds/epic.d.ts +2 -0
- package/dist/guest/accounts/kinds/epic.js +26 -0
- package/dist/guest/accounts/kinds/expo.d.ts +2 -0
- package/dist/guest/accounts/kinds/expo.js +7 -0
- package/dist/guest/accounts/kinds/keystore.d.ts +2 -0
- package/dist/guest/accounts/kinds/keystore.js +7 -0
- package/dist/guest/accounts/kinds/play.d.ts +2 -0
- package/dist/guest/accounts/kinds/play.js +7 -0
- package/dist/guest/accounts/kinds/steam.d.ts +4 -0
- package/dist/guest/accounts/kinds/steam.js +17 -0
- package/dist/guest/accounts/kinds/unity.d.ts +2 -0
- package/dist/guest/accounts/kinds/unity.js +7 -0
- package/dist/guest/accounts/watch.d.ts +28 -0
- package/dist/guest/accounts/watch.js +78 -0
- package/dist/guest/agents/agent-files.d.ts +6 -0
- package/dist/guest/agents/agent-files.js +14 -0
- package/dist/guest/agents/local-state.d.ts +2 -0
- package/dist/guest/agents/local-state.js +13 -1
- package/dist/guest/apps/resolvers-gamedev.d.ts +2 -0
- package/dist/guest/apps/resolvers-gamedev.js +1 -0
- package/dist/guest/apps/resolvers-mobile.d.ts +2 -0
- package/dist/guest/apps/resolvers-mobile.js +1 -0
- package/dist/guest/apps/resolvers.js +4 -0
- package/dist/guest/boot/boot.d.ts +5 -0
- package/dist/guest/boot/boot.js +36 -1
- package/dist/guest/daemon/accounts.d.ts +3 -0
- package/dist/guest/daemon/accounts.js +25 -0
- package/dist/guest/daemon/daemon.js +2 -0
- package/dist/guest/daemon/idle-shutdown.js +3 -1
- package/dist/guest/daemon/sessions.js +2 -0
- package/dist/guest/devtools/android.d.ts +2 -0
- package/dist/guest/devtools/android.js +7 -0
- package/dist/guest/devtools/devtool.d.ts +9 -0
- package/dist/guest/devtools/devtool.js +5 -0
- package/dist/guest/devtools/fivem.d.ts +2 -0
- package/dist/guest/devtools/fivem.js +7 -0
- package/dist/guest/devtools/registry.d.ts +6 -0
- package/dist/guest/devtools/registry.js +12 -0
- package/dist/guest/devtools/steam.d.ts +2 -0
- package/dist/guest/devtools/steam.js +228 -0
- package/dist/guest/devtools/unity.d.ts +2 -0
- package/dist/guest/devtools/unity.js +7 -0
- package/dist/guest/entries/daemon.js +2 -0
- package/dist/guest/entries/tool.d.ts +1 -0
- package/dist/guest/entries/tool.js +17 -0
- package/dist/guest/toolchains/engines/godot.d.ts +4 -0
- package/dist/guest/toolchains/engines/godot.js +4 -0
- package/dist/guest/toolchains/engines/unity-release.d.ts +15 -0
- package/dist/guest/toolchains/engines/unity-release.js +6 -0
- package/dist/guest/toolchains/engines/unity.d.ts +4 -0
- package/dist/guest/toolchains/engines/unity.js +4 -0
- package/dist/guest/toolchains/engines/unreal-engines.d.ts +4 -0
- package/dist/guest/toolchains/engines/unreal-engines.js +4 -0
- package/dist/guest/toolchains/fivem/artifacts.d.ts +6 -0
- package/dist/guest/toolchains/fivem/artifacts.js +7 -0
- package/dist/guest/toolchains/fivem/fivem.d.ts +4 -0
- package/dist/guest/toolchains/fivem/fivem.js +4 -0
- package/dist/guest/toolchains/installers.d.ts +12 -0
- package/dist/guest/toolchains/installers.js +39 -0
- package/dist/guest/toolchains/languages/java.js +1 -1
- package/dist/guest/toolchains/languages/kotlin.d.ts +3 -0
- package/dist/guest/toolchains/languages/kotlin.js +6 -0
- package/dist/guest/toolchains/mobile/android-repo.d.ts +11 -0
- package/dist/guest/toolchains/mobile/android-repo.js +10 -0
- package/dist/guest/toolchains/mobile/android.d.ts +17 -0
- package/dist/guest/toolchains/mobile/android.js +16 -0
- package/dist/guest/toolchains/mobile/dart.d.ts +4 -0
- package/dist/guest/toolchains/mobile/dart.js +4 -0
- package/dist/guest/toolchains/mobile/flutter.d.ts +4 -0
- package/dist/guest/toolchains/mobile/flutter.js +4 -0
- package/dist/guest/toolchains/mobile/react-native.d.ts +4 -0
- package/dist/guest/toolchains/mobile/react-native.js +4 -0
- package/dist/guest/toolchains/native/unreal.d.ts +3 -7
- package/dist/guest/toolchains/native/unreal.js +16 -155
- package/dist/guest/toolchains/native/visual-studio.d.ts +15 -0
- package/dist/guest/toolchains/native/visual-studio.js +159 -0
- package/dist/guest/toolchains/native/vs-request.d.ts +19 -0
- package/dist/guest/toolchains/native/vs-request.js +46 -0
- package/dist/guest/toolchains/not-yet.d.ts +2 -0
- package/dist/guest/toolchains/not-yet.js +6 -0
- package/dist/guest/toolchains/persisted.d.ts +48 -0
- package/dist/guest/toolchains/persisted.js +159 -0
- package/dist/guest/toolchains/plan.js +80 -4
- package/dist/guest/toolchains/steam/apps.d.ts +27 -0
- package/dist/guest/toolchains/steam/apps.js +112 -0
- package/dist/guest/toolchains/steam/client.d.ts +5 -0
- package/dist/guest/toolchains/steam/client.js +67 -0
- package/dist/guest/toolchains/steam/commands.d.ts +58 -0
- package/dist/guest/toolchains/steam/commands.js +155 -0
- package/dist/guest/toolchains/steam/steam.d.ts +4 -0
- package/dist/guest/toolchains/steam/steam.js +61 -0
- package/dist/guest/toolchains/steam/steamcmd-install.d.ts +29 -0
- package/dist/guest/toolchains/steam/steamcmd-install.js +177 -0
- package/dist/guest/toolchains/steam/steamcmd.d.ts +6 -0
- package/dist/guest/toolchains/steam/steamcmd.js +23 -0
- package/dist/guest/toolchains/step.d.ts +10 -0
- package/dist/host/accounts/deliver.d.ts +26 -0
- package/dist/host/accounts/deliver.js +80 -0
- package/dist/host/accounts/handoff.d.ts +17 -0
- package/dist/host/accounts/handoff.js +110 -0
- package/dist/host/accounts/index.d.ts +6 -0
- package/dist/host/accounts/index.js +8 -0
- package/dist/host/accounts/kinds/appstore.d.ts +2 -0
- package/dist/host/accounts/kinds/appstore.js +10 -0
- package/dist/host/accounts/kinds/cfx.d.ts +2 -0
- package/dist/host/accounts/kinds/cfx.js +7 -0
- package/dist/host/accounts/kinds/epic.d.ts +2 -0
- package/dist/host/accounts/kinds/epic.js +15 -0
- package/dist/host/accounts/kinds/expo.d.ts +2 -0
- package/dist/host/accounts/kinds/expo.js +7 -0
- package/dist/host/accounts/kinds/keystore.d.ts +2 -0
- package/dist/host/accounts/kinds/keystore.js +7 -0
- package/dist/host/accounts/kinds/play.d.ts +2 -0
- package/dist/host/accounts/kinds/play.js +7 -0
- package/dist/host/accounts/kinds/steam.d.ts +6 -0
- package/dist/host/accounts/kinds/steam.js +31 -0
- package/dist/host/accounts/kinds/unity.d.ts +2 -0
- package/dist/host/accounts/kinds/unity.js +13 -0
- package/dist/host/accounts/leases.d.ts +40 -0
- package/dist/host/accounts/leases.js +62 -0
- package/dist/host/accounts/source.d.ts +21 -0
- package/dist/host/accounts/source.js +15 -0
- package/dist/host/accounts/sources.d.ts +5 -0
- package/dist/host/accounts/sources.js +18 -0
- package/dist/host/accounts/store.d.ts +23 -0
- package/dist/host/accounts/store.js +74 -0
- package/dist/host/audit/log.d.ts +1 -1
- package/dist/host/launch/generate.d.ts +2 -0
- package/dist/host/launch/generate.js +16 -1
- package/dist/host/launch/hints/android.d.ts +3 -0
- package/dist/host/launch/hints/android.js +3 -0
- package/dist/host/launch/hints/engines.d.ts +3 -0
- package/dist/host/launch/hints/engines.js +3 -0
- package/dist/host/launch/hints/fivem.d.ts +3 -0
- package/dist/host/launch/hints/fivem.js +3 -0
- package/dist/host/launch/hints/hint.d.ts +2 -0
- package/dist/host/launch/hints/hint.js +1 -0
- package/dist/host/launch/hints/index.d.ts +5 -0
- package/dist/host/launch/hints/index.js +29 -0
- package/dist/host/launch/hints/mobile.d.ts +3 -0
- package/dist/host/launch/hints/mobile.js +3 -0
- package/dist/host/launch/hints/steam.d.ts +7 -0
- package/dist/host/launch/hints/steam.js +59 -0
- package/dist/host/launch/index.d.ts +2 -2
- package/dist/host/launch/index.js +2 -2
- package/dist/host/launch/mappings.js +2 -0
- package/dist/host/launch/session-file.js +2 -0
- package/dist/host/launch/stage.js +10 -1
- package/dist/host/launch/toolchains.d.ts +7 -0
- package/dist/host/launch/toolchains.js +11 -0
- package/dist/host/pc-installs/discover.d.ts +19 -0
- package/dist/host/pc-installs/discover.js +59 -0
- package/dist/host/pc-installs/epic.d.ts +2 -0
- package/dist/host/pc-installs/epic.js +7 -0
- package/dist/host/pc-installs/index.d.ts +3 -0
- package/dist/host/pc-installs/index.js +2 -0
- package/dist/host/pc-installs/source.d.ts +9 -0
- package/dist/host/pc-installs/source.js +1 -0
- package/dist/host/pc-installs/steam.d.ts +16 -0
- package/dist/host/pc-installs/steam.js +143 -0
- package/dist/host/pc-installs/unity.d.ts +2 -0
- package/dist/host/pc-installs/unity.js +7 -0
- package/dist/host/pc-installs/unreal.d.ts +2 -0
- package/dist/host/pc-installs/unreal.js +7 -0
- package/dist/host/profile/accounts.d.ts +21 -6
- package/dist/host/profile/accounts.js +108 -28
- package/dist/host/profile/claude-login.d.ts +32 -2
- package/dist/host/profile/claude-login.js +100 -8
- package/dist/host/profile/index.d.ts +1 -1
- package/dist/host/profile/index.js +1 -1
- package/dist/host/secrets/launch-secrets.js +1 -0
- package/dist/runtime/agent.js +321 -9
- package/dist/runtime/daemon.js +1987 -595
- package/dist/runtime/db.js +334 -11
- package/dist/runtime/main.js +2530 -709
- package/dist/runtime/netproxy.js +321 -9
- package/dist/runtime/tool.js +28549 -0
- package/dist/runtime/view.js +321 -9
- package/dist/selftest/accounts.test.js +172 -1
- package/dist/selftest/agent-paths.test.js +13 -1
- package/dist/selftest/android.test.d.ts +2 -0
- package/dist/selftest/android.test.js +7 -0
- package/dist/selftest/app.test.js +1 -1
- package/dist/selftest/engines.test.d.ts +2 -0
- package/dist/selftest/engines.test.js +7 -0
- package/dist/selftest/fivem.test.d.ts +2 -0
- package/dist/selftest/fivem.test.js +7 -0
- package/dist/selftest/generate.test.js +1 -1
- package/dist/selftest/index.js +18 -0
- package/dist/selftest/menu-screens.js +1 -0
- package/dist/selftest/menu.test.js +2 -1
- package/dist/selftest/mobile.test.d.ts +2 -0
- package/dist/selftest/mobile.test.js +7 -0
- package/dist/selftest/pc-installs.test.d.ts +2 -0
- package/dist/selftest/pc-installs.test.js +111 -0
- package/dist/selftest/persisted-installs.test.d.ts +2 -0
- package/dist/selftest/persisted-installs.test.js +107 -0
- package/dist/selftest/projects.test.js +6 -4
- package/dist/selftest/service-accounts.test.d.ts +2 -0
- package/dist/selftest/service-accounts.test.js +320 -0
- package/dist/selftest/steam.test.d.ts +2 -0
- package/dist/selftest/steam.test.js +316 -0
- package/dist/selftest/storage-helper.test.js +31 -8
- package/dist/selftest/support/engine-golden.js +3 -0
- package/dist/selftest/support/fixtures.d.ts +87 -0
- package/dist/selftest/support/fixtures.js +4 -3
- package/dist/selftest/support/pc-memory.d.ts +2 -0
- package/dist/selftest/support/pc-memory.js +17 -0
- package/dist/selftest/support/web-preview.js +20 -1
- package/dist/selftest/unity.test.d.ts +2 -0
- package/dist/selftest/unity.test.js +7 -0
- package/dist/shared/accounts/fingerprint.d.ts +1 -0
- package/dist/shared/accounts/fingerprint.js +20 -0
- package/dist/shared/accounts/index.d.ts +5 -0
- package/dist/shared/accounts/index.js +7 -0
- package/dist/shared/accounts/kinds/epic.d.ts +10 -0
- package/dist/shared/accounts/kinds/epic.js +56 -0
- package/dist/shared/accounts/kinds/steam.d.ts +28 -0
- package/dist/shared/accounts/kinds/steam.js +99 -0
- package/dist/shared/accounts/kinds.d.ts +41 -0
- package/dist/shared/accounts/kinds.js +154 -0
- package/dist/shared/accounts/payloads.d.ts +151 -0
- package/dist/shared/accounts/payloads.js +128 -0
- package/dist/shared/apps/catalogue-gamedev.d.ts +2 -0
- package/dist/shared/apps/catalogue-gamedev.js +1 -0
- package/dist/shared/apps/catalogue-mobile.d.ts +2 -0
- package/dist/shared/apps/catalogue-mobile.js +1 -0
- package/dist/shared/apps/catalogue-modding.d.ts +2 -0
- package/dist/shared/apps/catalogue-modding.js +1 -0
- package/dist/shared/apps/catalogue.d.ts +1 -0
- package/dist/shared/apps/catalogue.js +6 -1
- package/dist/shared/channel/schema.d.ts +183 -0
- package/dist/shared/channel/secrets.d.ts +42 -0
- package/dist/shared/channel/secrets.js +3 -0
- package/dist/shared/download/downloader.d.ts +7 -0
- package/dist/shared/download/downloader.js +10 -3
- package/dist/shared/installs.d.ts +19 -0
- package/dist/shared/installs.js +13 -0
- package/dist/shared/io/bounded.d.ts +6 -0
- package/dist/shared/io/bounded.js +38 -0
- package/dist/shared/io/index.d.ts +2 -0
- package/dist/shared/io/index.js +2 -0
- package/dist/shared/io/text.d.ts +9 -0
- package/dist/shared/io/text.js +18 -0
- package/dist/shared/paths/guest-paths.js +1 -1
- package/dist/shared/paths/index.d.ts +1 -0
- package/dist/shared/paths/index.js +1 -0
- package/dist/shared/paths/pc-installs.d.ts +20 -0
- package/dist/shared/paths/pc-installs.js +19 -0
- package/dist/shared/vdf.d.ts +25 -0
- package/dist/shared/vdf.js +151 -0
- package/dist/sync/sync-cycle.js +9 -0
- package/dist/web/index.html +1 -1
- package/dist/web/{main-JTH3FT4O.js → main-CWIF4VQI.js} +63 -61
- package/native/csharp/HcsHost/AssemblyInfo.cs +3 -3
- package/native/csharp/HostTools/AssemblyInfo.cs +3 -3
- package/native/csharp/StorageHelper/AssemblyInfo.cs +3 -3
- package/package.json +1 -1
- package/sandbox/scripts/add-firewall-port.ps1 +13 -0
- package/sandbox/templates/fivem/README.txt +2 -0
- package/schemas/config.schema.json +485 -0
- package/schemas/sandbox-config.schema.json +416 -0
package/README.md
CHANGED
|
@@ -12,9 +12,10 @@
|
|
|
12
12
|
|
|
13
13
|
</div>
|
|
14
14
|
|
|
15
|
-
Run it in a project folder
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
Run it in a project folder to get a clean
|
|
16
|
+
[Windows Sandbox](https://learn.microsoft.com/windows/security/application-security/application-isolation/windows-sandbox/windows-sandbox-overview).
|
|
17
|
+
The folder is the workspace, the tools and databases it needs install themselves, and the rest of your PC is out of
|
|
18
|
+
reach. Close it and it is gone. Your project, tools, databases and logins are kept for next time.
|
|
18
19
|
|
|
19
20
|
## Install
|
|
20
21
|
|
|
@@ -22,130 +23,129 @@ on your PC is reachable. Close it and it's gone. Your project, tools, databases
|
|
|
22
23
|
irm https://github.com/JoshDiDuca/windows-development-sandbox/releases/latest/download/install.ps1 | iex
|
|
23
24
|
```
|
|
24
25
|
|
|
25
|
-
|
|
26
|
-
admin). It brings its own
|
|
27
|
-
unless you ask
|
|
28
|
-
the sandbox keeps its version until it restarts. A version that fails to start is rolled back automatically, and
|
|
29
|
-
`sandbox update --rollback` goes back one by hand.
|
|
26
|
+
The installer checks your PC, offers to turn on Windows Sandbox, and asks **1) Just me** or **2) Everyone on this PC**
|
|
27
|
+
(needs admin). It brings its own copy of Node.js and installs nothing else system-wide. It adds no Start menu shortcut
|
|
28
|
+
unless you ask.
|
|
30
29
|
|
|
31
|
-
|
|
32
|
-
|
|
30
|
+
- `sandbox update` installs a newer version, and can do it by itself. A running sandbox keeps its version until it
|
|
31
|
+
restarts.
|
|
32
|
+
- A new version that fails to start is rolled back for you. `sandbox update --rollback` goes back one version by hand.
|
|
33
|
+
|
|
34
|
+
Needs Windows 10/11 **Pro, Enterprise or Education**. With Node.js 20+, `npm install -g windows-development-sandbox`
|
|
35
|
+
works too. More: [install options, upgrading, uninstall](docs/install.md).
|
|
33
36
|
|
|
34
37
|
## Use
|
|
35
38
|
|
|
36
39
|
```powershell
|
|
37
40
|
cd C:\code\my-app
|
|
38
41
|
|
|
39
|
-
sandbox # the menu: agents, sessions, apps,
|
|
42
|
+
sandbox # the menu: agents, sessions, apps, settings, health ...
|
|
40
43
|
sandbox claude # Claude Code in a sandbox for this folder (or: claude-sandbox)
|
|
41
|
-
sandbox claude -t # ... in this terminal (Ctrl+] detaches
|
|
42
|
-
sandbox start #
|
|
44
|
+
sandbox claude -t # ... in this terminal (Ctrl+] detaches; the session keeps running)
|
|
45
|
+
sandbox start # the sandbox, no agent
|
|
43
46
|
sandbox opencode # any supported agent by name
|
|
44
47
|
sandbox web open # (Beta) the web UI in your browser, signed in
|
|
45
48
|
```
|
|
46
49
|
|
|
47
|
-
The first start downloads what the project needs (a few minutes, once).
|
|
50
|
+
The first start downloads what the project needs (a few minutes, once). Later starts take seconds.
|
|
48
51
|
|
|
49
|
-
> `claude-sbx`, `codex-sbx`, `gemini-sbx` and `agent-sandbox`
|
|
50
|
-
>
|
|
52
|
+
> The old names `claude-sbx`, `codex-sbx`, `gemini-sbx` and `agent-sandbox` still work for now. Use `sandbox <agent>`
|
|
53
|
+
> (or `claude-sandbox`) and `sandbox` instead.
|
|
51
54
|
|
|
52
55
|
## What you get
|
|
53
56
|
|
|
54
|
-
|
|
|
55
|
-
|
|
56
|
-
| **Safe by default**
|
|
57
|
-
| **Languages**
|
|
58
|
-
| **Apps and tools**
|
|
59
|
-
| **Databases**
|
|
60
|
-
| **Agents**
|
|
61
|
-
| **Smart**
|
|
62
|
-
| **Several projects**
|
|
63
|
-
| **
|
|
64
|
-
| **Leaves nothing behind** | When an agent's session ends, everything it started ends
|
|
65
|
-
| **GitHub, safely**
|
|
66
|
-
| **Feels like home**
|
|
57
|
+
| | |
|
|
58
|
+
| ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
59
|
+
| **Safe by default** | The agent sees only your project folder. Credentials are stripped before anything is copied in, your LAN is blocked, and nothing the sandbox writes can run on your PC. |
|
|
60
|
+
| **Languages** | Node, Python, Rust, C/C++ (GCC or MSVC), .NET (with .NET Framework targeting), Go, Java, Ruby, PHP, Deno, Bun, PowerShell 7, Unreal Engine tools. Also pnpm, yarn, Volta, uv, pyenv, Maven, Gradle, Composer, gh ... |
|
|
61
|
+
| **Apps and tools** | VS Code (set up for your languages) and Windows Terminal, plus about 80 optional apps by category: DBeaver, pgAdmin, Bruno, Godot, Blender, Ghidra, kubectl, jq, ripgrep ... and your own programs. Agent add-ons: rtk and Headroom (fewer tokens), ccusage, Playwright and Context7 MCP servers, claude-mem, REA. Playwright works with Edge out of the box. |
|
|
62
|
+
| **Databases** | PostgreSQL, MySQL, MongoDB, Redis and DynamoDB Local (with a web UI). They start when the project uses them, or any time with `--database` or `sandbox db`. |
|
|
63
|
+
| **Agents** | Claude Code, Codex, Gemini, opencode, Qwen, Crush, Copilot, Kilo, Amp, Cline, Continue, Kimi, Aider and two DeepSeek agents. |
|
|
64
|
+
| **Smart setup** | Finds what the project needs from its files, follows its version files, installs in parallel and reuses everything. |
|
|
65
|
+
| **Several projects** | `sandbox claude` from another project joins the running sandbox, with that project's own folder, tools, versions, databases and environment. Start several agents at once (`--session claude@A --session codex@B`, or the menu) and attach to any of them from any terminal. |
|
|
66
|
+
| **Pick up again** | After a crash or restart, `sandbox resume` reopens the last sessions. `sandbox restart` restarts the agents in place, and they continue their conversations. |
|
|
67
|
+
| **Leaves nothing behind** | When an agent's session ends, everything it started ends too, background servers included. Nothing of this tool keeps running on your PC once the sandbox is closed. |
|
|
68
|
+
| **GitHub, safely** | Give sandboxes a fine-grained GitHub token made just for them (`sandbox github login`, `github.shareToken`). `gh` and `git push` then work inside, and the token is never written to the sandbox's files. |
|
|
69
|
+
| **Feels like home** | Your desktop look, Claude settings, MCP servers and conversation history come along, and history syncs back. Saved logins (`sandbox account`) are encrypted for your Windows user. |
|
|
67
70
|
|
|
68
71
|
## Built for heavy workloads
|
|
69
72
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
- **Sized to
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
- **
|
|
81
|
-
|
|
82
|
-
- **
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
Details and settings: [troubleshooting](docs/troubleshooting.md#the-sandbox-closes-under-heavy-load) and
|
|
88
|
-
[configuration](docs/configuration.md#cpu-ram-and-gpu).
|
|
73
|
+
Under load the sandbox slows down instead of failing, and it never takes your PC down with it. Nothing needs setting
|
|
74
|
+
up.
|
|
75
|
+
|
|
76
|
+
- **Sized to fit.** The sandbox gets only the memory your PC can keep in RAM for it, with room left for your PC.
|
|
77
|
+
- **A build budget.** Agents see the CPUs and memory they may really use. Each session gets a matching number of build
|
|
78
|
+
jobs, written to `run\budget.json` for agents to plan with.
|
|
79
|
+
- **Slows down in steps.** As memory fills, build programs get lower priority, then less CPU, then compilers take
|
|
80
|
+
turns. Builds get slower, but nothing is killed, and agents, shells and Windows are never touched.
|
|
81
|
+
- **Your PC has a say.** A watchdog on your PC asks the sandbox to ease off when your PC runs short of memory, CPU or
|
|
82
|
+
disk.
|
|
83
|
+
- **A last resort.** Only at the very edge of the sandbox's memory limit is a build refused memory, so the sandbox
|
|
84
|
+
stays up.
|
|
85
|
+
- **Answers afterwards.** `sandbox doctor` checks your paging file. `sandbox logs --crash` explains a past freeze or
|
|
86
|
+
crash.
|
|
87
|
+
|
|
88
|
+
Details: [heavy load](docs/troubleshooting.md#the-sandbox-closes-under-heavy-load) and
|
|
89
|
+
[CPU, RAM and GPU settings](docs/configuration.md#cpu-ram-and-gpu).
|
|
89
90
|
|
|
90
91
|
## Commands
|
|
91
92
|
|
|
92
|
-
| Command
|
|
93
|
-
|
|
94
|
-
| `sandbox`
|
|
95
|
-
| `sandbox <agent>`, `claude-sandbox`
|
|
96
|
-
| `sandbox start`
|
|
97
|
-
| `sandbox attach` / `sessions` / `status` | work with a running sandbox (this folder's project first)
|
|
98
|
-
| `sandbox shell` / `close <id>`
|
|
99
|
-
| `sandbox restart` / `resume`
|
|
100
|
-
| `sandbox projects`
|
|
101
|
-
| `sandbox db [start\|stop <name>]`
|
|
102
|
-
| `sandbox exec -- <cmd>`
|
|
103
|
-
| `sandbox config get\|set\|reset\|list`
|
|
104
|
-
| `sandbox account`
|
|
105
|
-
| `sandbox github` / `vpn`
|
|
106
|
-
| `sandbox web`
|
|
107
|
-
| `sandbox stop` / `hide` / `show`
|
|
108
|
-
| `sandbox data` / `storage`
|
|
109
|
-
| `sandbox setup` / `doctor` / `repair`
|
|
110
|
-
| `sandbox engine`
|
|
111
|
-
| `sandbox logs [-f] [--crash]`
|
|
112
|
-
| `sandbox update [--rollback]`
|
|
113
|
-
|
|
114
|
-
|
|
93
|
+
| Command | |
|
|
94
|
+
| ---------------------------------------- | --------------------------------------------------------------------------------- |
|
|
95
|
+
| `sandbox` | the menu: start agents, attach to sessions, pick apps, change any setting, search |
|
|
96
|
+
| `sandbox <agent>`, `claude-sandbox` | start an agent; `-t` for this terminal, `--headless` for no window |
|
|
97
|
+
| `sandbox start` | the sandbox without an agent |
|
|
98
|
+
| `sandbox attach` / `sessions` / `status` | work with a running sandbox (this folder's project first) |
|
|
99
|
+
| `sandbox shell` / `close <id>` | open PowerShell or cmd in a project as a session; end a session |
|
|
100
|
+
| `sandbox restart` / `resume` | restart the agents in place; reopen the last sessions |
|
|
101
|
+
| `sandbox projects` | which projects a sandbox can open without a restart |
|
|
102
|
+
| `sandbox db [start\|stop <name>]` | list, start or stop databases (`sbx-db` inside) |
|
|
103
|
+
| `sandbox exec -- <cmd>` | run a command inside |
|
|
104
|
+
| `sandbox config get\|set\|reset\|list` | read and change settings (`export` / `import` to share them) |
|
|
105
|
+
| `sandbox account` | save, switch and rename agent logins and Claude API keys |
|
|
106
|
+
| `sandbox github` / `vpn` | the GitHub token for sandboxes; the VPN login and status |
|
|
107
|
+
| `sandbox web` | (Beta) the web UI: start, stop, status, open |
|
|
108
|
+
| `sandbox stop` / `hide` / `show` | shut down; hide or show the window |
|
|
109
|
+
| `sandbox data` / `storage` | what is stored and how big; free space; move the data folder |
|
|
110
|
+
| `sandbox setup` / `doctor` / `repair` | check this PC, see what will be installed, fix common problems |
|
|
111
|
+
| `sandbox engine` | (Alpha) the engines and what each can do on this PC |
|
|
112
|
+
| `sandbox logs [-f] [--crash]` | the sandbox log, or the report of the last crash |
|
|
113
|
+
| `sandbox update [--rollback]` | update, or go back one version (`--version` shows the installed one) |
|
|
114
|
+
|
|
115
|
+
Every command and option: [docs/commands.md](docs/commands.md).
|
|
115
116
|
|
|
116
117
|
## Beta and alpha features
|
|
117
118
|
|
|
118
|
-
These are off until you turn them on, and one setting turns each off again. Windows Sandbox stays the default
|
|
119
|
-
keeps
|
|
119
|
+
These are off until you turn them on, and one setting turns each off again. Windows Sandbox stays the default engine
|
|
120
|
+
and keeps all its features.
|
|
120
121
|
|
|
121
|
-
| Feature
|
|
122
|
-
|
|
123
|
-
| **Web UI** (`sandbox web`, `web.enabled`)
|
|
124
|
-
| **Agent commands** (`sandbox agent-commands on`)
|
|
125
|
-
| **Contained storage** (`sandbox storage contained on`) | Beta
|
|
126
|
-
| **VPN** (`sandbox vpn`, `vpn.enabled`)
|
|
127
|
-
| **HCS engine** (`sandbox.engine: hcs
|
|
122
|
+
| Feature | Status | What it does |
|
|
123
|
+
| ------------------------------------------------------ | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
124
|
+
| **Web UI** (`sandbox web`, `web.enabled`) | Beta | Agents, live terminals, status, apps, accounts and settings in your browser, with search (Ctrl+K). This PC only, signed in with a token; devices on your network if you allow them. [web-ui.md](docs/web-ui.md) |
|
|
125
|
+
| **Agent commands** (`sandbox agent-commands on`) | Beta | Typing `claude`, `codex` ... in any folder starts that agent in a hidden sandbox and attaches your terminal. |
|
|
126
|
+
| **Contained storage** (`sandbox storage contained on`) | Beta | Tools, logins and logs in one disk image, mounted only while a sandbox runs. One admin prompt per launch. [Details](docs/configuration.md#contained-storage-beta) |
|
|
127
|
+
| **VPN** (`sandbox vpn`, `vpn.enabled`) | Alpha | The sandbox's traffic through NordVPN, your own OpenVPN profile or a WireGuard config, with a kill switch. A tunnel carrying traffic is not confirmed yet: read [vpn.md](docs/vpn.md) first. |
|
|
128
|
+
| **HCS engine** (`sandbox.engine: hcs`) | Alpha | Headless agents in a Hyper-V isolated Server Core container. `sandbox engine check hcs` shows what your PC lacks. Starting it is not enabled yet. |
|
|
128
129
|
|
|
129
130
|
## Known gaps
|
|
130
131
|
|
|
131
|
-
- Adding a folder to a
|
|
132
|
-
untested). On older Windows, folders inside a project root open at once and anything else offers a restart.
|
|
133
|
-
[Details
|
|
134
|
-
|
|
135
|
-
- Windows Sandbox runs one sandbox at a time per PC; every project and agent shares it.
|
|
132
|
+
- Adding a folder to a **running** sandbox needs Windows 11 24H2+ with the updated Windows Sandbox (`wsb share`,
|
|
133
|
+
untested). On older Windows, folders inside a project root open at once, and anything else offers a restart.
|
|
134
|
+
[Details](docs/projects.md#adding-a-project-to-a-running-sandbox).
|
|
135
|
+
- Windows Sandbox runs one sandbox per PC. Every project and agent shares it.
|
|
136
136
|
- What is planned next: [roadmap](docs/roadmap.md).
|
|
137
137
|
|
|
138
138
|
## Documentation
|
|
139
139
|
|
|
140
|
-
All docs,
|
|
140
|
+
All docs, one line each: [docs/README.md](docs/README.md). The main ones:
|
|
141
141
|
|
|
142
|
-
- [Install](docs/install.md): requirements, other ways to install,
|
|
143
|
-
- [Commands](docs/commands.md): every command and option, the menu, sessions
|
|
144
|
-
- [Tools and databases](docs/toolchains.md): languages,
|
|
142
|
+
- [Install](docs/install.md): requirements, other ways to install, updating, uninstalling
|
|
143
|
+
- [Commands](docs/commands.md): every command and option, the menu, sessions
|
|
144
|
+
- [Tools and databases](docs/toolchains.md): languages, apps, databases, agents
|
|
145
145
|
- [Configuration](docs/configuration.md): settings, project files, paths, accounts, hooks
|
|
146
|
-
- [Several projects](docs/projects.md): project roots,
|
|
146
|
+
- [Several projects](docs/projects.md): project roots, joining a running sandbox, what each agent can see
|
|
147
147
|
- [Security](docs/security.md): how your PC is protected, secrets, git access
|
|
148
148
|
- [Web UI](docs/web-ui.md) (Beta) and [VPN](docs/vpn.md) (Alpha)
|
|
149
|
-
- [Troubleshooting](docs/troubleshooting.md): common problems,
|
|
150
|
-
- [Changelog](CHANGELOG.md) and [roadmap](docs/roadmap.md)
|
|
149
|
+
- [Troubleshooting](docs/troubleshooting.md): common problems, heavy load, crash reports
|
|
150
|
+
- [Changelog](CHANGELOG.md) and [roadmap](docs/roadmap.md)
|
|
151
151
|
- [Development](docs/development.md): building, testing, releasing (code layout in [CLAUDE.md](CLAUDE.md))
|
package/config.example.json
CHANGED
|
@@ -68,6 +68,38 @@
|
|
|
68
68
|
"github": {
|
|
69
69
|
"shareToken": false
|
|
70
70
|
},
|
|
71
|
+
"accounts": {
|
|
72
|
+
"epic": {
|
|
73
|
+
"share": false
|
|
74
|
+
},
|
|
75
|
+
"steam": {
|
|
76
|
+
"share": false
|
|
77
|
+
},
|
|
78
|
+
"unity": {
|
|
79
|
+
"share": false
|
|
80
|
+
},
|
|
81
|
+
"cfx": {
|
|
82
|
+
"share": false
|
|
83
|
+
},
|
|
84
|
+
"keystore": {
|
|
85
|
+
"share": false
|
|
86
|
+
},
|
|
87
|
+
"play": {
|
|
88
|
+
"share": false
|
|
89
|
+
},
|
|
90
|
+
"expo": {
|
|
91
|
+
"share": false
|
|
92
|
+
},
|
|
93
|
+
"appstore": {
|
|
94
|
+
"share": false
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
"pcInstalls": {
|
|
98
|
+
"steamGames": false,
|
|
99
|
+
"epicGames": false,
|
|
100
|
+
"unrealEngines": false,
|
|
101
|
+
"unityEditors": false
|
|
102
|
+
},
|
|
71
103
|
"provisioning": {
|
|
72
104
|
"copyFromHost": true,
|
|
73
105
|
"fallbackToInstall": true,
|
|
@@ -122,7 +154,65 @@
|
|
|
122
154
|
"enabled": "auto",
|
|
123
155
|
"acceptLicense": false,
|
|
124
156
|
"components": [],
|
|
125
|
-
"keepInstallFiles": true
|
|
157
|
+
"keepInstallFiles": true,
|
|
158
|
+
"persistEngines": true,
|
|
159
|
+
"derivedDataCache": "persisted"
|
|
160
|
+
},
|
|
161
|
+
"unity": {
|
|
162
|
+
"enabled": "auto",
|
|
163
|
+
"acceptLicense": false,
|
|
164
|
+
"version": "project",
|
|
165
|
+
"modules": [],
|
|
166
|
+
"hub": false,
|
|
167
|
+
"keepVersions": 2
|
|
168
|
+
},
|
|
169
|
+
"godot": {
|
|
170
|
+
"enabled": "auto",
|
|
171
|
+
"version": "project",
|
|
172
|
+
"dotnet": "auto",
|
|
173
|
+
"exportTemplates": true,
|
|
174
|
+
"keepVersions": 2
|
|
175
|
+
},
|
|
176
|
+
"steam": {
|
|
177
|
+
"enabled": "auto",
|
|
178
|
+
"client": false,
|
|
179
|
+
"sdkFolder": ""
|
|
180
|
+
},
|
|
181
|
+
"fivem": {
|
|
182
|
+
"enabled": "auto",
|
|
183
|
+
"acceptLicense": false,
|
|
184
|
+
"game": "gta5",
|
|
185
|
+
"artifact": "recommended",
|
|
186
|
+
"txAdmin": true,
|
|
187
|
+
"keepVersions": 2
|
|
188
|
+
},
|
|
189
|
+
"android": {
|
|
190
|
+
"enabled": "auto",
|
|
191
|
+
"acceptLicense": false,
|
|
192
|
+
"platforms": [
|
|
193
|
+
"project"
|
|
194
|
+
],
|
|
195
|
+
"buildTools": "latest",
|
|
196
|
+
"ndk": "auto",
|
|
197
|
+
"cmake": "auto",
|
|
198
|
+
"packages": []
|
|
199
|
+
},
|
|
200
|
+
"flutter": {
|
|
201
|
+
"enabled": "auto",
|
|
202
|
+
"version": "project",
|
|
203
|
+
"windowsDesktop": false,
|
|
204
|
+
"precache": [
|
|
205
|
+
"android",
|
|
206
|
+
"web"
|
|
207
|
+
]
|
|
208
|
+
},
|
|
209
|
+
"dart": {
|
|
210
|
+
"enabled": "auto",
|
|
211
|
+
"version": "stable"
|
|
212
|
+
},
|
|
213
|
+
"reactNative": {
|
|
214
|
+
"enabled": "auto",
|
|
215
|
+
"easCli": true
|
|
126
216
|
},
|
|
127
217
|
"cpp": {
|
|
128
218
|
"enabled": "auto",
|
|
@@ -139,7 +229,8 @@
|
|
|
139
229
|
"net48",
|
|
140
230
|
"net472"
|
|
141
231
|
],
|
|
142
|
-
"netfx35": false
|
|
232
|
+
"netfx35": false,
|
|
233
|
+
"templates": []
|
|
143
234
|
},
|
|
144
235
|
"go": {
|
|
145
236
|
"enabled": "auto",
|
|
@@ -150,7 +241,8 @@
|
|
|
150
241
|
"enabled": "auto",
|
|
151
242
|
"version": "lts",
|
|
152
243
|
"maven": true,
|
|
153
|
-
"gradle": true
|
|
244
|
+
"gradle": true,
|
|
245
|
+
"kotlin": false
|
|
154
246
|
},
|
|
155
247
|
"ruby": {
|
|
156
248
|
"enabled": "auto",
|
|
@@ -330,7 +422,8 @@
|
|
|
330
422
|
"bootReset": [
|
|
331
423
|
".sandbox-secrets",
|
|
332
424
|
".sandbox\\setup_marker.json",
|
|
333
|
-
".sandbox\\deny_read_acl_state.json"
|
|
425
|
+
".sandbox\\deny_read_acl_state.json",
|
|
426
|
+
"tmp\\arg0"
|
|
334
427
|
],
|
|
335
428
|
"resumeArguments": [
|
|
336
429
|
"resume",
|
|
@@ -1,13 +1,22 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { type Page, type Section } from '../../kernel/index.js';
|
|
3
|
+
import { type ServicesList } from './services.def.js';
|
|
3
4
|
export declare const AccountRowSchema: z.ZodObject<{
|
|
4
5
|
name: z.ZodString;
|
|
5
6
|
email: z.ZodNullable<z.ZodString>;
|
|
6
7
|
isDefault: z.ZodBoolean;
|
|
7
8
|
isActive: z.ZodBoolean;
|
|
8
9
|
savedAt: z.ZodString;
|
|
10
|
+
kind: z.ZodOptional<z.ZodEnum<{
|
|
11
|
+
subscription: "subscription";
|
|
12
|
+
console: "console";
|
|
13
|
+
"api-key": "api-key";
|
|
14
|
+
}>>;
|
|
15
|
+
keyHint: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
9
16
|
}, z.core.$strip>;
|
|
10
17
|
export type AccountRow = z.output<typeof AccountRowSchema>;
|
|
18
|
+
/** "API key sk-ant-...abcd", "Console sk-ant-...abcd", "subscription"; null when the agent does not say. */
|
|
19
|
+
export declare function kindText(r: Pick<AccountRow, 'kind' | 'keyHint'>): string | null;
|
|
11
20
|
export declare const AgentAccountsSchema: z.ZodObject<{
|
|
12
21
|
name: z.ZodString;
|
|
13
22
|
kept: z.ZodBoolean;
|
|
@@ -18,6 +27,12 @@ export declare const AgentAccountsSchema: z.ZodObject<{
|
|
|
18
27
|
isDefault: z.ZodBoolean;
|
|
19
28
|
isActive: z.ZodBoolean;
|
|
20
29
|
savedAt: z.ZodString;
|
|
30
|
+
kind: z.ZodOptional<z.ZodEnum<{
|
|
31
|
+
subscription: "subscription";
|
|
32
|
+
console: "console";
|
|
33
|
+
"api-key": "api-key";
|
|
34
|
+
}>>;
|
|
35
|
+
keyHint: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
21
36
|
}, z.core.$strip>>;
|
|
22
37
|
}, z.core.$strip>;
|
|
23
38
|
export type AgentAccounts = z.output<typeof AgentAccountsSchema>;
|
|
@@ -33,8 +48,33 @@ export declare const AccountsListSchema: z.ZodObject<{
|
|
|
33
48
|
isDefault: z.ZodBoolean;
|
|
34
49
|
isActive: z.ZodBoolean;
|
|
35
50
|
savedAt: z.ZodString;
|
|
51
|
+
kind: z.ZodOptional<z.ZodEnum<{
|
|
52
|
+
subscription: "subscription";
|
|
53
|
+
console: "console";
|
|
54
|
+
"api-key": "api-key";
|
|
55
|
+
}>>;
|
|
56
|
+
keyHint: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
36
57
|
}, z.core.$strip>>;
|
|
37
58
|
}, z.core.$strip>>;
|
|
59
|
+
services: z.ZodArray<z.ZodObject<{
|
|
60
|
+
kind: z.ZodString;
|
|
61
|
+
label: z.ZodString;
|
|
62
|
+
share: z.ZodBoolean;
|
|
63
|
+
state: z.ZodEnum<{
|
|
64
|
+
none: "none";
|
|
65
|
+
saved: "saved";
|
|
66
|
+
unreadable: "unreadable";
|
|
67
|
+
}>;
|
|
68
|
+
source: z.ZodNullable<z.ZodString>;
|
|
69
|
+
savedAt: z.ZodNullable<z.ZodString>;
|
|
70
|
+
summary: z.ZodNullable<z.ZodString>;
|
|
71
|
+
heldBy: z.ZodNullable<z.ZodString>;
|
|
72
|
+
usedBy: z.ZodArray<z.ZodString>;
|
|
73
|
+
warnings: z.ZodArray<z.ZodString>;
|
|
74
|
+
canImport: z.ZodBoolean;
|
|
75
|
+
canLogin: z.ZodBoolean;
|
|
76
|
+
needsFile: z.ZodBoolean;
|
|
77
|
+
}, z.core.$strip>>;
|
|
38
78
|
}, z.core.$strip>;
|
|
39
79
|
export type AccountsList = z.output<typeof AccountsListSchema>;
|
|
40
80
|
/** The name rule of a saved login: what the store accepts. */
|
|
@@ -55,13 +95,39 @@ export declare const listAccounts: import("../../kernel/define.js").QueryDef<z.Z
|
|
|
55
95
|
isDefault: z.ZodBoolean;
|
|
56
96
|
isActive: z.ZodBoolean;
|
|
57
97
|
savedAt: z.ZodString;
|
|
98
|
+
kind: z.ZodOptional<z.ZodEnum<{
|
|
99
|
+
subscription: "subscription";
|
|
100
|
+
console: "console";
|
|
101
|
+
"api-key": "api-key";
|
|
102
|
+
}>>;
|
|
103
|
+
keyHint: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
58
104
|
}, z.core.$strip>>;
|
|
59
105
|
}, z.core.$strip>>;
|
|
106
|
+
services: z.ZodArray<z.ZodObject<{
|
|
107
|
+
kind: z.ZodString;
|
|
108
|
+
label: z.ZodString;
|
|
109
|
+
share: z.ZodBoolean;
|
|
110
|
+
state: z.ZodEnum<{
|
|
111
|
+
none: "none";
|
|
112
|
+
saved: "saved";
|
|
113
|
+
unreadable: "unreadable";
|
|
114
|
+
}>;
|
|
115
|
+
source: z.ZodNullable<z.ZodString>;
|
|
116
|
+
savedAt: z.ZodNullable<z.ZodString>;
|
|
117
|
+
summary: z.ZodNullable<z.ZodString>;
|
|
118
|
+
heldBy: z.ZodNullable<z.ZodString>;
|
|
119
|
+
usedBy: z.ZodArray<z.ZodString>;
|
|
120
|
+
warnings: z.ZodArray<z.ZodString>;
|
|
121
|
+
canImport: z.ZodBoolean;
|
|
122
|
+
canLogin: z.ZodBoolean;
|
|
123
|
+
needsFile: z.ZodBoolean;
|
|
124
|
+
}, z.core.$strip>>;
|
|
60
125
|
}, z.core.$strip>, "accounts.list">;
|
|
61
126
|
export declare const saveAccount: import("../../kernel/define.js").OperationDef<z.ZodObject<{
|
|
62
127
|
agent: z.ZodDefault<z.ZodString>;
|
|
63
128
|
name: z.ZodOptional<z.ZodString>;
|
|
64
129
|
fromHost: z.ZodDefault<z.ZodBoolean>;
|
|
130
|
+
apiKey: z.ZodDefault<z.ZodBoolean>;
|
|
65
131
|
}, z.core.$strip>, z.ZodObject<{
|
|
66
132
|
name: z.ZodString;
|
|
67
133
|
message: z.ZodString;
|
|
@@ -95,8 +161,8 @@ export declare const removeAccount: import("../../kernel/define.js").OperationDe
|
|
|
95
161
|
}, z.core.$strip>, "accounts.remove">;
|
|
96
162
|
/** One agent's card: its save rows and logins (a card to pick from), or the note that its login is not kept. */
|
|
97
163
|
export declare function agentSection(a: AgentAccounts): Section;
|
|
98
|
-
/** The web's page: one card per agent (its logins and the save rows). */
|
|
99
|
-
export declare function accountsPage(o: AccountsList): Page;
|
|
164
|
+
/** The web's page: one card per agent (its logins and the save rows), then one section per service sign-in. */
|
|
165
|
+
export declare function accountsPage(o: AccountsList, services?: ServicesList): Page;
|
|
100
166
|
/**
|
|
101
167
|
* One agent's page for the menu: its section, and the keys of its save rows (s, p) which the menu's key bar shows
|
|
102
168
|
* while the agent's category is open. The keys of a login row (d, r, x) are on the row itself.
|
|
@@ -117,7 +183,55 @@ export declare const accountsView: import("../../kernel/define.js").ViewDef<{
|
|
|
117
183
|
isDefault: z.ZodBoolean;
|
|
118
184
|
isActive: z.ZodBoolean;
|
|
119
185
|
savedAt: z.ZodString;
|
|
186
|
+
kind: z.ZodOptional<z.ZodEnum<{
|
|
187
|
+
subscription: "subscription";
|
|
188
|
+
console: "console";
|
|
189
|
+
"api-key": "api-key";
|
|
190
|
+
}>>;
|
|
191
|
+
keyHint: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
120
192
|
}, z.core.$strip>>;
|
|
121
193
|
}, z.core.$strip>>;
|
|
194
|
+
services: z.ZodArray<z.ZodObject<{
|
|
195
|
+
kind: z.ZodString;
|
|
196
|
+
label: z.ZodString;
|
|
197
|
+
share: z.ZodBoolean;
|
|
198
|
+
state: z.ZodEnum<{
|
|
199
|
+
none: "none";
|
|
200
|
+
saved: "saved";
|
|
201
|
+
unreadable: "unreadable";
|
|
202
|
+
}>;
|
|
203
|
+
source: z.ZodNullable<z.ZodString>;
|
|
204
|
+
savedAt: z.ZodNullable<z.ZodString>;
|
|
205
|
+
summary: z.ZodNullable<z.ZodString>;
|
|
206
|
+
heldBy: z.ZodNullable<z.ZodString>;
|
|
207
|
+
usedBy: z.ZodArray<z.ZodString>;
|
|
208
|
+
warnings: z.ZodArray<z.ZodString>;
|
|
209
|
+
canImport: z.ZodBoolean;
|
|
210
|
+
canLogin: z.ZodBoolean;
|
|
211
|
+
needsFile: z.ZodBoolean;
|
|
212
|
+
}, z.core.$strip>>;
|
|
122
213
|
}, z.core.$strip>, "accounts.list">;
|
|
214
|
+
services: import("../../kernel/define.js").QueryDef<z.ZodObject<{
|
|
215
|
+
name: z.ZodOptional<z.ZodString>;
|
|
216
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
217
|
+
services: z.ZodArray<z.ZodObject<{
|
|
218
|
+
kind: z.ZodString;
|
|
219
|
+
label: z.ZodString;
|
|
220
|
+
share: z.ZodBoolean;
|
|
221
|
+
state: z.ZodEnum<{
|
|
222
|
+
none: "none";
|
|
223
|
+
saved: "saved";
|
|
224
|
+
unreadable: "unreadable";
|
|
225
|
+
}>;
|
|
226
|
+
source: z.ZodNullable<z.ZodString>;
|
|
227
|
+
savedAt: z.ZodNullable<z.ZodString>;
|
|
228
|
+
summary: z.ZodNullable<z.ZodString>;
|
|
229
|
+
heldBy: z.ZodNullable<z.ZodString>;
|
|
230
|
+
usedBy: z.ZodArray<z.ZodString>;
|
|
231
|
+
warnings: z.ZodArray<z.ZodString>;
|
|
232
|
+
canImport: z.ZodBoolean;
|
|
233
|
+
canLogin: z.ZodBoolean;
|
|
234
|
+
needsFile: z.ZodBoolean;
|
|
235
|
+
}, z.core.$strip>>;
|
|
236
|
+
}, z.core.$strip>, "accounts.services">;
|
|
123
237
|
}, Record<string, never>, "accounts">;
|