windows-development-sandbox 1.5.0 → 1.9.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 +1 -0
- package/config.example.json +27 -1
- package/dist/app/context.d.ts +8 -0
- package/dist/app/context.js +12 -0
- package/dist/app/features/defs.d.ts +322 -0
- package/dist/app/features/defs.js +28 -0
- package/dist/app/features/sandbox/index.d.ts +2 -0
- package/dist/app/features/sandbox/index.js +3 -0
- package/dist/app/features/sandbox/sandbox.def.d.ts +193 -0
- package/dist/app/features/sandbox/sandbox.def.js +245 -0
- package/dist/app/features/sandbox/sandbox.run.d.ts +72 -0
- package/dist/app/features/sandbox/sandbox.run.js +98 -0
- package/dist/app/features/sessions/index.d.ts +2 -0
- package/dist/app/features/sessions/index.js +3 -0
- package/dist/app/features/sessions/sessions.def.d.ts +141 -0
- package/dist/app/features/sessions/sessions.def.js +176 -0
- package/dist/app/features/sessions/sessions.run.d.ts +39 -0
- package/dist/app/features/sessions/sessions.run.js +58 -0
- package/dist/{cli/menu/settings/categories.d.ts → app/features/settings/categories.def.d.ts} +4 -0
- package/dist/{cli/menu/settings/categories.js → app/features/settings/categories.def.js} +40 -46
- package/dist/app/features/settings/index.d.ts +5 -0
- package/dist/app/features/settings/index.js +6 -0
- package/dist/{cli/menu/settings/config-file.d.ts → app/features/settings/settings-file.d.ts} +1 -1
- package/dist/{cli/menu/settings/config-file.js → app/features/settings/settings-file.js} +1 -1
- package/dist/app/features/settings/settings-rows.d.ts +35 -0
- package/dist/app/features/settings/settings-rows.js +94 -0
- package/dist/app/features/settings/settings.def.d.ts +157 -0
- package/dist/app/features/settings/settings.def.js +179 -0
- package/dist/app/features/settings/settings.run.d.ts +67 -0
- package/dist/app/features/settings/settings.run.js +84 -0
- package/dist/app/kernel/define.d.ts +143 -0
- package/dist/app/kernel/define.js +42 -0
- package/dist/app/kernel/errors.d.ts +34 -0
- package/dist/app/kernel/errors.js +45 -0
- package/dist/app/kernel/fields.d.ts +70 -0
- package/dist/app/kernel/fields.js +243 -0
- package/dist/app/kernel/index.d.ts +8 -0
- package/dist/app/kernel/index.js +10 -0
- package/dist/app/kernel/io.d.ts +193 -0
- package/dist/app/kernel/io.js +126 -0
- package/dist/app/kernel/rpc.d.ts +156 -0
- package/dist/app/kernel/rpc.js +47 -0
- package/dist/{cli/menu/settings → app/kernel}/schema-node.d.ts +9 -0
- package/dist/{cli/menu/settings → app/kernel}/schema-node.js +26 -0
- package/dist/app/kernel/text.d.ts +6 -0
- package/dist/app/kernel/text.js +57 -0
- package/dist/app/kernel/view.d.ts +146 -0
- package/dist/app/kernel/view.js +28 -0
- package/dist/app/registry.d.ts +10 -0
- package/dist/app/registry.js +50 -0
- package/dist/cli/args.d.ts +18 -2
- package/dist/cli/args.js +101 -24
- package/dist/cli/commands/accounts.js +45 -17
- package/dist/cli/commands/context.d.ts +2 -0
- package/dist/cli/commands/context.js +9 -2
- package/dist/cli/commands/data/clean.js +32 -9
- package/dist/cli/commands/engine.d.ts +2 -0
- package/dist/cli/commands/engine.js +60 -0
- package/dist/cli/commands/index.d.ts +2 -1
- package/dist/cli/commands/index.js +2 -1
- package/dist/cli/commands/launch/add-root.d.ts +3 -2
- package/dist/cli/commands/launch/add-root.js +11 -10
- package/dist/cli/commands/launch/launch.js +102 -9
- package/dist/cli/commands/launch/prepare.js +6 -4
- package/dist/cli/commands/launch/running.js +2 -1
- package/dist/cli/commands/launch/summary.d.ts +2 -0
- package/dist/cli/commands/maintenance/audit.js +1 -1
- package/dist/cli/commands/maintenance/clean.d.ts +1 -1
- package/dist/cli/commands/maintenance/clean.js +17 -3
- package/dist/cli/commands/maintenance/config-share.d.ts +12 -0
- package/dist/cli/commands/maintenance/config-share.js +80 -0
- package/dist/cli/commands/maintenance/config.d.ts +1 -1
- package/dist/cli/commands/maintenance/config.js +38 -10
- package/dist/cli/commands/maintenance/doctor.d.ts +1 -1
- package/dist/cli/commands/maintenance/doctor.js +2 -4
- package/dist/cli/commands/maintenance/logs.js +14 -0
- package/dist/cli/commands/maintenance/migrate.d.ts +2 -1
- package/dist/cli/commands/maintenance/migrate.js +19 -4
- package/dist/cli/commands/maintenance/sync.js +2 -0
- package/dist/cli/commands/maintenance/update.d.ts +2 -0
- package/dist/cli/commands/maintenance/update.js +27 -4
- package/dist/cli/commands/projects/here.js +12 -7
- package/dist/cli/commands/projects/projects.js +26 -17
- package/dist/cli/commands/registry.js +10 -7
- package/dist/cli/commands/repair/checks/agents.d.ts +2 -0
- package/dist/cli/commands/repair/checks/agents.js +70 -0
- package/dist/cli/commands/repair/checks/common.d.ts +8 -0
- package/dist/cli/commands/repair/checks/common.js +22 -0
- package/dist/cli/commands/repair/checks/contained.d.ts +2 -0
- package/dist/cli/commands/repair/checks/contained.js +139 -0
- package/dist/cli/commands/repair/checks/data.d.ts +2 -0
- package/dist/cli/commands/repair/checks/data.js +241 -0
- package/dist/cli/commands/repair/checks/hcs.d.ts +7 -0
- package/dist/cli/commands/repair/checks/hcs.js +28 -0
- package/dist/cli/commands/repair/checks/index.d.ts +2 -0
- package/dist/cli/commands/repair/checks/index.js +24 -0
- package/dist/cli/commands/repair/checks/install.d.ts +5 -0
- package/dist/cli/commands/repair/checks/install.js +318 -0
- package/dist/cli/commands/repair/checks/machine.d.ts +2 -0
- package/dist/cli/commands/repair/checks/machine.js +232 -0
- package/dist/cli/commands/repair/checks/network.d.ts +6 -0
- package/dist/cli/commands/repair/checks/network.js +60 -0
- package/dist/cli/commands/repair/checks/pc.d.ts +4 -0
- package/dist/cli/commands/repair/checks/pc.js +86 -0
- package/dist/cli/commands/repair/checks/sandbox.d.ts +2 -0
- package/dist/cli/commands/repair/checks/sandbox.js +282 -0
- package/dist/cli/commands/repair/checks/settings.d.ts +2 -0
- package/dist/cli/commands/repair/checks/settings.js +169 -0
- package/dist/cli/commands/repair/checks/vpn.d.ts +2 -0
- package/dist/cli/commands/repair/checks/vpn.js +78 -0
- package/dist/cli/commands/repair/engine.d.ts +32 -0
- package/dist/cli/commands/repair/engine.js +127 -0
- package/dist/cli/commands/repair/env.d.ts +7 -0
- package/dist/cli/commands/repair/env.js +50 -0
- package/dist/cli/commands/repair/index.d.ts +1 -9
- package/dist/cli/commands/repair/index.js +2 -54
- package/dist/cli/commands/repair/log.d.ts +17 -0
- package/dist/cli/commands/repair/log.js +82 -0
- package/dist/cli/commands/repair/printer.d.ts +32 -0
- package/dist/cli/commands/repair/printer.js +132 -0
- package/dist/cli/commands/repair/run.d.ts +33 -0
- package/dist/cli/commands/repair/run.js +133 -0
- package/dist/cli/commands/repair/types.d.ts +97 -9
- package/dist/cli/commands/repair/types.js +11 -7
- package/dist/cli/commands/resume.js +2 -2
- package/dist/cli/commands/sessions/index.d.ts +0 -4
- package/dist/cli/commands/sessions/index.js +3 -7
- package/dist/cli/commands/setup/index.d.ts +5 -0
- package/dist/cli/commands/setup/index.js +25 -1
- package/dist/cli/commands/shared-use.d.ts +5 -2
- package/dist/cli/commands/shared-use.js +11 -8
- package/dist/cli/commands/storage/contained.d.ts +3 -0
- package/dist/cli/commands/storage/contained.js +179 -0
- package/dist/cli/commands/storage/index.d.ts +2 -0
- package/dist/cli/commands/storage/index.js +2 -0
- package/dist/cli/commands/storage/offer.d.ts +3 -0
- package/dist/cli/commands/storage/offer.js +91 -0
- package/dist/cli/commands/storage/storage.d.ts +8 -0
- package/dist/cli/commands/storage/storage.js +179 -0
- package/dist/cli/commands/user-config.js +2 -2
- package/dist/cli/commands/vpn.d.ts +4 -0
- package/dist/cli/commands/vpn.js +91 -0
- package/dist/cli/commands/web.d.ts +4 -0
- package/dist/cli/commands/web.js +97 -0
- package/dist/cli/history.js +1 -1
- package/dist/cli/index.js +48 -4
- package/dist/cli/manifest.d.ts +339 -97
- package/dist/cli/manifest.js +222 -67
- package/dist/cli/menu/add-agent.d.ts +47 -0
- package/dist/cli/menu/add-agent.js +168 -0
- package/dist/cli/menu/apps.d.ts +38 -3
- package/dist/cli/menu/apps.js +80 -5
- package/dist/cli/menu/command-fields.d.ts +18 -0
- package/dist/cli/menu/command-fields.js +61 -0
- package/dist/cli/menu/command-form.d.ts +22 -0
- package/dist/cli/menu/command-form.js +169 -46
- package/dist/cli/menu/data-folder.d.ts +18 -0
- package/dist/cli/menu/data-folder.js +99 -0
- package/dist/cli/menu/io-menu.d.ts +29 -0
- package/dist/cli/menu/io-menu.js +126 -0
- package/dist/cli/menu/live.d.ts +27 -0
- package/dist/cli/menu/live.js +69 -0
- package/dist/cli/menu/memory.d.ts +19 -0
- package/dist/cli/menu/memory.js +53 -0
- package/dist/cli/menu/menu.d.ts +11 -2
- package/dist/cli/menu/menu.js +36 -15
- package/dist/cli/menu/pages/accounts-page.js +55 -24
- package/dist/cli/menu/pages/agents-page.d.ts +68 -0
- package/dist/cli/menu/pages/agents-page.js +345 -0
- package/dist/cli/menu/pages/apps-page.d.ts +3 -1
- package/dist/cli/menu/pages/apps-page.js +20 -4
- package/dist/cli/menu/pages/list-page.d.ts +43 -3
- package/dist/cli/menu/pages/list-page.js +146 -12
- package/dist/cli/menu/pages/maintenance-page.d.ts +9 -5
- package/dist/cli/menu/pages/maintenance-page.js +172 -85
- package/dist/cli/menu/pages/sandbox-page.d.ts +7 -6
- package/dist/cli/menu/pages/sandbox-page.js +117 -120
- package/dist/cli/menu/pages/scopes.d.ts +1 -1
- package/dist/cli/menu/pages/sessions-page.d.ts +6 -8
- package/dist/cli/menu/pages/sessions-page.js +22 -75
- package/dist/cli/menu/pages/settings-page.d.ts +10 -14
- package/dist/cli/menu/pages/settings-page.js +95 -102
- package/dist/cli/menu/render-view.d.ts +28 -0
- package/dist/cli/menu/render-view.js +112 -0
- package/dist/cli/menu/settings/ask-path.d.ts +14 -0
- package/dist/cli/menu/settings/ask-path.js +14 -0
- package/dist/cli/menu/settings/collections/collection-editor.d.ts +8 -2
- package/dist/cli/menu/settings/collections/collection-editor.js +12 -8
- package/dist/cli/menu/settings/collections/map-editor.js +5 -1
- package/dist/cli/menu/settings/collections/object-list-editor.js +2 -2
- package/dist/cli/menu/settings/collections/object-map-editor.js +2 -2
- package/dist/cli/menu/settings/collections/string-list-editor.d.ts +10 -1
- package/dist/cli/menu/settings/collections/string-list-editor.js +23 -0
- package/dist/cli/menu/settings/draft.d.ts +1 -1
- package/dist/cli/menu/settings/format.d.ts +1 -3
- package/dist/cli/menu/settings/format.js +6 -36
- package/dist/cli/menu/settings/index.d.ts +1 -3
- package/dist/cli/menu/settings/index.js +3 -3
- package/dist/cli/menu/settings/object-editor.d.ts +6 -2
- package/dist/cli/menu/settings/object-editor.js +15 -4
- package/dist/cli/menu/settings/share.d.ts +36 -0
- package/dist/cli/menu/settings/share.js +131 -0
- package/dist/cli/menu/settings/value-editor.d.ts +10 -1
- package/dist/cli/menu/settings/value-editor.js +99 -63
- package/dist/cli/menu/several.js +7 -5
- package/dist/cli/menu/share-settings.d.ts +21 -0
- package/dist/cli/menu/share-settings.js +112 -0
- package/dist/cli/menu/shell.d.ts +53 -10
- package/dist/cli/menu/shell.js +115 -10
- package/dist/cli/menu/views.d.ts +7 -0
- package/dist/cli/menu/views.js +11 -0
- package/dist/cli/menu/vpn-login.d.ts +16 -0
- package/dist/cli/menu/vpn-login.js +74 -0
- package/dist/cli/operations/handler.d.ts +6 -0
- package/dist/cli/operations/handler.js +61 -0
- package/dist/cli/operations/index.d.ts +4 -0
- package/dist/cli/operations/index.js +5 -0
- package/dist/cli/operations/input.d.ts +6 -0
- package/dist/cli/operations/input.js +37 -0
- package/dist/cli/operations/io-cli.d.ts +7 -0
- package/dist/cli/operations/io-cli.js +62 -0
- package/dist/cli/operations/spec.d.ts +18 -0
- package/dist/cli/operations/spec.js +108 -0
- package/dist/cli/output/colors.d.ts +2 -2
- package/dist/cli/output/colors.js +2 -11
- package/dist/cli/output/index.d.ts +1 -0
- package/dist/cli/output/index.js +1 -0
- package/dist/cli/output/print.d.ts +5 -1
- package/dist/cli/output/print.js +15 -4
- package/dist/cli/output/progress.d.ts +15 -0
- package/dist/cli/output/progress.js +44 -0
- package/dist/cli/output/render-view.d.ts +4 -0
- package/dist/cli/output/render-view.js +63 -0
- package/dist/cli/services/accounts-service.d.ts +2 -0
- package/dist/cli/services/accounts-service.js +2 -2
- package/dist/cli/services/agent-commands-service.d.ts +2 -0
- package/dist/cli/services/agent-commands-service.js +11 -2
- package/dist/cli/services/health-service.d.ts +0 -6
- package/dist/cli/services/health-service.js +5 -42
- package/dist/cli/services/index.d.ts +3 -1
- package/dist/cli/services/index.js +3 -1
- package/dist/cli/services/logs-service.js +4 -3
- package/dist/cli/services/migrate-service.js +1 -1
- package/dist/cli/services/update-service.d.ts +2 -0
- package/dist/cli/services/update-service.js +13 -6
- package/dist/cli/services/vpn-service.d.ts +28 -0
- package/dist/cli/services/vpn-service.js +46 -0
- package/dist/cli/services/web-service.d.ts +22 -0
- package/dist/cli/services/web-service.js +111 -0
- package/dist/cli/tui/app.d.ts +12 -4
- package/dist/cli/tui/app.js +38 -9
- package/dist/cli/tui/dialogs/path-listing.d.ts +43 -0
- package/dist/cli/tui/dialogs/path-listing.js +127 -0
- package/dist/cli/tui/dialogs/path-picker.d.ts +67 -0
- package/dist/cli/tui/dialogs/path-picker.js +423 -0
- package/dist/cli/tui/dialogs/text-screen.d.ts +6 -0
- package/dist/cli/tui/dialogs/text-screen.js +10 -3
- package/dist/cli/tui/frame.d.ts +7 -10
- package/dist/cli/tui/frame.js +19 -10
- package/dist/cli/tui/index.d.ts +4 -3
- package/dist/cli/tui/index.js +2 -1
- package/dist/cli/tui/list/list-screen.d.ts +28 -2
- package/dist/cli/tui/list/list-screen.js +130 -66
- package/dist/cli/tui/list/list-types.d.ts +10 -4
- package/dist/cli/tui/nav.d.ts +29 -0
- package/dist/cli/tui/nav.js +67 -0
- package/dist/cli/tui/terminal.d.ts +7 -0
- package/dist/cli/tui/terminal.js +30 -10
- package/dist/cli/validate.d.ts +1 -1
- package/dist/cli/validate.js +3 -3
- package/dist/cli/version.d.ts +2 -0
- package/dist/cli/version.js +11 -0
- package/dist/core/config/defaults.js +13 -1
- package/dist/core/config/loader.js +12 -2
- package/dist/core/local-config/overrides.js +1 -0
- package/dist/core/prompt.d.ts +19 -0
- package/dist/core/prompt.js +43 -3
- package/dist/core/schema/common.d.ts +6 -0
- package/dist/core/schema/common.js +8 -0
- package/dist/core/schema/config.d.ts +36 -0
- package/dist/core/schema/config.js +26 -2
- package/dist/core/schema/harness.d.ts +2 -0
- package/dist/core/schema/harness.js +13 -2
- package/dist/core/schema/index.d.ts +3 -1
- package/dist/core/schema/index.js +3 -1
- package/dist/core/schema/profile.d.ts +1 -0
- package/dist/core/schema/profile.js +3 -0
- package/dist/core/schema/redact.d.ts +13 -0
- package/dist/core/schema/redact.js +75 -0
- package/dist/core/schema/sandbox.d.ts +6 -0
- package/dist/core/schema/sandbox.js +21 -3
- package/dist/core/schema/vpn.d.ts +18 -0
- package/dist/core/schema/vpn.js +22 -0
- package/dist/core/schema/web.d.ts +6 -0
- package/dist/core/schema/web.js +14 -0
- package/dist/core/types.d.ts +44 -0
- package/dist/core/util/fs.d.ts +2 -0
- package/dist/core/util/fs.js +9 -0
- package/dist/core/util/index.d.ts +1 -1
- package/dist/core/util/index.js +1 -1
- package/dist/guest/agents/agent-files.d.ts +54 -0
- package/dist/guest/agents/agent-files.js +67 -0
- package/dist/guest/agents/agent-installer.js +2 -9
- package/dist/guest/agents/local-state.d.ts +14 -0
- package/dist/guest/agents/local-state.js +218 -0
- package/dist/guest/agents/sbx-agent.d.ts +2 -0
- package/dist/guest/agents/sbx-agent.js +35 -0
- package/dist/guest/boot/boot.d.ts +4 -0
- package/dist/guest/boot/boot.js +51 -11
- package/dist/guest/daemon/daemon.js +8 -1
- package/dist/guest/daemon/exec.js +2 -1
- package/dist/guest/daemon/idle-shutdown.js +2 -0
- package/dist/guest/daemon/sessions.d.ts +5 -0
- package/dist/guest/daemon/sessions.js +20 -3
- package/dist/guest/entries/agent.d.ts +1 -0
- package/dist/guest/entries/agent.js +10 -0
- package/dist/guest/entries/daemon.js +5 -0
- package/dist/guest/governor/decide.d.ts +61 -0
- package/dist/guest/governor/decide.js +182 -0
- package/dist/guest/governor/governor.d.ts +42 -0
- package/dist/guest/governor/governor.js +214 -0
- package/dist/guest/governor/index.d.ts +2 -0
- package/dist/guest/governor/index.js +2 -0
- package/dist/guest/runtime/csc.d.ts +2 -0
- package/dist/guest/runtime/csc.js +2 -0
- package/dist/guest/runtime/secrets.d.ts +12 -0
- package/dist/guest/runtime/secrets.js +63 -0
- package/dist/guest/sessions/viewer.js +3 -1
- package/dist/guest/setup/claude-profile.d.ts +2 -1
- package/dist/guest/setup/claude-profile.js +12 -1
- package/dist/guest/setup/environment.d.ts +6 -0
- package/dist/guest/setup/environment.js +56 -6
- package/dist/guest/setup/path-plan.d.ts +32 -0
- package/dist/guest/setup/path-plan.js +67 -0
- package/dist/guest/setup/shell-path.d.ts +1 -0
- package/dist/guest/setup/shell-path.js +22 -0
- package/dist/guest/toolchains/languages/python.js +1 -1
- package/dist/guest/toolchains/native/rust-extras.js +4 -2
- package/dist/guest/toolchains/runtimes.js +2 -2
- package/dist/guest/vpn/index.d.ts +1 -0
- package/dist/guest/vpn/index.js +1 -0
- package/dist/guest/vpn/openvpn.d.ts +9 -0
- package/dist/guest/vpn/openvpn.js +47 -0
- package/dist/guest/vpn/tunnel.d.ts +17 -0
- package/dist/guest/vpn/tunnel.js +78 -0
- package/dist/guest/vpn/vpn.d.ts +6 -0
- package/dist/guest/vpn/vpn.js +174 -0
- package/dist/guest/vpn/wireguard.d.ts +32 -0
- package/dist/guest/vpn/wireguard.js +132 -0
- package/dist/host/agent-commands/commands.d.ts +4 -0
- package/dist/host/agent-commands/commands.js +31 -7
- package/dist/host/audit/log.d.ts +1 -1
- package/dist/host/channel/attach.d.ts +6 -2
- package/dist/host/channel/attach.js +6 -3
- package/dist/host/channel/channel.d.ts +9 -0
- package/dist/host/channel/channel.js +30 -2
- package/dist/host/engines/engine.d.ts +12 -0
- package/dist/host/engines/engine.js +1 -0
- package/dist/host/engines/hcs/check.d.ts +25 -0
- package/dist/host/engines/hcs/check.js +95 -0
- package/dist/host/engines/hcs/documents.d.ts +44 -0
- package/dist/host/engines/hcs/documents.js +155 -0
- package/dist/host/engines/hcs/engine.d.ts +39 -0
- package/dist/host/engines/hcs/engine.js +171 -0
- package/dist/host/engines/hcs/helper.d.ts +43 -0
- package/dist/host/engines/hcs/helper.js +173 -0
- package/dist/host/engines/hcs/images.d.ts +37 -0
- package/dist/host/engines/hcs/images.js +152 -0
- package/dist/host/engines/index.d.ts +7 -0
- package/dist/host/engines/index.js +5 -0
- package/dist/host/engines/registry.d.ts +16 -0
- package/dist/host/engines/registry.js +30 -0
- package/dist/host/engines/types.d.ts +58 -0
- package/dist/host/engines/types.js +1 -0
- package/dist/host/engines/windows-sandbox/engine.d.ts +16 -0
- package/dist/host/engines/windows-sandbox/engine.js +63 -0
- package/dist/host/engines/windows-sandbox/wsb-text.d.ts +2 -0
- package/dist/host/engines/windows-sandbox/wsb-text.js +29 -0
- package/dist/host/health/acl-read.d.ts +17 -0
- package/dist/host/health/acl-read.js +45 -0
- package/dist/host/health/config-backup.d.ts +11 -0
- package/dist/host/health/config-backup.js +73 -0
- package/dist/host/health/index.d.ts +6 -0
- package/dist/host/health/index.js +7 -0
- package/dist/host/health/install-state.d.ts +33 -0
- package/dist/host/health/install-state.js +110 -0
- package/dist/host/health/path-copies.d.ts +32 -0
- package/dist/host/health/path-copies.js +82 -0
- package/dist/host/health/stale.d.ts +45 -0
- package/dist/host/health/stale.js +120 -0
- package/dist/host/health/system.d.ts +37 -0
- package/dist/host/health/system.js +87 -0
- package/dist/host/install/copies.d.ts +13 -0
- package/dist/host/install/copies.js +63 -0
- package/dist/host/install/index.d.ts +1 -0
- package/dist/host/install/index.js +1 -0
- package/dist/host/launch/generate.d.ts +5 -1
- package/dist/host/launch/generate.js +73 -7
- package/dist/host/launch/index.d.ts +3 -1
- package/dist/host/launch/index.js +3 -1
- package/dist/host/launch/launch-plan.d.ts +13 -0
- package/dist/host/launch/launch-plan.js +26 -0
- package/dist/host/launch/mappings.js +2 -1
- package/dist/host/launch/risk-notes.d.ts +10 -0
- package/dist/host/launch/risk-notes.js +18 -0
- package/dist/host/launch/session-file.d.ts +2 -0
- package/dist/host/launch/session-file.js +11 -2
- package/dist/host/launch/stage.js +1 -1
- package/dist/host/launch/wsb-file.d.ts +28 -4
- package/dist/host/launch/wsb-file.js +61 -42
- package/dist/host/life/crash-report.d.ts +27 -1
- package/dist/host/life/crash-report.js +173 -7
- package/dist/host/life/host-memory.d.ts +40 -0
- package/dist/host/life/host-memory.js +137 -0
- package/dist/host/life/index.d.ts +2 -0
- package/dist/host/life/index.js +2 -0
- package/dist/host/life/stop-events.d.ts +2 -0
- package/dist/host/life/stop-events.js +20 -3
- package/dist/host/life/stop-warning.js +1 -1
- package/dist/host/life/watchdog.d.ts +54 -0
- package/dist/host/life/watchdog.js +108 -0
- package/dist/host/migrate/backup.js +3 -0
- package/dist/host/migrate/migrations/config-file.d.ts +2 -0
- package/dist/host/migrate/migrations/config-file.js +7 -0
- package/dist/host/migrate/migrations/follow-machine-storage.js +9 -1
- package/dist/host/migrate/migrations/pin-storage-root.d.ts +4 -0
- package/dist/host/migrate/migrations/pin-storage-root.js +46 -0
- package/dist/host/migrate/migrations/unpin-config-defaults.js +4 -1
- package/dist/host/migrate/registry.js +2 -1
- package/dist/host/native.d.ts +3 -2
- package/dist/host/native.js +22 -3
- package/dist/host/profile/accounts.d.ts +25 -1
- package/dist/host/profile/accounts.js +96 -13
- package/dist/host/profile/agent-accounts.d.ts +5 -1
- package/dist/host/profile/agent-accounts.js +35 -5
- package/dist/host/profile/claude-login.js +3 -2
- package/dist/host/profile/index.d.ts +2 -1
- package/dist/host/profile/index.js +1 -0
- package/dist/host/profile/plugin-share.d.ts +26 -0
- package/dist/host/profile/plugin-share.js +146 -0
- package/dist/host/projects/join.d.ts +7 -1
- package/dist/host/projects/join.js +21 -4
- package/dist/host/projects/registry.d.ts +16 -10
- package/dist/host/projects/registry.js +74 -6
- package/dist/host/sandbox/contained-deps.d.ts +2 -0
- package/dist/host/sandbox/contained-deps.js +17 -0
- package/dist/host/sandbox/index.d.ts +2 -0
- package/dist/host/sandbox/index.js +2 -0
- package/dist/host/sandbox/platform.d.ts +4 -0
- package/dist/host/sandbox/platform.js +23 -4
- package/dist/host/sandbox/tasklist.d.ts +13 -0
- package/dist/host/sandbox/tasklist.js +47 -0
- package/dist/host/secrets/index.d.ts +2 -0
- package/dist/host/secrets/index.js +2 -0
- package/dist/host/secrets/launch-secrets.d.ts +17 -0
- package/dist/host/secrets/launch-secrets.js +94 -0
- package/dist/host/secrets/secret-store.d.ts +25 -0
- package/dist/host/secrets/secret-store.js +89 -0
- package/dist/host/sharing/acl.d.ts +16 -2
- package/dist/host/sharing/acl.js +35 -10
- package/dist/host/sharing/current.js +8 -3
- package/dist/host/sharing/doctor.d.ts +2 -0
- package/dist/host/sharing/doctor.js +44 -0
- package/dist/host/sharing/group-access.d.ts +6 -0
- package/dist/host/sharing/group-access.js +24 -0
- package/dist/host/sharing/index.d.ts +2 -1
- package/dist/host/sharing/index.js +2 -1
- package/dist/host/sharing/lifecycle.d.ts +8 -2
- package/dist/host/sharing/lifecycle.js +16 -7
- package/dist/host/storage/cleanup.d.ts +2 -0
- package/dist/host/storage/cleanup.js +2 -1
- package/dist/host/storage/contained/check.d.ts +9 -0
- package/dist/host/storage/contained/check.js +37 -0
- package/dist/host/storage/contained/contained-storage.d.ts +66 -0
- package/dist/host/storage/contained/contained-storage.js +168 -0
- package/dist/host/storage/contained/disk-port.d.ts +43 -0
- package/dist/host/storage/contained/disk-port.js +122 -0
- package/dist/host/storage/contained/index.d.ts +9 -0
- package/dist/host/storage/contained/index.js +8 -0
- package/dist/host/storage/contained/layout.d.ts +28 -0
- package/dist/host/storage/contained/layout.js +45 -0
- package/dist/host/storage/contained/resolve.d.ts +4 -0
- package/dist/host/storage/contained/resolve.js +30 -0
- package/dist/host/storage/contained/setting.d.ts +1 -0
- package/dist/host/storage/contained/setting.js +5 -0
- package/dist/host/storage/contained/state.d.ts +89 -0
- package/dist/host/storage/contained/state.js +166 -0
- package/dist/host/storage/contained/transfer.d.ts +24 -0
- package/dist/host/storage/contained/transfer.js +121 -0
- package/dist/host/storage/history.d.ts +21 -0
- package/dist/host/storage/history.js +49 -0
- package/dist/host/storage/index.d.ts +6 -0
- package/dist/host/storage/index.js +6 -0
- package/dist/host/storage/move.d.ts +95 -0
- package/dist/host/storage/move.js +384 -0
- package/dist/host/storage/offer.d.ts +11 -0
- package/dist/host/storage/offer.js +36 -0
- package/dist/host/storage/providers/contained.d.ts +15 -0
- package/dist/host/storage/providers/contained.js +39 -0
- package/dist/host/storage/providers/folder.d.ts +12 -0
- package/dist/host/storage/providers/folder.js +20 -0
- package/dist/host/storage/providers/index.d.ts +4 -0
- package/dist/host/storage/providers/index.js +3 -0
- package/dist/host/storage/providers/registry.d.ts +9 -0
- package/dist/host/storage/providers/registry.js +14 -0
- package/dist/host/storage/providers/types.d.ts +33 -0
- package/dist/host/storage/providers/types.js +1 -0
- package/dist/host/storage/root.d.ts +18 -0
- package/dist/host/storage/root.js +77 -0
- package/dist/host/tools/conpty.js +3 -2
- package/dist/host/tools/windows-terminal.d.ts +2 -0
- package/dist/host/tools/windows-terminal.js +31 -12
- package/dist/host/update/index.d.ts +1 -1
- package/dist/host/update/index.js +1 -1
- package/dist/host/update/notice.d.ts +2 -0
- package/dist/host/update/notice.js +13 -1
- package/dist/host/update/update-state.d.ts +6 -0
- package/dist/host/update/update-state.js +2 -0
- package/dist/host/update/updater.d.ts +19 -0
- package/dist/host/update/updater.js +88 -12
- package/dist/host/vpn/index.d.ts +4 -0
- package/dist/host/vpn/index.js +4 -0
- package/dist/host/vpn/login.d.ts +24 -0
- package/dist/host/vpn/login.js +79 -0
- package/dist/host/vpn/nordvpn.d.ts +21 -0
- package/dist/host/vpn/nordvpn.js +77 -0
- package/dist/host/vpn/prepare.d.ts +19 -0
- package/dist/host/vpn/prepare.js +138 -0
- package/dist/host/vpn/status.d.ts +12 -0
- package/dist/host/vpn/status.js +53 -0
- package/dist/host/web/auth.d.ts +38 -0
- package/dist/host/web/auth.js +96 -0
- package/dist/host/web/backend.d.ts +14 -0
- package/dist/host/web/backend.js +1 -0
- package/dist/host/web/bridge.d.ts +27 -0
- package/dist/host/web/bridge.js +144 -0
- package/dist/host/web/browser.d.ts +3 -0
- package/dist/host/web/browser.js +23 -0
- package/dist/host/web/control.d.ts +17 -0
- package/dist/host/web/control.js +67 -0
- package/dist/host/web/index.d.ts +10 -0
- package/dist/host/web/index.js +9 -0
- package/dist/host/web/rpc.d.ts +24 -0
- package/dist/host/web/rpc.js +149 -0
- package/dist/host/web/runner.d.ts +16 -0
- package/dist/host/web/runner.js +44 -0
- package/dist/host/web/server.d.ts +47 -0
- package/dist/host/web/server.js +238 -0
- package/dist/host/web/state.d.ts +20 -0
- package/dist/host/web/state.js +41 -0
- package/dist/host/web/static-files.d.ts +13 -0
- package/dist/host/web/static-files.js +57 -0
- package/dist/runtime/agent.js +27675 -0
- package/dist/runtime/daemon.js +1950 -1122
- package/dist/runtime/db.js +302 -111
- package/dist/runtime/main.js +1560 -275
- package/dist/runtime/netproxy.js +168 -8
- package/dist/runtime/view.js +186 -13
- package/dist/selftest/accounts.test.js +40 -0
- package/dist/selftest/agent-paths.test.d.ts +2 -0
- package/dist/selftest/agent-paths.test.js +125 -0
- package/dist/selftest/app.test.d.ts +2 -0
- package/dist/selftest/app.test.js +324 -0
- package/dist/selftest/channel.test.js +18 -0
- package/dist/selftest/cli.test.js +35 -4
- package/dist/selftest/config.test.js +59 -0
- package/dist/selftest/contained.test.d.ts +2 -0
- package/dist/selftest/contained.test.js +544 -0
- package/dist/selftest/credentials.test.d.ts +2 -0
- package/dist/selftest/credentials.test.js +198 -0
- package/dist/selftest/engine.test.d.ts +2 -0
- package/dist/selftest/engine.test.js +127 -0
- package/dist/selftest/generate.test.js +1 -1
- package/dist/selftest/hcs.test.d.ts +2 -0
- package/dist/selftest/hcs.test.js +482 -0
- package/dist/selftest/health.test.d.ts +2 -0
- package/dist/selftest/health.test.js +470 -0
- package/dist/selftest/heavy-load.test.d.ts +2 -0
- package/dist/selftest/heavy-load.test.js +329 -0
- package/dist/selftest/host-sim.test.js +2 -0
- package/dist/selftest/index.js +31 -0
- package/dist/selftest/layout.test.js +14 -0
- package/dist/selftest/menu-perf.test.d.ts +2 -0
- package/dist/selftest/menu-perf.test.js +248 -0
- package/dist/selftest/menu-screens.d.ts +7 -0
- package/dist/selftest/menu-screens.js +68 -17
- package/dist/selftest/menu.test.js +603 -22
- package/dist/selftest/migrate.test.js +1 -1
- package/dist/selftest/personalization.test.js +3 -1
- package/dist/selftest/projects.test.js +39 -1
- package/dist/selftest/shared-use.test.js +64 -2
- package/dist/selftest/sharing.test.js +50 -1
- package/dist/selftest/storage.test.d.ts +2 -0
- package/dist/selftest/storage.test.js +363 -0
- package/dist/selftest/support/engine-cases.d.ts +8 -0
- package/dist/selftest/support/engine-cases.js +65 -0
- package/dist/selftest/support/engine-golden.d.ts +3 -0
- package/dist/selftest/support/engine-golden.js +66 -0
- package/dist/selftest/support/fixtures.d.ts +20 -0
- package/dist/selftest/support/hcs-probes.d.ts +17 -0
- package/dist/selftest/support/hcs-probes.js +41 -0
- package/dist/selftest/support/releases.js +1 -1
- package/dist/selftest/toolchains.test.js +21 -0
- package/dist/selftest/update-service.test.js +87 -3
- package/dist/selftest/vpn.test.d.ts +2 -0
- package/dist/selftest/vpn.test.js +412 -0
- package/dist/selftest/web.test.d.ts +2 -0
- package/dist/selftest/web.test.js +402 -0
- package/dist/shared/apps/catalogue.js +31 -0
- package/dist/shared/channel/index.d.ts +1 -0
- package/dist/shared/channel/index.js +1 -0
- package/dist/shared/channel/run-dir.d.ts +9 -1
- package/dist/shared/channel/run-dir.js +18 -1
- package/dist/shared/channel/schema.d.ts +53 -0
- package/dist/shared/channel/schema.js +38 -0
- package/dist/shared/channel/secrets.d.ts +29 -0
- package/dist/shared/channel/secrets.js +50 -0
- package/dist/shared/memory/index.d.ts +1 -0
- package/dist/shared/memory/index.js +1 -0
- package/dist/shared/memory/policy.d.ts +33 -0
- package/dist/shared/memory/policy.js +55 -0
- package/dist/shared/pty/output-filter.d.ts +14 -1
- package/dist/shared/pty/output-filter.js +22 -4
- package/dist/shared/pty/terminal.d.ts +4 -1
- package/dist/shared/pty/terminal.js +4 -2
- package/dist/shared/system.d.ts +1 -0
- package/dist/shared/system.js +1 -0
- package/dist/shared/vpn/download.d.ts +29 -0
- package/dist/shared/vpn/download.js +30 -0
- package/dist/shared/vpn/kill-switch.d.ts +18 -0
- package/dist/shared/vpn/kill-switch.js +81 -0
- package/dist/shared/vpn/ovpn.d.ts +23 -0
- package/dist/shared/vpn/ovpn.js +244 -0
- package/dist/shared/vpn/wireguard.d.ts +51 -0
- package/dist/shared/vpn/wireguard.js +227 -0
- package/dist/shared/web/index.d.ts +1 -0
- package/dist/shared/web/index.js +1 -0
- package/dist/shared/web/protocol.d.ts +61 -0
- package/dist/shared/web/protocol.js +35 -0
- package/dist/sync/sync-cycle.js +9 -5
- package/dist/sync/sync-state.d.ts +1 -0
- package/dist/sync/sync-state.js +1 -0
- package/dist/sync/watcher.d.ts +13 -0
- package/dist/sync/watcher.js +102 -3
- package/dist/web/index.html +14 -0
- package/dist/web/main-NRRS5O6Z.js +157 -0
- package/dist/web/main-T5DMCHYV.css +1 -0
- package/native/csharp/FolderSecurity.cs +29 -0
- package/native/csharp/HcsHost/AssemblyInfo.cs +14 -0
- package/native/csharp/HcsHost/Guard.cs +100 -0
- package/native/csharp/HcsHost/Hcs.cs +256 -0
- package/native/csharp/HcsHost/Json.cs +78 -0
- package/native/csharp/HcsHost/Program.cs +185 -0
- package/native/csharp/HcsHost/VirtualDisk.cs +95 -0
- package/native/csharp/HostTools/AssemblyInfo.cs +14 -0
- package/native/csharp/HostTools/MemoryStatus.cs +107 -0
- package/native/csharp/HostTools/Program.cs +58 -17
- package/native/scripts/check-contained.ps1 +28 -0
- package/native/scripts/contained-common.ps1 +241 -0
- package/native/scripts/dismount-contained.ps1 +66 -0
- package/native/scripts/memory-status.ps1 +34 -0
- package/native/scripts/mount-contained.ps1 +139 -0
- package/native/scripts/protect-data.ps1 +29 -0
- package/native/scripts/read-folder-sddl.ps1 +10 -0
- package/native/scripts/run-elevated.ps1 +17 -4
- package/native/scripts/set-folder-access.ps1 +49 -7
- package/native/scripts/stop-events.ps1 +23 -8
- package/node_modules/ws/LICENSE +20 -0
- package/node_modules/ws/README.md +548 -0
- package/node_modules/ws/browser.js +8 -0
- package/node_modules/ws/index.js +22 -0
- package/node_modules/ws/lib/buffer-util.js +131 -0
- package/node_modules/ws/lib/constants.js +19 -0
- package/node_modules/ws/lib/event-target.js +292 -0
- package/node_modules/ws/lib/extension.js +203 -0
- package/node_modules/ws/lib/limiter.js +55 -0
- package/node_modules/ws/lib/permessage-deflate.js +530 -0
- package/node_modules/ws/lib/receiver.js +743 -0
- package/node_modules/ws/lib/sender.js +607 -0
- package/node_modules/ws/lib/stream.js +161 -0
- package/node_modules/ws/lib/subprotocol.js +62 -0
- package/node_modules/ws/lib/validation.js +152 -0
- package/node_modules/ws/lib/websocket-server.js +562 -0
- package/node_modules/ws/lib/websocket.js +1421 -0
- package/node_modules/ws/package.json +74 -0
- package/node_modules/ws/wrapper.mjs +21 -0
- package/package.json +22 -5
- package/sandbox/csharp/EnvBroadcast.cs +33 -0
- package/sandbox/csharp/MemGov.cs +398 -0
- package/sandbox/csharp/PathSync.cs +90 -0
- package/sandbox/csharp/PtyHost.cs +111 -5
- package/sandbox/scripts/install-shell-path.ps1 +73 -0
- package/sandbox/scripts/set-machine-environment.ps1 +37 -4
- package/schemas/config.schema.json +136 -7
- package/schemas/sandbox-config.schema.json +17 -4
- package/dist/cli/commands/repair/checks.d.ts +0 -2
- package/dist/cli/commands/repair/checks.js +0 -246
- package/dist/cli/commands/sessions/control.d.ts +0 -4
- package/dist/cli/commands/sessions/control.js +0 -66
- package/dist/cli/commands/sessions/list.d.ts +0 -2
- package/dist/cli/commands/sessions/list.js +0 -45
- package/dist/cli/commands/sessions/status.d.ts +0 -2
- package/dist/cli/commands/sessions/status.js +0 -93
- package/dist/cli/commands/sessions/window.d.ts +0 -3
- package/dist/cli/commands/sessions/window.js +0 -18
- package/dist/cli/menu/pages/start-page.d.ts +0 -43
- package/dist/cli/menu/pages/start-page.js +0 -192
- package/dist/cli/tui/tab-bar.d.ts +0 -9
- package/dist/cli/tui/tab-bar.js +0 -33
package/dist/cli/manifest.js
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
// Every command, defined once: name, group, arguments and options with their types. args.ts builds the commander
|
|
2
|
-
// parser from it and menu.ts builds the interactive menu from it, so a command added here works both ways.
|
|
2
|
+
// parser from it and menu.ts builds the interactive menu from it, so a command added here works both ways. Commands of
|
|
3
|
+
// the shared core (status, sessions, stop ... and actions such as config get) come from their definitions' CLI hints
|
|
4
|
+
// (cli/operations/spec.ts); this list shrinks as areas move into src/app.
|
|
3
5
|
import { z } from 'zod';
|
|
6
|
+
// The file rather than the barrel: the barrel's handlers need the registry, which needs the commands.
|
|
7
|
+
import { withOperationCommands } from './operations/spec.js';
|
|
4
8
|
const ChoicesSchema = z
|
|
5
9
|
.union([z.array(z.string()), z.enum(['harnesses', 'accounts', 'sessions'])])
|
|
6
10
|
.describe('Fixed values, or a list the menu fills in at run time.');
|
|
@@ -26,6 +30,13 @@ export const OptionSpecSchema = z.strictObject({
|
|
|
26
30
|
when: z.string().optional(),
|
|
27
31
|
/** Never offered in the menu (dangerous shortcuts such as --yes); typing it on the command line still works. */
|
|
28
32
|
noMenu: z.boolean().optional(),
|
|
33
|
+
/** Heading for this option in the command's --help (launch: Session, Folder ...). */
|
|
34
|
+
group: z.string().optional(),
|
|
35
|
+
/** The name shown in --help; `flag` stays accepted as a hidden alias (--agent shown, --harness still works). */
|
|
36
|
+
shownAs: z
|
|
37
|
+
.string()
|
|
38
|
+
.regex(/^--[a-z][a-z0-9-]*$/)
|
|
39
|
+
.optional(),
|
|
29
40
|
});
|
|
30
41
|
export const ArgSpecSchema = z.strictObject({
|
|
31
42
|
name: z.string(),
|
|
@@ -33,6 +44,8 @@ export const ArgSpecSchema = z.strictObject({
|
|
|
33
44
|
required: z.boolean(),
|
|
34
45
|
variadic: z.boolean().optional(),
|
|
35
46
|
choices: ChoicesSchema.optional(),
|
|
47
|
+
/** Spellings accepted besides `choices` but not listed (old names). */
|
|
48
|
+
aliases: z.array(z.string()).optional(),
|
|
36
49
|
/** Only asked in the menu when the command's first argument has this value, or one of these (data clean: targets). */
|
|
37
50
|
when: z.union([z.string(), z.array(z.string())]).optional(),
|
|
38
51
|
});
|
|
@@ -40,7 +53,7 @@ export const ArgSpecSchema = z.strictObject({
|
|
|
40
53
|
export function askedWhen(when, first) {
|
|
41
54
|
return when === undefined || (Array.isArray(when) ? when.includes(first) : when === first);
|
|
42
55
|
}
|
|
43
|
-
export const GroupSchema = z.enum(['Agents', '
|
|
56
|
+
export const GroupSchema = z.enum(['Agents', 'Sessions', 'Projects & accounts', 'Data', 'Web', 'Health', 'Advanced']);
|
|
44
57
|
export const CommandSpecSchema = z.strictObject({
|
|
45
58
|
name: z.string(),
|
|
46
59
|
summary: z.string(),
|
|
@@ -53,6 +66,8 @@ export const CommandSpecSchema = z.strictObject({
|
|
|
53
66
|
/** Takes over the terminal or ends the session: the menu does not come back afterwards. */
|
|
54
67
|
interactive: z.boolean().optional(),
|
|
55
68
|
hidden: z.boolean().optional(),
|
|
69
|
+
/** Command lines shown in an Examples block at the end of the command's --help. */
|
|
70
|
+
examples: z.array(z.string()).optional(),
|
|
56
71
|
});
|
|
57
72
|
function bool(flag, description, extra = {}) {
|
|
58
73
|
return {
|
|
@@ -91,16 +106,25 @@ const LABELS = {
|
|
|
91
106
|
function labelled(options) {
|
|
92
107
|
return options.map((o) => (LABELS[o.flag] ? { ...o, label: LABELS[o.flag] } : o));
|
|
93
108
|
}
|
|
109
|
+
const SESSION = 'Session';
|
|
110
|
+
const FOLDER = 'Folder';
|
|
111
|
+
const VERSIONS = 'Versions & services';
|
|
112
|
+
const TRUST = 'Trust';
|
|
94
113
|
const SANDBOX_OPTIONS = labelled([
|
|
95
|
-
bool('--terminal', "attach this terminal (reuses this folder's session if nobody is watching it)", {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
114
|
+
bool('--terminal', "attach this terminal (reuses this folder's session if nobody is watching it)", {
|
|
115
|
+
short: '-t',
|
|
116
|
+
group: SESSION,
|
|
117
|
+
}),
|
|
118
|
+
bool('--headless', 'hide the sandbox window (sandbox show brings it back)', { group: SESSION }),
|
|
119
|
+
bool('--new', 'always start a new session, even if this folder has an unattached one', { group: SESSION }),
|
|
120
|
+
text('--workspace', 'dir', 'use this folder instead of the current one', { group: FOLDER }),
|
|
121
|
+
text('--node', 'version', "Node version (default: your project's .nvmrc or this PC's version)", {
|
|
100
122
|
advanced: true,
|
|
123
|
+
group: VERSIONS,
|
|
101
124
|
}),
|
|
102
|
-
text('--python', 'version',
|
|
125
|
+
text('--python', 'version', "Python 3 version (default: your project's .python-version or your settings)", {
|
|
103
126
|
advanced: true,
|
|
127
|
+
group: VERSIONS,
|
|
104
128
|
}),
|
|
105
129
|
{
|
|
106
130
|
flag: '--database',
|
|
@@ -109,6 +133,7 @@ const SANDBOX_OPTIONS = labelled([
|
|
|
109
133
|
description: 'also start this database (postgres, mysql, mongodb, redis, dynamodb; repeatable)',
|
|
110
134
|
choices: ['postgres', 'mysql', 'mongodb', 'redis', 'dynamodb'],
|
|
111
135
|
advanced: true,
|
|
136
|
+
group: VERSIONS,
|
|
112
137
|
},
|
|
113
138
|
{
|
|
114
139
|
flag: '--script',
|
|
@@ -116,24 +141,26 @@ const SANDBOX_OPTIONS = labelled([
|
|
|
116
141
|
value: 'file',
|
|
117
142
|
description: 'run this .ps1/.mjs/.cmd inside the sandbox first (repeatable)',
|
|
118
143
|
advanced: true,
|
|
144
|
+
group: VERSIONS,
|
|
119
145
|
},
|
|
120
|
-
bool('--window', 'show the sandbox window even if
|
|
121
|
-
bool('--trust-config', "approve the folder's .sandbox-config.json without asking", { advanced: true }),
|
|
122
|
-
bool('--no-local-config', "ignore the folder's .sandbox-config.json", { advanced: true }),
|
|
123
|
-
bool('--yes', '
|
|
146
|
+
bool('--window', 'show the sandbox window even if your settings say headless', { advanced: true, group: SESSION }),
|
|
147
|
+
bool('--trust-config', "approve the folder's .sandbox-config.json without asking", { advanced: true, group: TRUST }),
|
|
148
|
+
bool('--no-local-config', "ignore the folder's .sandbox-config.json", { advanced: true, group: TRUST }),
|
|
149
|
+
bool('--yes', 'restart the sandbox without asking if this folder needs it', { noMenu: true, group: TRUST }),
|
|
124
150
|
]);
|
|
125
151
|
const AGENT_OPTIONS = labelled([
|
|
126
|
-
text('--harness', 'name', 'agent to run', { choices: 'harnesses' }),
|
|
152
|
+
text('--harness', 'name', 'agent to run', { choices: 'harnesses', shownAs: '--agent', group: SESSION }),
|
|
127
153
|
{
|
|
128
154
|
flag: '--session',
|
|
129
155
|
type: 'list',
|
|
130
156
|
value: 'agent@folder',
|
|
131
|
-
description: 'start several sessions at once
|
|
157
|
+
description: 'start several sessions at once (repeatable; see the examples below; -t attaches the first)',
|
|
132
158
|
noMenu: true,
|
|
159
|
+
group: SESSION,
|
|
133
160
|
},
|
|
134
|
-
text('--account', 'name', 'Claude account for this sandbox', { choices: 'accounts' }),
|
|
161
|
+
text('--account', 'name', 'Claude account for this sandbox', { choices: 'accounts', group: SESSION }),
|
|
135
162
|
...SANDBOX_OPTIONS,
|
|
136
|
-
bool('--no-agent', 'set up the sandbox but do not start an agent', { advanced: true }),
|
|
163
|
+
bool('--no-agent', 'set up the sandbox but do not start an agent', { advanced: true, group: SESSION }),
|
|
137
164
|
]);
|
|
138
165
|
const json = true;
|
|
139
166
|
const COMMAND_LIST = [
|
|
@@ -145,11 +172,17 @@ const COMMAND_LIST = [
|
|
|
145
172
|
options: AGENT_OPTIONS,
|
|
146
173
|
passthrough: 'agent',
|
|
147
174
|
interactive: true,
|
|
175
|
+
examples: [
|
|
176
|
+
'sandbox claude -t start Claude here and attach this terminal',
|
|
177
|
+
'sandbox launch --agent codex start Codex in the current folder',
|
|
178
|
+
'sandbox launch --session claude@C:\\code\\api --session "codex@C:\\code\\web|--model o3"',
|
|
179
|
+
" two sessions at once (after | = that agent's own arguments)",
|
|
180
|
+
],
|
|
148
181
|
},
|
|
149
182
|
{
|
|
150
183
|
name: 'start',
|
|
151
184
|
summary: 'start a sandbox with no agent (tools and databases only)',
|
|
152
|
-
group: '
|
|
185
|
+
group: 'Agents',
|
|
153
186
|
args: [],
|
|
154
187
|
options: SANDBOX_OPTIONS.filter((o) => o.flag !== '--new'),
|
|
155
188
|
interactive: true,
|
|
@@ -157,7 +190,7 @@ const COMMAND_LIST = [
|
|
|
157
190
|
{
|
|
158
191
|
name: 'generate',
|
|
159
192
|
summary: 'show what a start would do, without starting anything',
|
|
160
|
-
group: '
|
|
193
|
+
group: 'Advanced',
|
|
161
194
|
args: [],
|
|
162
195
|
options: AGENT_OPTIONS,
|
|
163
196
|
passthrough: 'agent',
|
|
@@ -173,25 +206,16 @@ const COMMAND_LIST = [
|
|
|
173
206
|
{
|
|
174
207
|
name: 'resume',
|
|
175
208
|
summary: 'reopen the sessions from the last sandbox',
|
|
176
|
-
group: '
|
|
209
|
+
group: 'Agents',
|
|
177
210
|
args: [],
|
|
178
211
|
options: [
|
|
179
212
|
bool('--auto', 'used by the background sync after a crash: no questions', { noMenu: true, advanced: true }),
|
|
180
213
|
],
|
|
181
214
|
},
|
|
182
|
-
{
|
|
183
|
-
name: 'sessions',
|
|
184
|
-
summary: 'list agent sessions and who is attached',
|
|
185
|
-
group: 'Sessions',
|
|
186
|
-
args: [],
|
|
187
|
-
options: [],
|
|
188
|
-
json,
|
|
189
|
-
},
|
|
190
|
-
{ name: 'status', summary: 'show what the sandbox is doing', group: 'Sandbox', args: [], options: [], json },
|
|
191
215
|
{
|
|
192
216
|
name: 'db',
|
|
193
217
|
summary: 'list, start or stop databases in the running sandbox',
|
|
194
|
-
group: '
|
|
218
|
+
group: 'Sessions',
|
|
195
219
|
args: [
|
|
196
220
|
{ name: 'action', description: 'list, start or stop', required: false, choices: ['list', 'start', 'stop'] },
|
|
197
221
|
{
|
|
@@ -206,7 +230,11 @@ const COMMAND_LIST = [
|
|
|
206
230
|
{
|
|
207
231
|
name: 'exec',
|
|
208
232
|
summary: 'run a command inside the sandbox and print its output',
|
|
209
|
-
group: '
|
|
233
|
+
group: 'Sessions',
|
|
234
|
+
examples: [
|
|
235
|
+
'sandbox exec -- npm test run a command in the running sandbox',
|
|
236
|
+
'sandbox exec --json -- node -v the result as JSON',
|
|
237
|
+
],
|
|
210
238
|
args: [{ name: 'command', description: 'command and its arguments', required: true, variadic: true }],
|
|
211
239
|
options: [
|
|
212
240
|
{
|
|
@@ -221,28 +249,16 @@ const COMMAND_LIST = [
|
|
|
221
249
|
passthrough: 'command',
|
|
222
250
|
json,
|
|
223
251
|
},
|
|
224
|
-
{
|
|
225
|
-
name: 'restart',
|
|
226
|
-
summary: "restart this project's running agents in place; they resume their conversation",
|
|
227
|
-
group: 'Sessions',
|
|
228
|
-
args: [],
|
|
229
|
-
options: [
|
|
230
|
-
text('--harness', 'name', 'only this agent', { choices: 'harnesses' }),
|
|
231
|
-
bool('--all', "every project's sessions, not only this folder's"),
|
|
232
|
-
],
|
|
233
|
-
},
|
|
234
|
-
{
|
|
235
|
-
name: 'stop',
|
|
236
|
-
summary: "shut the sandbox down (every project's sessions end)",
|
|
237
|
-
group: 'Sandbox',
|
|
238
|
-
args: [],
|
|
239
|
-
options: [bool('--yes', "do not ask when other projects' sessions would end", { noMenu: true })],
|
|
240
|
-
},
|
|
241
252
|
{
|
|
242
253
|
name: 'projects',
|
|
243
254
|
summary: 'the projects a sandbox can open without a restart: list, choose, roots, all/exclude',
|
|
244
|
-
group: '
|
|
255
|
+
group: 'Projects & accounts',
|
|
245
256
|
json,
|
|
257
|
+
examples: [
|
|
258
|
+
'sandbox projects list your projects',
|
|
259
|
+
'sandbox projects add . remember this folder',
|
|
260
|
+
'sandbox projects roots add C:\\code share every project in C:\\code',
|
|
261
|
+
],
|
|
246
262
|
args: [
|
|
247
263
|
{
|
|
248
264
|
name: 'action',
|
|
@@ -258,14 +274,16 @@ const COMMAND_LIST = [
|
|
|
258
274
|
},
|
|
259
275
|
{ name: 'folder', description: '(roots add/remove) the folder', required: false, when: 'roots' },
|
|
260
276
|
],
|
|
261
|
-
options: [],
|
|
277
|
+
options: [bool('--yes', 'do not ask before removing', { short: '-y', when: 'remove', noMenu: true })],
|
|
262
278
|
},
|
|
263
|
-
{ name: 'show', summary: 'show the sandbox window', group: 'Sandbox', args: [], options: [] },
|
|
264
|
-
{ name: 'hide', summary: 'hide the sandbox window (it keeps running)', group: 'Sandbox', args: [], options: [] },
|
|
265
279
|
{
|
|
266
280
|
name: 'account',
|
|
267
281
|
summary: 'Claude logins: list, save, use, set the default, remove',
|
|
268
|
-
group: '
|
|
282
|
+
group: 'Projects & accounts',
|
|
283
|
+
examples: [
|
|
284
|
+
'sandbox account save work save the login you signed in with inside the sandbox',
|
|
285
|
+
'sandbox account use work the sandbox uses it (running sessions restart)',
|
|
286
|
+
],
|
|
269
287
|
args: [
|
|
270
288
|
{
|
|
271
289
|
name: 'action',
|
|
@@ -283,6 +301,7 @@ const COMMAND_LIST = [
|
|
|
283
301
|
}),
|
|
284
302
|
bool('--from-host', "(save) save this PC's login instead of the sandbox's", { when: 'save' }),
|
|
285
303
|
bool('--no-restart', '(use) do not restart running sessions', { when: 'use' }),
|
|
304
|
+
bool('--yes', '(remove) do not ask first', { short: '-y', when: 'remove', noMenu: true }),
|
|
286
305
|
],
|
|
287
306
|
json,
|
|
288
307
|
},
|
|
@@ -291,7 +310,13 @@ const COMMAND_LIST = [
|
|
|
291
310
|
summary: 'show what is kept between sandboxes (tools, databases, logins, logs), or delete some of it',
|
|
292
311
|
group: 'Data',
|
|
293
312
|
args: [
|
|
294
|
-
{
|
|
313
|
+
{
|
|
314
|
+
name: 'action',
|
|
315
|
+
description: 'show or clean',
|
|
316
|
+
required: false,
|
|
317
|
+
choices: ['show', 'clean'],
|
|
318
|
+
aliases: ['info', 'list', 'remove'],
|
|
319
|
+
},
|
|
295
320
|
{
|
|
296
321
|
name: 'targets',
|
|
297
322
|
description: 'what to clean, e.g. tools/go databases logs',
|
|
@@ -300,7 +325,62 @@ const COMMAND_LIST = [
|
|
|
300
325
|
when: 'clean',
|
|
301
326
|
},
|
|
302
327
|
],
|
|
303
|
-
options: [bool('--yes', 'do not ask before deleting', { noMenu: true })],
|
|
328
|
+
options: [bool('--yes', 'do not ask before deleting', { short: '-y', noMenu: true })],
|
|
329
|
+
json,
|
|
330
|
+
examples: [
|
|
331
|
+
'sandbox data clean pick what to delete from a list',
|
|
332
|
+
'sandbox data clean logs tools/go delete these',
|
|
333
|
+
],
|
|
334
|
+
},
|
|
335
|
+
{
|
|
336
|
+
name: 'storage',
|
|
337
|
+
summary: 'where your saved data lives: show it, move it to another folder, switch folders, or (beta) keep it in a disk image',
|
|
338
|
+
group: 'Data',
|
|
339
|
+
examples: [
|
|
340
|
+
'sandbox storage where the data is',
|
|
341
|
+
'sandbox storage move D:\\sandbox-data move it (asks first)',
|
|
342
|
+
'sandbox storage contained status (beta) the disk image for tools, state and logs',
|
|
343
|
+
'sandbox storage contained on (beta) keep them in a disk image (asks first)',
|
|
344
|
+
],
|
|
345
|
+
args: [
|
|
346
|
+
{
|
|
347
|
+
name: 'action',
|
|
348
|
+
description: 'show, move, use or contained',
|
|
349
|
+
required: false,
|
|
350
|
+
choices: ['show', 'move', 'use', 'contained'],
|
|
351
|
+
},
|
|
352
|
+
{
|
|
353
|
+
name: 'folder',
|
|
354
|
+
description: 'the folder to move to, or to use; for contained: on, off or status',
|
|
355
|
+
required: false,
|
|
356
|
+
when: ['move', 'use', 'contained'],
|
|
357
|
+
},
|
|
358
|
+
],
|
|
359
|
+
options: [
|
|
360
|
+
bool('--yes', 'do not ask before moving or switching', { short: '-y', noMenu: true }),
|
|
361
|
+
bool('--keep-old', 'copy instead of moving: the old folder stays (needs room for both)', { when: 'move' }),
|
|
362
|
+
],
|
|
363
|
+
json,
|
|
364
|
+
},
|
|
365
|
+
{
|
|
366
|
+
name: 'engine',
|
|
367
|
+
summary: '(beta) what runs your sandbox (Windows Sandbox or HCS) and what each engine can do on this PC',
|
|
368
|
+
group: 'Health',
|
|
369
|
+
examples: [
|
|
370
|
+
'sandbox engine the engine in use and what each can do',
|
|
371
|
+
'sandbox engine check hcs what this PC lacks for the HCS engine, and the commands that would fix it',
|
|
372
|
+
],
|
|
373
|
+
args: [
|
|
374
|
+
{ name: 'action', description: 'show or check', required: false, choices: ['show', 'check'] },
|
|
375
|
+
{
|
|
376
|
+
name: 'engine',
|
|
377
|
+
description: 'the engine to check',
|
|
378
|
+
required: false,
|
|
379
|
+
choices: ['windows-sandbox', 'hcs'],
|
|
380
|
+
when: 'check',
|
|
381
|
+
},
|
|
382
|
+
],
|
|
383
|
+
options: [],
|
|
304
384
|
json,
|
|
305
385
|
},
|
|
306
386
|
{
|
|
@@ -316,12 +396,13 @@ const COMMAND_LIST = [
|
|
|
316
396
|
description: 'launch folders older than this many days',
|
|
317
397
|
default: 7,
|
|
318
398
|
},
|
|
399
|
+
bool('--yes', 'do not ask before deleting', { short: '-y', noMenu: true }),
|
|
319
400
|
],
|
|
320
401
|
},
|
|
321
402
|
{ name: 'sync', summary: 'copy conversation history back to this PC now', group: 'Data', args: [], options: [] },
|
|
322
403
|
{
|
|
323
404
|
name: 'audit',
|
|
324
|
-
summary: 'what happened in your sandboxes: programs started, files changed, sessions, repo guard (audit.enabled)',
|
|
405
|
+
summary: 'what happened in your sandboxes: programs started, files changed, sessions, repo guard (turn it on: sandbox config set audit.enabled true)',
|
|
325
406
|
group: 'Health',
|
|
326
407
|
json,
|
|
327
408
|
args: [],
|
|
@@ -338,7 +419,10 @@ const COMMAND_LIST = [
|
|
|
338
419
|
summary: 'print the newest sandbox log',
|
|
339
420
|
group: 'Health',
|
|
340
421
|
args: [],
|
|
341
|
-
options: [
|
|
422
|
+
options: [
|
|
423
|
+
bool('--follow', 'keep printing new lines', { short: '-f' }),
|
|
424
|
+
bool('--crash', 'print the report of the last crash (what Windows logged, this PC and the sandbox memory)'),
|
|
425
|
+
],
|
|
342
426
|
},
|
|
343
427
|
{
|
|
344
428
|
name: 'setup',
|
|
@@ -349,10 +433,14 @@ const COMMAND_LIST = [
|
|
|
349
433
|
},
|
|
350
434
|
{
|
|
351
435
|
name: 'doctor',
|
|
352
|
-
summary: 'check this PC and
|
|
436
|
+
summary: 'check this PC, the install, your settings and the sandbox, and offer to fix what it finds',
|
|
353
437
|
group: 'Health',
|
|
354
438
|
args: [],
|
|
355
|
-
options: [
|
|
439
|
+
options: [
|
|
440
|
+
text('--harness', 'name', 'agent to check', { choices: 'harnesses', shownAs: '--agent' }),
|
|
441
|
+
bool('--fix', 'fix what can be fixed without asking', { noMenu: true }),
|
|
442
|
+
],
|
|
443
|
+
json: true,
|
|
356
444
|
},
|
|
357
445
|
{
|
|
358
446
|
name: 'migrate',
|
|
@@ -364,6 +452,7 @@ const COMMAND_LIST = [
|
|
|
364
452
|
text('--restore', 'backup', 'put back the files saved before an update (a folder under <storage>\\backups)', {
|
|
365
453
|
advanced: true,
|
|
366
454
|
}),
|
|
455
|
+
bool('--yes', '(--restore) do not ask first', { short: '-y', noMenu: true }),
|
|
367
456
|
],
|
|
368
457
|
},
|
|
369
458
|
{
|
|
@@ -374,6 +463,7 @@ const COMMAND_LIST = [
|
|
|
374
463
|
options: [
|
|
375
464
|
bool('--check', 'only look whether a newer version exists'),
|
|
376
465
|
bool('--rollback', 'go back to the version before the last update'),
|
|
466
|
+
bool('--yes', '(--rollback) do not ask first', { short: '-y', noMenu: true }),
|
|
377
467
|
text('--auto', 'on|off', 'install new versions by themselves (for everyone on this PC: needs an admin terminal)', {
|
|
378
468
|
choices: ['on', 'off'],
|
|
379
469
|
}),
|
|
@@ -386,15 +476,17 @@ const COMMAND_LIST = [
|
|
|
386
476
|
},
|
|
387
477
|
{
|
|
388
478
|
name: 'repair',
|
|
389
|
-
summary: 'find and fix
|
|
479
|
+
summary: 'find and fix problems (install, data folder, settings, stale state, half-installed tools)',
|
|
390
480
|
group: 'Health',
|
|
391
481
|
args: [],
|
|
392
|
-
options: [],
|
|
482
|
+
options: [bool('--yes', 'do not ask before fixing', { short: '-y', noMenu: true })],
|
|
483
|
+
json: true,
|
|
393
484
|
},
|
|
394
485
|
{
|
|
395
486
|
name: 'self-test',
|
|
396
487
|
summary: 'run the built-in tests',
|
|
397
488
|
group: 'Health',
|
|
489
|
+
hidden: true,
|
|
398
490
|
args: [
|
|
399
491
|
{
|
|
400
492
|
name: 'suite',
|
|
@@ -408,32 +500,69 @@ const COMMAND_LIST = [
|
|
|
408
500
|
{
|
|
409
501
|
name: 'config',
|
|
410
502
|
summary: "show or create your settings file, or check a project's .sandbox-config.json",
|
|
411
|
-
group: '
|
|
503
|
+
group: 'Health',
|
|
412
504
|
args: [
|
|
413
505
|
{
|
|
414
506
|
name: 'action',
|
|
415
507
|
description: 'what to do',
|
|
416
508
|
required: false,
|
|
417
|
-
choices: ['show', 'path', 'init', 'schema', 'check'],
|
|
509
|
+
choices: ['show', 'path', 'init', 'schema', 'check', 'get', 'set', 'export', 'import'],
|
|
510
|
+
aliases: ['summary'],
|
|
511
|
+
},
|
|
512
|
+
{
|
|
513
|
+
name: 'key',
|
|
514
|
+
description: '(get, set, reset) the setting, e.g. sandbox.memoryMb; (export, import) the .json file',
|
|
515
|
+
required: false,
|
|
516
|
+
when: ['get', 'set', 'export', 'import'],
|
|
418
517
|
},
|
|
518
|
+
{ name: 'value', description: '(set) the new value', required: false, when: 'set' },
|
|
519
|
+
],
|
|
520
|
+
options: [
|
|
521
|
+
text('--workspace', 'dir', '(check) the project folder; default: the current one'),
|
|
522
|
+
bool('--with-paths', '(export) keep folders and files of this PC in the file', { when: 'export' }),
|
|
523
|
+
bool('--yes', '(import) do not ask before changing your settings', { short: '-y', when: 'import', noMenu: true }),
|
|
524
|
+
],
|
|
525
|
+
examples: [
|
|
526
|
+
'sandbox config set sandbox.memoryMb 8192',
|
|
527
|
+
'sandbox config get sandbox.memoryMb',
|
|
528
|
+
'sandbox config reset sandbox.memoryMb',
|
|
529
|
+
'sandbox config list',
|
|
530
|
+
'sandbox config export team-settings.json',
|
|
531
|
+
'sandbox config import team-settings.json',
|
|
419
532
|
],
|
|
420
|
-
options: [text('--workspace', 'dir', '(check) the project folder; default: the current one')],
|
|
421
533
|
},
|
|
422
534
|
{
|
|
423
535
|
name: 'agent-commands',
|
|
424
536
|
summary: '(Beta) make claude, codex ... on this PC start in a hidden sandbox and attach',
|
|
425
|
-
group: '
|
|
537
|
+
group: 'Advanced',
|
|
426
538
|
args: [{ name: 'action', description: 'on, off or status', required: false, choices: ['status', 'on', 'off'] }],
|
|
427
539
|
options: [],
|
|
428
540
|
},
|
|
541
|
+
{
|
|
542
|
+
name: 'vpn',
|
|
543
|
+
summary: 'the VPN for the sandbox: save your login, see whether it is on (NordVPN first)',
|
|
544
|
+
group: 'Advanced',
|
|
545
|
+
args: [
|
|
546
|
+
{
|
|
547
|
+
name: 'action',
|
|
548
|
+
description: 'status, login or logout',
|
|
549
|
+
required: false,
|
|
550
|
+
choices: ['status', 'login', 'logout'],
|
|
551
|
+
},
|
|
552
|
+
],
|
|
553
|
+
options: [],
|
|
554
|
+
json: true,
|
|
555
|
+
examples: ['sandbox vpn login', 'sandbox vpn status'],
|
|
556
|
+
},
|
|
429
557
|
{
|
|
430
558
|
name: 'host-claude',
|
|
431
|
-
summary: 'run Claude on this PC, NOT sandboxed, with its own profile',
|
|
559
|
+
summary: 'run Claude on this PC, NOT sandboxed, with its own profile (same as: sandbox host claude)',
|
|
432
560
|
group: 'Agents',
|
|
433
561
|
args: [],
|
|
434
562
|
options: [bool('--personal', 'use your normal Claude profile')],
|
|
435
563
|
passthrough: 'agent',
|
|
436
564
|
interactive: true,
|
|
565
|
+
hidden: true,
|
|
437
566
|
},
|
|
438
567
|
{
|
|
439
568
|
name: 'host',
|
|
@@ -447,15 +576,41 @@ const COMMAND_LIST = [
|
|
|
447
576
|
{
|
|
448
577
|
name: 'menu',
|
|
449
578
|
summary: 'the interactive menu (what `sandbox` opens with no arguments)',
|
|
450
|
-
group: '
|
|
579
|
+
group: 'Advanced',
|
|
451
580
|
args: [],
|
|
452
581
|
options: [],
|
|
453
582
|
hidden: true,
|
|
454
583
|
interactive: true,
|
|
455
584
|
},
|
|
585
|
+
{
|
|
586
|
+
name: 'web',
|
|
587
|
+
summary: '(beta) your sandbox sessions in a browser on this PC: start, stop, status or open',
|
|
588
|
+
group: 'Web',
|
|
589
|
+
examples: ['sandbox web open start the web UI and open it in your browser'],
|
|
590
|
+
args: [
|
|
591
|
+
{
|
|
592
|
+
name: 'action',
|
|
593
|
+
description: 'start the server, stop it, show whether it runs, or open it in your browser',
|
|
594
|
+
required: false,
|
|
595
|
+
choices: ['start', 'stop', 'status', 'open'],
|
|
596
|
+
},
|
|
597
|
+
],
|
|
598
|
+
options: [],
|
|
599
|
+
json,
|
|
600
|
+
},
|
|
456
601
|
{ name: '_watch', summary: 'background history sync', group: 'Data', args: [], options: [], hidden: true },
|
|
602
|
+
{
|
|
603
|
+
name: '_web',
|
|
604
|
+
summary: 'the web UI server (started by sandbox web start)',
|
|
605
|
+
group: 'Web',
|
|
606
|
+
args: [],
|
|
607
|
+
options: [],
|
|
608
|
+
hidden: true,
|
|
609
|
+
},
|
|
457
610
|
];
|
|
458
|
-
export const COMMANDS = z
|
|
611
|
+
export const COMMANDS = z
|
|
612
|
+
.array(CommandSpecSchema)
|
|
613
|
+
.parse(withOperationCommands(z.array(CommandSpecSchema).parse(COMMAND_LIST)));
|
|
459
614
|
export function commandSpec(name) {
|
|
460
615
|
return COMMANDS.find((c) => c.name === name);
|
|
461
616
|
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { Harness } from '../../core/types.js';
|
|
2
|
+
import type { App } from '../tui/index.js';
|
|
3
|
+
import type { ConfigFile } from '../../app/features/settings/index.js';
|
|
4
|
+
import type { Draft } from './settings/draft.js';
|
|
5
|
+
/** How a new agent gets into the sandbox. */
|
|
6
|
+
export type AgentSource = 'npm' | 'uv' | 'host';
|
|
7
|
+
/** Nothing wrong with the name (true), or what is wrong. Pure. */
|
|
8
|
+
export declare function agentNameProblem(name: string, taken: readonly string[]): true | string;
|
|
9
|
+
/** The command a package usually provides: "@scope/my-agent@latest" gives "my-agent". Pure. */
|
|
10
|
+
export declare function commandFromPackage(pkg: string): string;
|
|
11
|
+
/** The config entry for a new agent. Pure. */
|
|
12
|
+
export declare function newAgent(source: AgentSource, what: string, command: string, hostDir?: string): Harness;
|
|
13
|
+
/** What `harnesses` should say with `name` taken out. Pure. */
|
|
14
|
+
export declare function withoutAgent(current: unknown, name: string): Record<string, unknown>;
|
|
15
|
+
/** Writes a setting to your config file now, or adds it to the unsaved changes when it has some already. */
|
|
16
|
+
export declare function writeOrStage(file: ConfigFile, draft: Draft, key: string[], value: unknown): {
|
|
17
|
+
saved: boolean;
|
|
18
|
+
};
|
|
19
|
+
/** What `harnesses` should say with `name` added to what is staged or in the file now. Pure. */
|
|
20
|
+
export declare function withAgent(current: unknown, name: string, harness: Harness): Record<string, unknown>;
|
|
21
|
+
/** Makes `name` the agent that starts by default (written now, or joined to unsaved changes to that setting). */
|
|
22
|
+
export declare function makeDefaultAgent(file: ConfigFile, draft: Draft, name: string): {
|
|
23
|
+
saved: boolean;
|
|
24
|
+
};
|
|
25
|
+
/** Takes an agent you added out of your settings (the built-in ones are not removable). */
|
|
26
|
+
export declare function removeAgent(file: ConfigFile, draft: Draft, name: string): {
|
|
27
|
+
saved: boolean;
|
|
28
|
+
};
|
|
29
|
+
export interface AddedAgent {
|
|
30
|
+
readonly name: string;
|
|
31
|
+
/** Written to your config file now (false: waiting for Ctrl+S with the other unsaved changes). */
|
|
32
|
+
readonly saved: boolean;
|
|
33
|
+
}
|
|
34
|
+
export declare class AddAgent {
|
|
35
|
+
private readonly app;
|
|
36
|
+
private readonly file;
|
|
37
|
+
private readonly draft;
|
|
38
|
+
/** Every agent that exists now (the new name must be different). */
|
|
39
|
+
private readonly taken;
|
|
40
|
+
constructor(app: App, file: ConfigFile, draft: Draft,
|
|
41
|
+
/** Every agent that exists now (the new name must be different). */
|
|
42
|
+
taken: readonly string[]);
|
|
43
|
+
/** Asks, then adds the agent. Undefined when you backed out. */
|
|
44
|
+
run(): Promise<AddedAgent | undefined>;
|
|
45
|
+
/** Validates and writes (or stages) the entry. */
|
|
46
|
+
private add;
|
|
47
|
+
}
|