windows-development-sandbox 1.4.1 → 1.4.3
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/config.example.json +3 -1
- package/dist/api.js +27 -16
- package/dist/cli/args.d.ts +4 -6
- package/dist/cli/args.js +67 -34
- package/dist/cli/argv.d.ts +9 -0
- package/dist/cli/argv.js +22 -0
- package/dist/cli/commands/accounts.d.ts +1 -1
- package/dist/cli/commands/accounts.js +42 -27
- package/dist/cli/commands/agent-commands.d.ts +3 -3
- package/dist/cli/commands/agent-commands.js +27 -18
- package/dist/cli/commands/context.d.ts +9 -11
- package/dist/cli/commands/context.js +35 -32
- package/dist/cli/commands/data/clean.d.ts +2 -2
- package/dist/cli/commands/data/clean.js +27 -11
- package/dist/cli/commands/data/collect.d.ts +6 -3
- package/dist/cli/commands/data/collect.js +46 -15
- package/dist/cli/commands/data/index.d.ts +2 -2
- package/dist/cli/commands/data/index.js +30 -12
- package/dist/cli/commands/data/remove.d.ts +1 -1
- package/dist/cli/commands/data/remove.js +4 -4
- package/dist/cli/commands/index.d.ts +5 -4
- package/dist/cli/commands/index.js +5 -4
- package/dist/cli/commands/launch/add-root.d.ts +7 -0
- package/dist/cli/commands/launch/add-root.js +64 -0
- package/dist/cli/commands/launch/boot-progress.d.ts +7 -0
- package/dist/cli/commands/launch/boot-progress.js +48 -0
- package/dist/cli/commands/launch/boot-wants.d.ts +11 -0
- package/dist/cli/commands/launch/boot-wants.js +48 -0
- package/dist/cli/commands/launch/first-start.d.ts +10 -0
- package/dist/cli/commands/launch/first-start.js +53 -0
- package/dist/cli/commands/launch/index.d.ts +6 -0
- package/dist/cli/commands/launch/index.js +6 -0
- package/dist/cli/commands/launch/launch.d.ts +8 -0
- package/dist/cli/commands/launch/launch.js +211 -0
- package/dist/cli/commands/launch/prepare.d.ts +23 -0
- package/dist/cli/commands/launch/prepare.js +109 -0
- package/dist/cli/commands/launch/running.d.ts +45 -0
- package/dist/cli/commands/launch/running.js +218 -0
- package/dist/cli/commands/launch/summary.d.ts +8 -0
- package/dist/cli/commands/launch/summary.js +98 -0
- package/dist/cli/commands/maintenance/audit.d.ts +3 -0
- package/dist/cli/commands/maintenance/audit.js +58 -0
- package/dist/cli/commands/maintenance/clean.d.ts +2 -0
- package/dist/cli/commands/maintenance/clean.js +10 -0
- package/dist/cli/commands/maintenance/config.d.ts +2 -0
- package/dist/cli/commands/maintenance/config.js +145 -0
- package/dist/cli/commands/maintenance/doctor.d.ts +2 -0
- package/dist/cli/commands/maintenance/doctor.js +52 -0
- package/dist/cli/commands/maintenance/host-claude.d.ts +2 -0
- package/dist/cli/commands/maintenance/host-claude.js +4 -0
- package/dist/cli/commands/maintenance/index.d.ts +8 -0
- package/dist/cli/commands/maintenance/index.js +9 -0
- package/dist/cli/commands/maintenance/logs.d.ts +2 -0
- package/dist/cli/commands/maintenance/logs.js +44 -0
- package/dist/cli/commands/maintenance/sync.d.ts +2 -0
- package/dist/cli/commands/maintenance/sync.js +12 -0
- package/dist/cli/commands/maintenance/watch.d.ts +3 -0
- package/dist/cli/commands/maintenance/watch.js +6 -0
- package/dist/cli/commands/projects/describe-sessions.d.ts +3 -0
- package/dist/cli/commands/projects/describe-sessions.js +15 -0
- package/dist/cli/commands/projects/here.d.ts +38 -0
- package/dist/cli/commands/projects/here.js +145 -0
- package/dist/cli/commands/projects/index.d.ts +4 -0
- package/dist/cli/commands/projects/index.js +4 -0
- package/dist/cli/commands/projects/projects.d.ts +14 -0
- package/dist/cli/commands/projects/projects.js +213 -0
- package/dist/cli/commands/projects/restart.d.ts +15 -0
- package/dist/cli/commands/projects/restart.js +149 -0
- package/dist/cli/commands/registry.d.ts +3 -0
- package/dist/cli/commands/registry.js +34 -0
- package/dist/cli/commands/repair/checks.js +105 -29
- package/dist/cli/commands/repair/finders.d.ts +13 -10
- package/dist/cli/commands/repair/finders.js +63 -43
- package/dist/cli/commands/repair/index.d.ts +4 -4
- package/dist/cli/commands/repair/index.js +47 -21
- package/dist/cli/commands/repair/types.d.ts +2 -2
- package/dist/cli/commands/repair/types.js +7 -2
- package/dist/cli/commands/sessions/attach.d.ts +2 -0
- package/dist/cli/commands/sessions/attach.js +45 -0
- package/dist/cli/commands/sessions/control.d.ts +4 -0
- package/dist/cli/commands/sessions/control.js +62 -0
- package/dist/cli/commands/sessions/exec.d.ts +6 -0
- package/dist/cli/commands/sessions/exec.js +72 -0
- package/dist/cli/commands/sessions/index.d.ts +6 -0
- package/dist/cli/commands/sessions/index.js +9 -0
- package/dist/cli/commands/sessions/list.d.ts +15 -0
- package/dist/cli/commands/sessions/list.js +65 -0
- package/dist/cli/commands/sessions/status.d.ts +2 -0
- package/dist/cli/commands/sessions/status.js +153 -0
- package/dist/cli/commands/sessions/window.d.ts +3 -0
- package/dist/cli/commands/sessions/window.js +18 -0
- package/dist/cli/commands/setup/checks.d.ts +4 -4
- package/dist/cli/commands/setup/checks.js +36 -19
- package/dist/cli/commands/setup/facts.d.ts +6 -6
- package/dist/cli/commands/setup/facts.js +23 -11
- package/dist/cli/commands/setup/index.d.ts +1 -1
- package/dist/cli/commands/setup/index.js +25 -12
- package/dist/cli/commands/user-config.d.ts +5 -5
- package/dist/cli/commands/user-config.js +14 -12
- package/dist/cli/history.d.ts +5 -4
- package/dist/cli/history.js +23 -11
- package/dist/cli/index.d.ts +4 -14
- package/dist/cli/index.js +27 -77
- package/dist/cli/manifest.d.ts +464 -10
- package/dist/cli/manifest.js +327 -53
- package/dist/cli/menu/apps.d.ts +7 -5
- package/dist/cli/menu/apps.js +64 -16
- package/dist/cli/menu/command-fields.d.ts +15 -0
- package/dist/cli/menu/command-fields.js +23 -0
- package/dist/cli/menu/command-form.d.ts +3 -5
- package/dist/cli/menu/command-form.js +116 -48
- package/dist/cli/menu/home.d.ts +22 -0
- package/dist/cli/menu/home.js +72 -0
- package/dist/cli/menu/index.d.ts +2 -24
- package/dist/cli/menu/index.js +4 -178
- package/dist/cli/menu/menu.d.ts +23 -0
- package/dist/cli/menu/menu.js +185 -0
- package/dist/cli/menu/settings/categories.d.ts +2 -2
- package/dist/cli/menu/settings/categories.js +123 -20
- package/dist/cli/menu/settings/collections/collection-editor.d.ts +23 -0
- package/dist/cli/menu/settings/collections/collection-editor.js +89 -0
- package/dist/cli/menu/settings/collections/map-editor.d.ts +10 -0
- package/dist/cli/menu/settings/collections/map-editor.js +34 -0
- package/dist/cli/menu/settings/collections/object-list-editor.d.ts +10 -0
- package/dist/cli/menu/settings/collections/object-list-editor.js +23 -0
- package/dist/cli/menu/settings/collections/object-map-editor.d.ts +10 -0
- package/dist/cli/menu/settings/collections/object-map-editor.js +35 -0
- package/dist/cli/menu/settings/collections/string-list-editor.d.ts +12 -0
- package/dist/cli/menu/settings/collections/string-list-editor.js +39 -0
- package/dist/cli/menu/settings/config-file.d.ts +2 -2
- package/dist/cli/menu/settings/config-file.js +42 -19
- package/dist/cli/menu/settings/editor-actions.d.ts +2 -0
- package/dist/cli/menu/settings/editor-actions.js +2 -0
- package/dist/cli/menu/settings/format.d.ts +5 -0
- package/dist/cli/menu/settings/format.js +39 -0
- package/dist/cli/menu/settings/index.d.ts +1 -29
- package/dist/cli/menu/settings/index.js +1 -133
- package/dist/cli/menu/settings/object-editor.d.ts +12 -0
- package/dist/cli/menu/settings/object-editor.js +86 -0
- package/dist/cli/menu/settings/schema-node.d.ts +3 -1
- package/dist/cli/menu/settings/schema-node.js +71 -24
- package/dist/cli/menu/settings/settings-editor.d.ts +30 -0
- package/dist/cli/menu/settings/settings-editor.js +176 -0
- package/dist/cli/menu/settings/{editors.d.ts → value-editor.d.ts} +2 -13
- package/dist/cli/menu/settings/value-editor.js +137 -0
- package/dist/cli/menu/several.d.ts +4 -4
- package/dist/cli/menu/several.js +61 -20
- package/dist/cli/{colors.d.ts → output/colors.d.ts} +8 -8
- package/dist/cli/{colors.js → output/colors.js} +32 -14
- package/dist/cli/output/index.d.ts +3 -0
- package/dist/cli/output/index.js +3 -0
- package/dist/cli/output/print.d.ts +5 -0
- package/dist/cli/output/print.js +14 -0
- package/dist/cli/{progress.d.ts → output/progress.d.ts} +5 -5
- package/dist/cli/{progress.js → output/progress.js} +42 -19
- package/dist/cli/report.d.ts +2 -0
- package/dist/cli/report.js +20 -0
- package/dist/cli/tui/app.d.ts +6 -16
- package/dist/cli/tui/app.js +28 -8
- package/dist/cli/tui/dialogs/confirm-screen.d.ts +20 -0
- package/dist/cli/tui/dialogs/confirm-screen.js +50 -0
- package/dist/cli/tui/dialogs/message-screen.d.ts +17 -0
- package/dist/cli/tui/dialogs/message-screen.js +55 -0
- package/dist/cli/tui/dialogs/paragraphs.d.ts +2 -0
- package/dist/cli/tui/dialogs/paragraphs.js +5 -0
- package/dist/cli/tui/dialogs/text-screen.d.ts +26 -0
- package/dist/cli/tui/dialogs/text-screen.js +107 -0
- package/dist/cli/tui/frame.js +3 -1
- package/dist/cli/tui/index.d.ts +7 -3
- package/dist/cli/tui/index.js +4 -2
- package/dist/cli/tui/list/list-screen.d.ts +29 -0
- package/dist/cli/tui/{list-screen.js → list/list-screen.js} +86 -23
- package/dist/cli/tui/{list-screen.d.ts → list/list-types.d.ts} +0 -28
- package/dist/cli/tui/screen.d.ts +14 -0
- package/dist/cli/tui/terminal.js +34 -10
- package/dist/cli/tui/text.d.ts +2 -1
- package/dist/cli/tui/text.js +37 -7
- package/dist/cli/tui/theme.js +27 -9
- package/dist/cli/validate.d.ts +8 -8
- package/dist/cli/validate.js +32 -21
- package/dist/core/config/defaults.d.ts +2 -0
- package/dist/core/config/defaults.js +203 -0
- package/dist/core/config/index.d.ts +2 -0
- package/dist/core/config/index.js +3 -0
- package/dist/core/{config.d.ts → config/loader.d.ts} +1 -2
- package/dist/core/config/loader.js +47 -0
- package/dist/core/{detect-databases.js → detect/databases.js} +111 -23
- package/dist/core/detect/index.d.ts +4 -0
- package/dist/core/detect/index.js +4 -0
- package/dist/core/{detect-pwsh.d.ts → detect/pwsh.d.ts} +1 -1
- package/dist/core/{detect-pwsh.js → detect/pwsh.js} +25 -11
- package/dist/core/{detect-toolchains.d.ts → detect/toolchains.d.ts} +1 -1
- package/dist/core/{detect-toolchains.js → detect/toolchains.js} +42 -5
- package/dist/{guest/toolchains → core/detect}/versions.js +28 -12
- package/dist/core/disk.d.ts +2 -0
- package/dist/core/disk.js +46 -3
- package/dist/core/local-config/boot-wants.d.ts +45 -0
- package/dist/core/local-config/boot-wants.js +120 -0
- package/dist/core/local-config/file.d.ts +3 -0
- package/dist/core/local-config/file.js +16 -0
- package/dist/core/local-config/index.d.ts +5 -0
- package/dist/core/local-config/index.js +7 -0
- package/dist/core/{local-config.d.ts → local-config/overrides.d.ts} +3 -18
- package/dist/core/{local-config.js → local-config/overrides.js} +45 -52
- package/dist/core/local-config/policy.d.ts +19 -0
- package/dist/core/local-config/policy.js +45 -0
- package/dist/core/local-config/trust.d.ts +13 -0
- package/dist/core/local-config/trust.js +43 -0
- package/dist/core/package-info.d.ts +4 -0
- package/dist/core/package-info.js +13 -0
- package/dist/core/run/guest-workspace.d.ts +23 -0
- package/dist/core/run/guest-workspace.js +47 -0
- package/dist/core/run/index.d.ts +3 -0
- package/dist/core/run/index.js +3 -0
- package/dist/core/run/resolve-run.d.ts +3 -0
- package/dist/core/run/resolve-run.js +202 -0
- package/dist/core/run/versions.d.ts +13 -0
- package/dist/core/run/versions.js +65 -0
- package/dist/core/safe-paths.js +17 -5
- package/dist/core/schema/apps.d.ts +4 -4
- package/dist/core/schema/apps.js +55 -21
- package/dist/core/schema/common.d.ts +13 -10
- package/dist/core/schema/common.js +16 -10
- package/dist/core/schema/config.d.ts +15 -10
- package/dist/core/schema/config.js +78 -53
- package/dist/core/schema/databases.d.ts +4 -3
- package/dist/core/schema/databases.js +16 -12
- package/dist/core/schema/harness.d.ts +1 -1
- package/dist/core/schema/harness.js +17 -7
- package/dist/core/schema/index.d.ts +6 -0
- package/dist/core/schema/index.js +8 -0
- package/dist/core/schema/json-schema.js +10 -5
- package/dist/core/schema/profile.d.ts +4 -4
- package/dist/core/schema/profile.js +37 -17
- package/dist/core/schema/projects.d.ts +1 -1
- package/dist/core/schema/projects.js +16 -6
- package/dist/core/schema/sandbox.d.ts +11 -11
- package/dist/core/schema/sandbox.js +101 -37
- package/dist/core/schema/toolchains.d.ts +6 -1
- package/dist/core/schema/toolchains.js +84 -34
- package/dist/core/types.d.ts +19 -9
- package/dist/core/util/errors.d.ts +8 -0
- package/dist/core/util/errors.js +14 -0
- package/dist/core/util/fs.d.ts +8 -0
- package/dist/core/util/fs.js +40 -0
- package/dist/core/util/index.d.ts +7 -0
- package/dist/core/util/index.js +7 -0
- package/dist/core/util/jsonc.d.ts +6 -0
- package/dist/core/util/jsonc.js +25 -0
- package/dist/core/util/links.d.ts +10 -0
- package/dist/core/util/links.js +39 -0
- package/dist/core/util/paths.d.ts +7 -0
- package/dist/core/util/paths.js +33 -0
- package/dist/core/util/process.d.ts +15 -0
- package/dist/core/util/process.js +54 -0
- package/dist/core/util/text.d.ts +8 -0
- package/dist/core/util/text.js +8 -0
- package/dist/guest/{setup/agents.js → agents/agent-installer.js} +24 -4
- package/dist/guest/apps/after-install.d.ts +3 -0
- package/dist/guest/apps/after-install.js +47 -0
- package/dist/guest/apps/app-installer.d.ts +22 -0
- package/dist/guest/apps/app-installer.js +116 -0
- package/dist/guest/apps/find-exe.d.ts +5 -0
- package/dist/guest/apps/find-exe.js +41 -0
- package/dist/guest/apps/index.d.ts +3 -10
- package/dist/guest/apps/index.js +6 -206
- package/dist/guest/apps/resolvers.js +37 -9
- package/dist/guest/apps/shortcuts.d.ts +6 -0
- package/dist/guest/apps/shortcuts.js +28 -0
- package/dist/guest/apps/sources.d.ts +4 -0
- package/dist/guest/apps/sources.js +17 -0
- package/dist/guest/apps/unpack.d.ts +3 -0
- package/dist/guest/apps/unpack.js +47 -0
- package/dist/guest/{audit-parse.js → audit/parse.js} +39 -3
- package/dist/guest/{audit.d.ts → audit/process-audit.d.ts} +3 -1
- package/dist/guest/{audit.js → audit/process-audit.js} +33 -8
- package/dist/guest/boot/boot-env.d.ts +4 -0
- package/dist/guest/{boot-env.js → boot/boot-env.js} +7 -5
- package/dist/guest/boot/boot.d.ts +1 -0
- package/dist/guest/{main.js → boot/boot.js} +96 -50
- package/dist/guest/{guide.js → boot/guide.js} +32 -7
- package/dist/guest/{project-env.d.ts → boot/project-env.d.ts} +3 -3
- package/dist/guest/{project-env.js → boot/project-env.js} +12 -4
- package/dist/guest/boot/project-status.d.ts +5 -0
- package/dist/guest/boot/project-status.js +28 -0
- package/dist/guest/daemon/daemon.d.ts +1 -0
- package/dist/guest/daemon/daemon.js +51 -0
- package/dist/guest/daemon/exec.js +18 -6
- package/dist/guest/daemon/{shutdown.js → idle-shutdown.js} +5 -4
- package/dist/guest/daemon/{project.d.ts → project-provisioner.d.ts} +3 -3
- package/dist/guest/daemon/{project.js → project-provisioner.js} +60 -22
- package/dist/guest/daemon/relays.js +5 -3
- package/dist/guest/daemon/{session.js → sessions.js} +84 -24
- package/dist/guest/daemon/state.d.ts +4 -1
- package/dist/guest/daemon/state.js +34 -20
- package/dist/guest/databases/database-server.d.ts +13 -0
- package/dist/guest/databases/database-server.js +35 -0
- package/dist/guest/databases/dynamodb.d.ts +12 -0
- package/dist/guest/databases/dynamodb.js +81 -0
- package/dist/guest/databases/index.d.ts +2 -0
- package/dist/guest/databases/index.js +2 -0
- package/dist/guest/databases/mongodb.d.ts +7 -0
- package/dist/guest/databases/mongodb.js +46 -0
- package/dist/guest/databases/mysql.d.ts +7 -0
- package/dist/guest/databases/mysql.js +59 -0
- package/dist/guest/databases/names.d.ts +5 -0
- package/dist/guest/databases/names.js +8 -0
- package/dist/guest/databases/postgres.d.ts +9 -0
- package/dist/guest/databases/postgres.js +85 -0
- package/dist/guest/databases/redis.d.ts +7 -0
- package/dist/guest/databases/redis.js +25 -0
- package/dist/guest/databases/registry.d.ts +5 -0
- package/dist/guest/databases/registry.js +51 -0
- package/dist/guest/databases/sbx-db.d.ts +1 -0
- package/dist/guest/{db.js → databases/sbx-db.js} +13 -13
- package/dist/guest/{toolchains/databases → databases}/server.d.ts +5 -5
- package/dist/guest/{toolchains/databases → databases}/server.js +18 -13
- package/dist/guest/entries/daemon.js +16 -0
- package/dist/guest/entries/db.js +10 -0
- package/dist/guest/entries/gitguard.js +20 -0
- package/dist/guest/entries/main.d.ts +1 -0
- package/dist/guest/entries/main.js +24 -0
- package/dist/guest/entries/netproxy.d.ts +1 -0
- package/dist/guest/entries/netproxy.js +7 -0
- package/dist/guest/entries/view.d.ts +1 -0
- package/dist/guest/entries/view.js +11 -0
- package/dist/guest/{gitguard.js → git/decision.js} +49 -26
- package/dist/guest/network/addresses.d.ts +2 -0
- package/dist/guest/network/addresses.js +6 -0
- package/dist/guest/{setup/network.d.ts → network/allow-only.d.ts} +0 -10
- package/dist/guest/network/allow-only.js +84 -0
- package/dist/guest/network/firewall.d.ts +9 -0
- package/dist/guest/{setup/network.js → network/firewall.js} +58 -63
- package/dist/guest/network/proxy-server.d.ts +2 -0
- package/dist/guest/{netproxy.js → network/proxy-server.js} +37 -18
- package/dist/guest/{helpers.d.ts → runtime/csc.d.ts} +1 -1
- package/dist/guest/{helpers.js → runtime/csc.js} +7 -2
- package/dist/guest/runtime/fs.d.ts +2 -0
- package/dist/guest/runtime/fs.js +6 -0
- package/dist/guest/runtime/log.d.ts +3 -0
- package/dist/guest/runtime/log.js +22 -0
- package/dist/guest/runtime/paths.d.ts +13 -0
- package/dist/guest/runtime/paths.js +14 -0
- package/dist/guest/{ports.js → runtime/ports.js} +8 -2
- package/dist/guest/runtime/process.d.ts +15 -0
- package/dist/guest/runtime/process.js +59 -0
- package/dist/guest/{project-context.js → runtime/project-context.js} +1 -1
- package/dist/guest/runtime/session.d.ts +5 -0
- package/dist/guest/runtime/session.js +10 -0
- package/dist/guest/runtime/status.d.ts +7 -0
- package/dist/guest/runtime/status.js +57 -0
- package/dist/guest/{cmdline.js → sessions/cmdline.js} +10 -4
- package/dist/guest/{ptyhost.js → sessions/pty-host.js} +12 -5
- package/dist/guest/{view.js → sessions/viewer.js} +8 -11
- package/dist/guest/setup/claude-mem.d.ts +10 -0
- package/dist/guest/setup/{claude.js → claude-mem.js} +18 -78
- package/dist/guest/setup/{claude.d.ts → claude-profile.d.ts} +0 -10
- package/dist/guest/setup/claude-profile.js +89 -0
- package/dist/guest/setup/desktop.d.ts +2 -0
- package/dist/guest/setup/desktop.js +32 -0
- package/dist/guest/setup/environment.js +28 -5
- package/dist/guest/setup/{user.d.ts → git-identity.d.ts} +0 -2
- package/dist/guest/setup/git-identity.js +34 -0
- package/dist/guest/{gitrules.d.ts → setup/git-rules.d.ts} +1 -1
- package/dist/guest/setup/git-rules.js +50 -0
- package/dist/guest/setup/hooks.js +22 -5
- package/dist/guest/setup/{policy.js → managed-policy.js} +2 -2
- package/dist/guest/toolchains/catalogue.d.ts +4 -4
- package/dist/guest/toolchains/catalogue.js +30 -7
- package/dist/guest/toolchains/detect.d.ts +12 -0
- package/dist/guest/toolchains/detect.js +54 -0
- package/dist/guest/toolchains/index.d.ts +3 -17
- package/dist/guest/toolchains/index.js +1 -106
- package/dist/guest/toolchains/install.d.ts +20 -0
- package/dist/guest/toolchains/install.js +29 -0
- package/dist/guest/toolchains/languages/go.d.ts +3 -0
- package/dist/guest/toolchains/{go.js → languages/go.js} +27 -9
- package/dist/guest/toolchains/languages/java.d.ts +8 -0
- package/dist/guest/toolchains/{java.js → languages/java.js} +57 -18
- package/dist/guest/toolchains/languages/node.d.ts +3 -0
- package/dist/guest/toolchains/{node.js → languages/node.js} +51 -18
- package/dist/guest/toolchains/languages/php.d.ts +3 -0
- package/dist/guest/toolchains/{scripting → languages}/php.js +36 -11
- package/dist/guest/toolchains/languages/python-tools.d.ts +3 -0
- package/dist/guest/toolchains/languages/python-tools.js +12 -0
- package/dist/guest/toolchains/languages/python.d.ts +3 -0
- package/dist/guest/toolchains/{python.js → languages/python.js} +29 -16
- package/dist/guest/toolchains/languages/ruby.d.ts +3 -0
- package/dist/guest/toolchains/{scripting → languages}/ruby.js +28 -10
- package/dist/guest/toolchains/leftovers.d.ts +1 -1
- package/dist/guest/toolchains/leftovers.js +13 -11
- package/dist/guest/toolchains/managers.d.ts +6 -6
- package/dist/guest/toolchains/managers.js +38 -17
- package/dist/guest/toolchains/native/binstall.d.ts +3 -2
- package/dist/guest/toolchains/native/binstall.js +20 -8
- package/dist/guest/toolchains/native/cpp.d.ts +2 -2
- package/dist/guest/toolchains/native/cpp.js +23 -8
- package/dist/guest/toolchains/native/dotnet.d.ts +5 -3
- package/dist/guest/toolchains/native/dotnet.js +72 -24
- package/dist/guest/toolchains/native/mesa.d.ts +2 -2
- package/dist/guest/toolchains/native/mesa.js +27 -10
- package/dist/guest/toolchains/native/msvc/environment.d.ts +4 -4
- package/dist/guest/toolchains/native/msvc/environment.js +30 -16
- package/dist/guest/toolchains/native/msvc/index.d.ts +3 -3
- package/dist/guest/toolchains/native/msvc/index.js +10 -8
- package/dist/guest/toolchains/native/msvc/packages.d.ts +1 -1
- package/dist/guest/toolchains/native/msvc/packages.js +69 -23
- package/dist/guest/toolchains/native/msvc/tree.d.ts +6 -6
- package/dist/guest/toolchains/native/msvc/tree.js +15 -9
- package/dist/guest/toolchains/native/rust-extras.d.ts +23 -0
- package/dist/guest/toolchains/native/rust-extras.js +100 -0
- package/dist/guest/toolchains/native/rust.d.ts +2 -2
- package/dist/guest/toolchains/native/rust.js +41 -10
- package/dist/guest/toolchains/{scripting → native}/vcruntime.d.ts +2 -2
- package/dist/guest/toolchains/{scripting → native}/vcruntime.js +17 -7
- package/dist/guest/toolchains/package-ledger.d.ts +17 -0
- package/dist/guest/toolchains/package-ledger.js +54 -0
- package/dist/guest/toolchains/plan.d.ts +3 -24
- package/dist/guest/toolchains/plan.js +99 -111
- package/dist/guest/toolchains/runtimes.d.ts +6 -6
- package/dist/guest/toolchains/runtimes.js +31 -13
- package/dist/guest/toolchains/scheduler.d.ts +22 -0
- package/dist/guest/toolchains/scheduler.js +123 -0
- package/dist/guest/toolchains/setup.d.ts +10 -0
- package/dist/guest/toolchains/setup.js +22 -0
- package/dist/guest/toolchains/state-file.d.ts +3 -0
- package/dist/guest/toolchains/state-file.js +10 -0
- package/dist/guest/toolchains/step.d.ts +24 -0
- package/dist/guest/toolchains/step.js +1 -0
- package/dist/guest/toolchains/tool-env.d.ts +12 -0
- package/dist/guest/toolchains/tool-env.js +16 -0
- package/dist/guest/toolchains/tools/cli.d.ts +10 -0
- package/dist/guest/toolchains/{cli.js → tools/cli.js} +35 -15
- package/dist/guest/toolchains/tools/git.d.ts +3 -0
- package/dist/guest/toolchains/{git.js → tools/git.js} +38 -15
- package/dist/guest/toolchains/tools/pwsh.d.ts +4 -0
- package/dist/guest/toolchains/{pwsh.js → tools/pwsh.js} +14 -7
- package/dist/guest/toolchains/{vscode-profile.d.ts → tools/vscode-profile.d.ts} +6 -6
- package/dist/guest/toolchains/{vscode-profile.js → tools/vscode-profile.js} +28 -12
- package/dist/guest/toolchains/{vscode.d.ts → tools/vscode.d.ts} +6 -6
- package/dist/guest/toolchains/{vscode.js → tools/vscode.js} +67 -21
- package/dist/guest/toolchains/version-cache.d.ts +16 -0
- package/dist/guest/toolchains/version-cache.js +67 -0
- package/dist/host/agent-commands/commands.d.ts +13 -0
- package/dist/host/agent-commands/commands.js +33 -0
- package/dist/host/agent-commands/forwarders.d.ts +7 -0
- package/dist/host/agent-commands/forwarders.js +31 -0
- package/dist/host/agent-commands/index.d.ts +4 -0
- package/dist/host/agent-commands/index.js +4 -0
- package/dist/host/agent-commands/reconcile.d.ts +12 -0
- package/dist/host/agent-commands/reconcile.js +69 -0
- package/dist/host/agent-commands/user-path.d.ts +2 -0
- package/dist/host/agent-commands/user-path.js +33 -0
- package/dist/host/audit/collect.d.ts +2 -2
- package/dist/host/audit/collect.js +59 -22
- package/dist/host/audit/log.d.ts +2 -2
- package/dist/host/audit/log.js +24 -8
- package/dist/host/{attach.d.ts → channel/attach.d.ts} +2 -2
- package/dist/host/{attach.js → channel/attach.js} +33 -15
- package/dist/host/channel/channel.d.ts +51 -0
- package/dist/host/channel/channel.js +196 -0
- package/dist/host/channel/index.d.ts +2 -0
- package/dist/host/channel/index.js +2 -0
- package/dist/host/guard/agent-files.d.ts +7 -0
- package/dist/host/guard/agent-files.js +103 -0
- package/dist/host/guard/commands.d.ts +10 -0
- package/dist/host/guard/commands.js +123 -0
- package/dist/host/guard/file-hash.d.ts +4 -0
- package/dist/host/guard/file-hash.js +37 -0
- package/dist/host/guard/git-config.d.ts +5 -0
- package/dist/host/guard/git-config.js +62 -0
- package/dist/host/guard/git-dirs.d.ts +12 -0
- package/dist/host/guard/git-dirs.js +53 -0
- package/dist/host/guard/index.d.ts +5 -0
- package/dist/host/guard/index.js +4 -0
- package/dist/host/guard/mark-of-the-web.d.ts +8 -0
- package/dist/host/guard/mark-of-the-web.js +74 -0
- package/dist/host/guard/nested-repos.d.ts +14 -0
- package/dist/host/guard/nested-repos.js +88 -0
- package/dist/host/guard/quarantine.d.ts +3 -0
- package/dist/host/guard/quarantine.js +24 -0
- package/dist/host/guard/repo-guard.d.ts +10 -0
- package/dist/host/guard/repo-guard.js +36 -0
- package/dist/host/guard/store.d.ts +40 -0
- package/dist/host/guard/store.js +145 -0
- package/dist/host/guard/types.d.ts +27 -0
- package/dist/host/guard/types.js +3 -0
- package/dist/host/guard/watch-state.d.ts +9 -0
- package/dist/host/guard/watch-state.js +26 -0
- package/dist/host/launch/boot-projects.d.ts +17 -0
- package/dist/host/launch/{projects.js → boot-projects.js} +22 -13
- package/dist/host/{database-plan.d.ts → launch/database-plan.d.ts} +5 -5
- package/dist/host/{database-plan.js → launch/database-plan.js} +24 -13
- package/dist/host/launch/generate.d.ts +4 -0
- package/dist/host/launch/generate.js +77 -0
- package/dist/host/launch/index.d.ts +10 -0
- package/dist/host/launch/index.js +10 -0
- package/dist/host/launch/mappings.d.ts +5 -5
- package/dist/host/launch/mappings.js +37 -24
- package/dist/host/launch/pc-scan.d.ts +5 -0
- package/dist/host/{pc-scan.js → launch/pc-scan.js} +20 -13
- package/dist/host/launch/project-scan.d.ts +7 -0
- package/dist/host/{project-scan.js → launch/project-scan.js} +29 -21
- package/dist/host/launch/session-file.d.ts +23 -0
- package/dist/host/launch/session-file.js +73 -0
- package/dist/host/launch/stage.d.ts +5 -5
- package/dist/host/launch/stage.js +14 -13
- package/dist/host/launch/toolchains.d.ts +4 -0
- package/dist/host/launch/toolchains.js +11 -0
- package/dist/host/launch/{wsb.d.ts → wsb-file.d.ts} +4 -2
- package/dist/host/launch/wsb-file.js +56 -0
- package/dist/host/life/crash-report.d.ts +8 -0
- package/dist/host/life/crash-report.js +87 -0
- package/dist/host/life/index.d.ts +6 -0
- package/dist/host/life/index.js +6 -0
- package/dist/host/life/keep-awake.d.ts +10 -0
- package/dist/host/life/keep-awake.js +29 -0
- package/dist/host/life/life-record.d.ts +48 -0
- package/dist/host/life/life-record.js +76 -0
- package/dist/host/life/stop-events.d.ts +27 -0
- package/dist/host/life/stop-events.js +96 -0
- package/dist/host/life/stop-warning.d.ts +4 -0
- package/dist/host/life/stop-warning.js +25 -0
- package/dist/host/life/windows-update.d.ts +3 -0
- package/dist/host/life/windows-update.js +11 -0
- package/dist/host/native.d.ts +4 -0
- package/dist/host/native.js +11 -0
- package/dist/host/network/index.d.ts +1 -0
- package/dist/host/network/index.js +1 -0
- package/dist/host/{port-forward.d.ts → network/port-forward.d.ts} +1 -1
- package/dist/host/{port-forward.js → network/port-forward.js} +16 -10
- package/dist/host/profile/accounts.d.ts +37 -0
- package/dist/host/profile/accounts.js +146 -0
- package/dist/host/profile/claude-login.d.ts +22 -0
- package/dist/host/profile/claude-login.js +57 -0
- package/dist/host/{claude-profile.d.ts → profile/claude-profile.d.ts} +9 -9
- package/dist/host/{claude-profile.js → profile/claude-profile.js} +32 -22
- package/dist/host/profile/index.d.ts +7 -0
- package/dist/host/profile/index.js +7 -0
- package/dist/host/profile/personalize.d.ts +2 -0
- package/dist/host/profile/personalize.js +127 -0
- package/dist/host/profile/reg-file.d.ts +8 -0
- package/dist/host/profile/reg-file.js +45 -0
- package/dist/host/profile/secret-files.d.ts +2 -0
- package/dist/host/profile/secret-files.js +25 -0
- package/dist/host/profile/secret-patterns.d.ts +6 -0
- package/dist/host/profile/secret-patterns.js +128 -0
- package/dist/host/profile/secrets.d.ts +12 -0
- package/dist/host/profile/secrets.js +100 -0
- package/dist/host/projects/index.d.ts +4 -0
- package/dist/host/projects/index.js +4 -0
- package/dist/host/{join.d.ts → projects/join.d.ts} +12 -9
- package/dist/host/{join.js → projects/join.js} +62 -33
- package/dist/host/projects/known.d.ts +28 -0
- package/dist/host/projects/known.js +55 -0
- package/dist/host/projects/mapper.d.ts +29 -0
- package/dist/host/projects/mapper.js +88 -0
- package/dist/host/projects/registry.d.ts +83 -0
- package/dist/host/projects/registry.js +136 -0
- package/dist/host/sandbox/doctor.d.ts +2 -0
- package/dist/host/sandbox/doctor.js +42 -0
- package/dist/host/sandbox/host-claude.d.ts +1 -0
- package/dist/host/sandbox/host-claude.js +26 -0
- package/dist/host/sandbox/index.d.ts +6 -0
- package/dist/host/sandbox/index.js +6 -0
- package/dist/host/{platform.d.ts → sandbox/platform.d.ts} +0 -5
- package/dist/host/sandbox/platform.js +60 -0
- package/dist/host/sandbox/probe.d.ts +3 -0
- package/dist/host/sandbox/probe.js +47 -0
- package/dist/host/{window.js → sandbox/window.js} +7 -5
- package/dist/host/{wsb.js → sandbox/wsb-cli.js} +31 -8
- package/dist/host/{cleanup.js → storage/cleanup.js} +27 -12
- package/dist/host/storage/index.d.ts +2 -0
- package/dist/host/storage/index.js +2 -0
- package/dist/host/storage/state-files.d.ts +4 -0
- package/dist/host/storage/state-files.js +10 -0
- package/dist/host/test-guard.js +1 -1
- package/dist/host/tools/conpty.d.ts +8 -0
- package/dist/host/tools/conpty.js +58 -0
- package/dist/host/tools/index.d.ts +2 -0
- package/dist/host/tools/index.js +2 -0
- package/dist/host/{terminal.d.ts → tools/windows-terminal.d.ts} +2 -10
- package/dist/host/{terminal.js → tools/windows-terminal.js} +33 -57
- package/dist/host/workspace-view/active-views.d.ts +3 -0
- package/dist/host/workspace-view/active-views.js +22 -0
- package/dist/host/workspace-view/index.d.ts +2 -18
- package/dist/host/workspace-view/index.js +2 -49
- package/dist/host/workspace-view/plan.d.ts +16 -0
- package/dist/host/workspace-view/plan.js +50 -0
- package/dist/host/workspace-view/rules.js +10 -3
- package/dist/host/workspace-view/view-state.d.ts +10 -0
- package/dist/host/workspace-view/view-state.js +31 -0
- package/dist/host/workspace-view/view.d.ts +1 -0
- package/dist/host/workspace-view/view.js +51 -55
- package/dist/runtime/daemon.js +4220 -1968
- package/dist/runtime/db.js +2134 -849
- package/dist/runtime/gitguard.js +29 -11
- package/dist/runtime/main.js +4687 -2243
- package/dist/runtime/netproxy.js +1644 -420
- package/dist/runtime/view.js +1356 -428
- package/dist/selftest/accounts.test.d.ts +1 -1
- package/dist/selftest/accounts.test.js +20 -17
- package/dist/selftest/agent-commands.test.d.ts +1 -1
- package/dist/selftest/agent-commands.test.js +9 -5
- package/dist/selftest/audit.test.d.ts +1 -1
- package/dist/selftest/audit.test.js +46 -13
- package/dist/selftest/channel.test.d.ts +1 -1
- package/dist/selftest/channel.test.js +63 -16
- package/dist/selftest/cli.test.d.ts +1 -1
- package/dist/selftest/cli.test.js +68 -16
- package/dist/selftest/cmdline.test.d.ts +1 -1
- package/dist/selftest/cmdline.test.js +36 -7
- package/dist/selftest/config.test.d.ts +1 -1
- package/dist/selftest/config.test.js +12 -5
- package/dist/selftest/data.test.d.ts +1 -1
- package/dist/selftest/data.test.js +35 -6
- package/dist/selftest/detect.test.d.ts +1 -1
- package/dist/selftest/detect.test.js +22 -9
- package/dist/selftest/generate.test.d.ts +1 -1
- package/dist/selftest/generate.test.js +33 -9
- package/dist/selftest/git-access.test.d.ts +1 -1
- package/dist/selftest/git-access.test.js +42 -4
- package/dist/selftest/guest-boot.test.d.ts +1 -1
- package/dist/selftest/guest-boot.test.js +25 -7
- package/dist/selftest/host-sim.test.d.ts +1 -1
- package/dist/selftest/host-sim.test.js +27 -3
- package/dist/selftest/hostile-input.test.d.ts +1 -1
- package/dist/selftest/hostile-input.test.js +5 -5
- package/dist/selftest/index.d.ts +1 -1
- package/dist/selftest/index.js +72 -16
- package/dist/selftest/layout.test.d.ts +2 -0
- package/dist/selftest/layout.test.js +131 -0
- package/dist/selftest/links.test.d.ts +1 -1
- package/dist/selftest/links.test.js +16 -11
- package/dist/selftest/live-daemon.test.d.ts +1 -1
- package/dist/selftest/live-daemon.test.js +20 -8
- package/dist/selftest/live-git.test.d.ts +1 -1
- package/dist/selftest/live-git.test.js +13 -4
- package/dist/selftest/live-network.test.d.ts +1 -1
- package/dist/selftest/live-network.test.js +24 -9
- package/dist/selftest/live-projects.test.d.ts +1 -1
- package/dist/selftest/live-projects.test.js +47 -20
- package/dist/selftest/live-terminal.test.d.ts +1 -1
- package/dist/selftest/live-terminal.test.js +41 -15
- package/dist/selftest/local-config.test.d.ts +1 -1
- package/dist/selftest/local-config.test.js +64 -16
- package/dist/selftest/mirror.test.d.ts +1 -1
- package/dist/selftest/mirror.test.js +102 -32
- package/dist/selftest/network.test.d.ts +1 -1
- package/dist/selftest/network.test.js +17 -8
- package/dist/selftest/personalization.test.d.ts +1 -1
- package/dist/selftest/personalization.test.js +12 -5
- package/dist/selftest/projects.test.d.ts +1 -1
- package/dist/selftest/projects.test.js +280 -85
- package/dist/selftest/repair.test.d.ts +1 -1
- package/dist/selftest/repair.test.js +17 -5
- package/dist/selftest/repo-guard.test.d.ts +1 -1
- package/dist/selftest/repo-guard.test.js +21 -20
- package/dist/selftest/secrets.test.d.ts +1 -1
- package/dist/selftest/secrets.test.js +57 -13
- package/dist/selftest/setup.test.d.ts +1 -1
- package/dist/selftest/setup.test.js +25 -5
- package/dist/selftest/{fixtures.d.ts → support/fixtures.d.ts} +5 -3
- package/dist/selftest/{fixtures.js → support/fixtures.js} +95 -17
- package/dist/selftest/{harness.js → support/harness.js} +24 -7
- package/dist/selftest/{live.d.ts → support/live.d.ts} +2 -2
- package/dist/selftest/{live.js → support/live.js} +34 -10
- package/dist/selftest/support/suite.js +1 -0
- package/dist/selftest/sync.test.d.ts +1 -1
- package/dist/selftest/sync.test.js +64 -26
- package/dist/selftest/test-guard.test.d.ts +1 -1
- package/dist/selftest/test-guard.test.js +43 -15
- package/dist/selftest/toolchains.test.d.ts +1 -1
- package/dist/selftest/toolchains.test.js +135 -36
- package/dist/selftest/workspace-view.test.d.ts +1 -1
- package/dist/selftest/workspace-view.test.js +48 -11
- package/dist/selftest/workspace.test.d.ts +1 -1
- package/dist/selftest/workspace.test.js +13 -4
- package/dist/shared/{apps.d.ts → apps/catalogue.d.ts} +1 -11
- package/dist/shared/apps/catalogue.js +768 -0
- package/dist/shared/apps/index.d.ts +2 -0
- package/dist/shared/apps/index.js +2 -0
- package/dist/shared/apps/selection.d.ts +11 -0
- package/dist/shared/apps/selection.js +40 -0
- package/dist/shared/channel/index.d.ts +2 -0
- package/dist/shared/channel/index.js +2 -0
- package/dist/shared/channel/run-dir.d.ts +30 -0
- package/dist/shared/channel/run-dir.js +84 -0
- package/dist/shared/{schema.d.ts → channel/schema.d.ts} +38 -21
- package/dist/shared/{schema.js → channel/schema.js} +62 -35
- package/dist/shared/download/archive.d.ts +13 -0
- package/dist/shared/download/archive.js +57 -0
- package/dist/shared/download/downloader.d.ts +35 -0
- package/dist/shared/download/downloader.js +110 -0
- package/dist/shared/download/github.d.ts +16 -0
- package/dist/shared/download/github.js +74 -0
- package/dist/shared/download/http.d.ts +5 -0
- package/dist/shared/download/http.js +30 -0
- package/dist/shared/download/index.d.ts +5 -0
- package/dist/shared/download/index.js +5 -0
- package/dist/shared/download/spawn.d.ts +2 -0
- package/dist/shared/download/spawn.js +7 -0
- package/dist/shared/io/index.d.ts +3 -0
- package/dist/shared/io/index.js +3 -0
- package/dist/shared/io/json-file.d.ts +10 -0
- package/dist/shared/io/json-file.js +21 -0
- package/dist/shared/io/json.d.ts +13 -0
- package/dist/shared/io/json.js +49 -0
- package/dist/shared/{safe-remove.js → io/safe-remove.js} +32 -7
- package/dist/shared/{netrules.js → network/firewall-rules.js} +36 -5
- package/dist/shared/network/index.d.ts +2 -0
- package/dist/shared/network/index.js +2 -0
- package/dist/shared/{netpolicy.js → network/policy.js} +66 -11
- package/dist/shared/{paths.js → paths/claude-paths.js} +12 -2
- package/dist/shared/{guest-paths.d.ts → paths/guest-paths.d.ts} +6 -12
- package/dist/shared/{guest-paths.js → paths/guest-paths.js} +53 -36
- package/dist/shared/paths/index.d.ts +3 -0
- package/dist/shared/paths/index.js +3 -0
- package/dist/shared/{projects.js → paths/projects.js} +13 -3
- package/dist/shared/pty/client.d.ts +21 -0
- package/dist/shared/pty/client.js +79 -0
- package/dist/shared/{console-input.js → pty/console-input.js} +26 -6
- package/dist/shared/pty/index.d.ts +6 -0
- package/dist/shared/pty/index.js +6 -0
- package/dist/shared/pty/input-joiner.d.ts +15 -0
- package/dist/shared/pty/input-joiner.js +44 -0
- package/dist/shared/pty/output-filter.d.ts +13 -0
- package/dist/shared/pty/output-filter.js +140 -0
- package/dist/shared/pty/protocol.d.ts +36 -0
- package/dist/shared/pty/protocol.js +60 -0
- package/dist/shared/pty/terminal.d.ts +24 -0
- package/dist/shared/pty/terminal.js +147 -0
- package/dist/shared/test-guard.js +3 -1
- package/dist/sync/claude-mem.d.ts +1 -1
- package/dist/sync/claude-mem.js +9 -4
- package/dist/sync/history.d.ts +1 -29
- package/dist/sync/history.js +57 -45
- package/dist/sync/index.d.ts +5 -0
- package/dist/sync/index.js +5 -0
- package/dist/sync/sync-cycle.d.ts +18 -0
- package/dist/sync/sync-cycle.js +85 -0
- package/dist/sync/sync-state.d.ts +32 -0
- package/dist/sync/sync-state.js +37 -0
- package/dist/sync/watcher.d.ts +0 -18
- package/dist/sync/watcher.js +66 -100
- package/native/keep-awake.ps1 +8 -0
- package/native/power.cs +23 -0
- package/native/stop-events.ps1 +38 -0
- package/package.json +11 -3
- package/sandbox/linkgate.cs +98 -0
- package/sandbox/memlog.ps1 +15 -6
- package/schemas/config.schema.json +34 -1
- package/schemas/sandbox-config.schema.json +34 -1
- package/dist/cli/boot-progress.d.ts +0 -22
- package/dist/cli/boot-progress.js +0 -59
- package/dist/cli/commands/launch.d.ts +0 -32
- package/dist/cli/commands/launch.js +0 -421
- package/dist/cli/commands/maintenance.d.ts +0 -10
- package/dist/cli/commands/maintenance.js +0 -220
- package/dist/cli/commands/project.d.ts +0 -33
- package/dist/cli/commands/project.js +0 -102
- package/dist/cli/commands/projects.d.ts +0 -14
- package/dist/cli/commands/projects.js +0 -146
- package/dist/cli/commands/restart.d.ts +0 -6
- package/dist/cli/commands/restart.js +0 -95
- package/dist/cli/commands/sessions.d.ts +0 -12
- package/dist/cli/commands/sessions.js +0 -258
- package/dist/cli/menu/settings/editors.js +0 -305
- package/dist/cli/tui/dialogs.d.ts +0 -57
- package/dist/cli/tui/dialogs.js +0 -162
- package/dist/core/config.js +0 -109
- package/dist/core/project-policy.d.ts +0 -62
- package/dist/core/project-policy.js +0 -121
- package/dist/core/schema.d.ts +0 -6
- package/dist/core/schema.js +0 -8
- package/dist/core/util.d.ts +0 -62
- package/dist/core/util.js +0 -156
- package/dist/core/workspace.d.ts +0 -35
- package/dist/core/workspace.js +0 -206
- package/dist/guest/boot-env.d.ts +0 -4
- package/dist/guest/daemon.js +0 -57
- package/dist/guest/env.d.ts +0 -56
- package/dist/guest/env.js +0 -115
- package/dist/guest/gitrules.js +0 -11
- package/dist/guest/project-status.d.ts +0 -5
- package/dist/guest/project-status.js +0 -17
- package/dist/guest/setup/user.js +0 -51
- package/dist/guest/toolchains/cli.d.ts +0 -10
- package/dist/guest/toolchains/common.d.ts +0 -54
- package/dist/guest/toolchains/common.js +0 -147
- package/dist/guest/toolchains/databases/dynamodb.d.ts +0 -8
- package/dist/guest/toolchains/databases/dynamodb.js +0 -52
- package/dist/guest/toolchains/databases/index.d.ts +0 -6
- package/dist/guest/toolchains/databases/index.js +0 -62
- package/dist/guest/toolchains/databases/mongodb.d.ts +0 -3
- package/dist/guest/toolchains/databases/mongodb.js +0 -31
- package/dist/guest/toolchains/databases/mysql.d.ts +0 -3
- package/dist/guest/toolchains/databases/mysql.js +0 -38
- package/dist/guest/toolchains/databases/postgres.d.ts +0 -5
- package/dist/guest/toolchains/databases/postgres.js +0 -38
- package/dist/guest/toolchains/databases/redis.d.ts +0 -3
- package/dist/guest/toolchains/databases/redis.js +0 -16
- package/dist/guest/toolchains/git.d.ts +0 -3
- package/dist/guest/toolchains/go.d.ts +0 -3
- package/dist/guest/toolchains/java.d.ts +0 -8
- package/dist/guest/toolchains/node.d.ts +0 -3
- package/dist/guest/toolchains/pwsh.d.ts +0 -4
- package/dist/guest/toolchains/python.d.ts +0 -3
- package/dist/guest/toolchains/scripting/php.d.ts +0 -3
- package/dist/guest/toolchains/scripting/ruby.d.ts +0 -3
- package/dist/host/accounts.d.ts +0 -32
- package/dist/host/accounts.js +0 -128
- package/dist/host/agent-commands.d.ts +0 -25
- package/dist/host/agent-commands.js +0 -145
- package/dist/host/channel.d.ts +0 -38
- package/dist/host/channel.js +0 -163
- package/dist/host/generate.d.ts +0 -13
- package/dist/host/generate.js +0 -115
- package/dist/host/launch/projects.d.ts +0 -17
- package/dist/host/launch/wsb.js +0 -34
- package/dist/host/motw.d.ts +0 -17
- package/dist/host/motw.js +0 -74
- package/dist/host/pc-scan.d.ts +0 -6
- package/dist/host/personalize.d.ts +0 -10
- package/dist/host/personalize.js +0 -97
- package/dist/host/platform.js +0 -129
- package/dist/host/project-scan.d.ts +0 -7
- package/dist/host/projects.d.ts +0 -123
- package/dist/host/projects.js +0 -196
- package/dist/host/repo-guard.d.ts +0 -43
- package/dist/host/repo-guard.js +0 -347
- package/dist/host/secrets.d.ts +0 -14
- package/dist/host/secrets.js +0 -133
- package/dist/host/stops.d.ts +0 -67
- package/dist/host/stops.js +0 -126
- package/dist/shared/apps.js +0 -114
- package/dist/shared/download.d.ts +0 -63
- package/dist/shared/download.js +0 -238
- package/dist/shared/pty-client.d.ts +0 -108
- package/dist/shared/pty-client.js +0 -406
- package/dist/shared/rundir.d.ts +0 -41
- package/dist/shared/rundir.js +0 -96
- /package/dist/{guest/daemon.d.ts → cli/tui/list/list-types.js} +0 -0
- /package/dist/{guest/db.d.ts → cli/tui/screen.js} +0 -0
- /package/dist/core/{detect-databases.d.ts → detect/databases.d.ts} +0 -0
- /package/dist/{guest/toolchains → core/detect}/versions.d.ts +0 -0
- /package/dist/guest/{setup/agents.d.ts → agents/agent-installer.d.ts} +0 -0
- /package/dist/guest/{audit-parse.d.ts → audit/parse.d.ts} +0 -0
- /package/dist/guest/{guide.d.ts → boot/guide.d.ts} +0 -0
- /package/dist/guest/daemon/{shutdown.d.ts → idle-shutdown.d.ts} +0 -0
- /package/dist/guest/daemon/{session.d.ts → sessions.d.ts} +0 -0
- /package/dist/guest/{main.d.ts → entries/daemon.d.ts} +0 -0
- /package/dist/guest/{netproxy.d.ts → entries/db.d.ts} +0 -0
- /package/dist/{selftest/suite.js → guest/entries/gitguard.d.ts} +0 -0
- /package/dist/guest/{gitguard.d.ts → git/decision.d.ts} +0 -0
- /package/dist/guest/{ports.d.ts → runtime/ports.d.ts} +0 -0
- /package/dist/guest/{project-context.d.ts → runtime/project-context.d.ts} +0 -0
- /package/dist/guest/{cmdline.d.ts → sessions/cmdline.d.ts} +0 -0
- /package/dist/guest/{ptyhost.d.ts → sessions/pty-host.d.ts} +0 -0
- /package/dist/guest/{view.d.ts → sessions/viewer.d.ts} +0 -0
- /package/dist/guest/setup/{policy.d.ts → managed-policy.d.ts} +0 -0
- /package/dist/host/{window.d.ts → sandbox/window.d.ts} +0 -0
- /package/dist/host/{wsb.d.ts → sandbox/wsb-cli.d.ts} +0 -0
- /package/dist/host/{cleanup.d.ts → storage/cleanup.d.ts} +0 -0
- /package/dist/selftest/{harness.d.ts → support/harness.d.ts} +0 -0
- /package/dist/selftest/{suite.d.ts → support/suite.d.ts} +0 -0
- /package/dist/shared/{safe-remove.d.ts → io/safe-remove.d.ts} +0 -0
- /package/dist/shared/{netrules.d.ts → network/firewall-rules.d.ts} +0 -0
- /package/dist/shared/{netpolicy.d.ts → network/policy.d.ts} +0 -0
- /package/dist/shared/{paths.d.ts → paths/claude-paths.d.ts} +0 -0
- /package/dist/shared/{projects.d.ts → paths/projects.d.ts} +0 -0
- /package/dist/shared/{console-input.d.ts → pty/console-input.d.ts} +0 -0
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
export const DEFAULTS = {
|
|
2
|
+
defaultHarness: 'claude',
|
|
3
|
+
guestWorkspace: 'auto',
|
|
4
|
+
readOnly: false,
|
|
5
|
+
workspaceFilter: { enabled: false, exclude: [], include: [] },
|
|
6
|
+
audit: { enabled: false, days: 14, maxMb: 100, processes: true, files: true },
|
|
7
|
+
mappings: [],
|
|
8
|
+
sandbox: {
|
|
9
|
+
memoryMb: 'auto',
|
|
10
|
+
maxMemoryMb: 32768,
|
|
11
|
+
maxMemoryPercent: 80,
|
|
12
|
+
cpuLimit: 80,
|
|
13
|
+
pageFileMb: 16384,
|
|
14
|
+
reserveHostMb: 8192,
|
|
15
|
+
vGpu: false,
|
|
16
|
+
networking: true,
|
|
17
|
+
clipboard: true,
|
|
18
|
+
audioInput: false,
|
|
19
|
+
videoInput: false,
|
|
20
|
+
printerRedirection: false,
|
|
21
|
+
protectedClient: true,
|
|
22
|
+
headless: false,
|
|
23
|
+
keepAwake: true,
|
|
24
|
+
},
|
|
25
|
+
storage: {
|
|
26
|
+
root: '%LOCALAPPDATA%\\AgentSandbox',
|
|
27
|
+
persistAgentState: true,
|
|
28
|
+
dataName: 'default',
|
|
29
|
+
markSandboxFiles: true,
|
|
30
|
+
warnDataGb: 50,
|
|
31
|
+
},
|
|
32
|
+
network: { blockPrivateRanges: true, allowOnly: [], blockHosts: [], forwardPorts: [], dns: [], proxy: '' },
|
|
33
|
+
provisioning: {
|
|
34
|
+
copyFromHost: true,
|
|
35
|
+
fallbackToInstall: true,
|
|
36
|
+
refresh: false,
|
|
37
|
+
git: { enabled: true, access: 'full' },
|
|
38
|
+
terminal: { enabled: true },
|
|
39
|
+
conpty: { enabled: true },
|
|
40
|
+
},
|
|
41
|
+
downloads: { requireChecksum: false },
|
|
42
|
+
toolchains: {
|
|
43
|
+
node: { version: 'host', extraVersions: [], corepack: true, volta: 'auto', globalPackages: [] },
|
|
44
|
+
python: { enabled: 'auto', version: '3', python2: true, pyenv: 'auto', tools: [] },
|
|
45
|
+
rust: {
|
|
46
|
+
enabled: 'auto',
|
|
47
|
+
toolchain: 'stable',
|
|
48
|
+
host: 'auto',
|
|
49
|
+
components: [],
|
|
50
|
+
targets: [],
|
|
51
|
+
crates: [],
|
|
52
|
+
targetDir: 'separate',
|
|
53
|
+
linker: 'lld',
|
|
54
|
+
linkSlots: 'auto',
|
|
55
|
+
},
|
|
56
|
+
msvc: { enabled: 'auto', acceptLicense: false, msvcVersion: 'latest', sdkVersion: 'latest' },
|
|
57
|
+
cpp: { enabled: 'auto', flexBison: true },
|
|
58
|
+
dotnet: {
|
|
59
|
+
enabled: 'auto',
|
|
60
|
+
channels: ['LTS'],
|
|
61
|
+
tools: [],
|
|
62
|
+
workloads: [],
|
|
63
|
+
frameworkTargets: ['net48', 'net472'],
|
|
64
|
+
netfx35: false,
|
|
65
|
+
},
|
|
66
|
+
// Bigger downloads only for projects that use them.
|
|
67
|
+
go: { enabled: 'auto', version: 'stable', tools: [] },
|
|
68
|
+
java: { enabled: 'auto', version: 'lts', maven: true, gradle: true },
|
|
69
|
+
ruby: { enabled: 'auto', version: '3', gems: [] },
|
|
70
|
+
php: { enabled: 'auto', version: '8', composer: true },
|
|
71
|
+
deno: { enabled: 'auto' },
|
|
72
|
+
pwsh: { enabled: 'auto' },
|
|
73
|
+
cli: { gh: 'auto', zstd: false, openssl: 'auto' },
|
|
74
|
+
bun: { enabled: true },
|
|
75
|
+
uv: { enabled: true },
|
|
76
|
+
vcRuntime: { enabled: false },
|
|
77
|
+
mesa: { enabled: false, vulkan: false },
|
|
78
|
+
vscode: { enabled: true, setup: true, recommended: true, extensions: [] },
|
|
79
|
+
environment: {},
|
|
80
|
+
},
|
|
81
|
+
databases: {
|
|
82
|
+
postgres: { enabled: 'auto', version: 'latest', port: 5432 },
|
|
83
|
+
mysql: { enabled: 'auto', version: 'lts', port: 3306 },
|
|
84
|
+
mongodb: { enabled: 'auto', version: 'latest', port: 27017 },
|
|
85
|
+
redis: { enabled: 'auto', port: 6379 },
|
|
86
|
+
dynamodb: { enabled: 'auto', port: 8000, adminPort: 8001, admin: true },
|
|
87
|
+
sqlserver: { enabled: 'auto' },
|
|
88
|
+
},
|
|
89
|
+
attach: { enabled: true, reuseSession: true, auto: false, autoHide: false },
|
|
90
|
+
agentCommands: { enabled: false, agents: 'auto' },
|
|
91
|
+
secrets: { strip: true, allow: [], patterns: [], warnFiles: true },
|
|
92
|
+
personalization: { enabled: true },
|
|
93
|
+
apps: { install: [], custom: {} },
|
|
94
|
+
claudeProfile: {
|
|
95
|
+
enabled: true,
|
|
96
|
+
hostDir: 'auto',
|
|
97
|
+
include: ['settings.json', 'CLAUDE.md', 'commands', 'agents', 'skills', 'plugins'],
|
|
98
|
+
globalStateFile: 'auto',
|
|
99
|
+
copyCredentials: false,
|
|
100
|
+
overwrite: true,
|
|
101
|
+
syncHistory: true,
|
|
102
|
+
historyScope: 'project',
|
|
103
|
+
syncClaudeMem: true,
|
|
104
|
+
syncClaudeMemBack: false,
|
|
105
|
+
},
|
|
106
|
+
harnesses: {
|
|
107
|
+
claude: {
|
|
108
|
+
hostExecutable: 'claude.exe',
|
|
109
|
+
hostDir: 'auto',
|
|
110
|
+
npmPackage: '@anthropic-ai/claude-code@latest',
|
|
111
|
+
npmBin: 'claude',
|
|
112
|
+
arguments: [],
|
|
113
|
+
environment: { DISABLE_AUTOUPDATER: '1' },
|
|
114
|
+
resumeArguments: ['--continue'],
|
|
115
|
+
},
|
|
116
|
+
codex: {
|
|
117
|
+
npmPackage: '@openai/codex@latest',
|
|
118
|
+
npmBin: 'codex',
|
|
119
|
+
arguments: [],
|
|
120
|
+
environment: {},
|
|
121
|
+
resumeArguments: ['resume', '--last'],
|
|
122
|
+
},
|
|
123
|
+
gemini: {
|
|
124
|
+
npmPackage: '@google/gemini-cli@latest',
|
|
125
|
+
npmBin: 'gemini',
|
|
126
|
+
arguments: [],
|
|
127
|
+
environment: {},
|
|
128
|
+
resumeArguments: ['--resume'],
|
|
129
|
+
},
|
|
130
|
+
// Not tested by us; installed from each project's official npm / PyPI package.
|
|
131
|
+
opencode: {
|
|
132
|
+
npmPackage: 'opencode-ai@latest',
|
|
133
|
+
npmBin: 'opencode',
|
|
134
|
+
arguments: [],
|
|
135
|
+
environment: {},
|
|
136
|
+
resumeArguments: ['--continue'],
|
|
137
|
+
},
|
|
138
|
+
qwen: {
|
|
139
|
+
npmPackage: '@qwen-code/qwen-code@latest',
|
|
140
|
+
npmBin: 'qwen',
|
|
141
|
+
arguments: [],
|
|
142
|
+
environment: {},
|
|
143
|
+
resumeArguments: ['--continue'],
|
|
144
|
+
},
|
|
145
|
+
crush: {
|
|
146
|
+
npmPackage: '@charmland/crush@latest',
|
|
147
|
+
npmBin: 'crush',
|
|
148
|
+
arguments: [],
|
|
149
|
+
environment: {},
|
|
150
|
+
resumeArguments: ['--continue'],
|
|
151
|
+
},
|
|
152
|
+
copilot: {
|
|
153
|
+
npmPackage: '@github/copilot@latest',
|
|
154
|
+
npmBin: 'copilot',
|
|
155
|
+
arguments: [],
|
|
156
|
+
environment: {},
|
|
157
|
+
resumeArguments: ['--continue'],
|
|
158
|
+
},
|
|
159
|
+
kilo: {
|
|
160
|
+
npmPackage: '@kilocode/cli@latest',
|
|
161
|
+
npmBin: 'kilo',
|
|
162
|
+
arguments: [],
|
|
163
|
+
environment: {},
|
|
164
|
+
resumeArguments: ['--continue'],
|
|
165
|
+
},
|
|
166
|
+
amp: { npmPackage: '@ampcode/cli@latest', npmBin: 'amp', arguments: [], environment: {} },
|
|
167
|
+
cline: { npmPackage: 'cline@latest', npmBin: 'cline', arguments: [], environment: {} },
|
|
168
|
+
continue: {
|
|
169
|
+
npmPackage: '@continuedev/cli@latest',
|
|
170
|
+
npmBin: 'cn',
|
|
171
|
+
arguments: [],
|
|
172
|
+
environment: {},
|
|
173
|
+
resumeArguments: ['--resume'],
|
|
174
|
+
},
|
|
175
|
+
kimi: {
|
|
176
|
+
npmPackage: '@moonshot-ai/kimi-code@latest',
|
|
177
|
+
npmBin: 'kimi',
|
|
178
|
+
arguments: [],
|
|
179
|
+
environment: {},
|
|
180
|
+
resumeArguments: ['-c'],
|
|
181
|
+
},
|
|
182
|
+
// DeepSeek has no official coding CLI; these two community agents are built for it.
|
|
183
|
+
reasonix: { npmPackage: 'reasonix@latest', npmBin: 'reasonix', arguments: [], environment: {} },
|
|
184
|
+
deepseek: { npmPackage: 'codewhale@latest', npmBin: 'codewhale', arguments: [], environment: {} },
|
|
185
|
+
aider: {
|
|
186
|
+
uvPackage: 'aider-chat',
|
|
187
|
+
uvBin: 'aider',
|
|
188
|
+
arguments: [],
|
|
189
|
+
environment: {},
|
|
190
|
+
resumeArguments: ['--restore-chat-history'],
|
|
191
|
+
},
|
|
192
|
+
},
|
|
193
|
+
hooks: { failFast: false },
|
|
194
|
+
projects: {
|
|
195
|
+
all: false,
|
|
196
|
+
exclude: [],
|
|
197
|
+
roots: [],
|
|
198
|
+
askToAddRoot: true,
|
|
199
|
+
declinedRoots: [],
|
|
200
|
+
allowOutsideMappings: 'ask',
|
|
201
|
+
wsbShare: true,
|
|
202
|
+
},
|
|
203
|
+
};
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import type { Config, LoadedConfig } from '
|
|
2
|
-
export declare const DEFAULTS: Config;
|
|
1
|
+
import type { Config, LoadedConfig } from '../types.js';
|
|
3
2
|
/** Per-user folder for config and hooks. Survives reinstalling the npm package. */
|
|
4
3
|
export declare const userDir: () => string;
|
|
5
4
|
export declare const userConfigPath: () => string;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import _ from 'lodash';
|
|
4
|
+
import { ConfigSchema, describeIssues } from '../schema/index.js';
|
|
5
|
+
import { fail, homeDir, readJsonc } from '../util/index.js';
|
|
6
|
+
import { DEFAULTS } from './defaults.js';
|
|
7
|
+
/** Per-user folder for config and hooks. Survives reinstalling the npm package. */
|
|
8
|
+
export const userDir = () => process.env.AGENT_SANDBOX_HOME ?? path.join(homeDir(), '.agent-sandbox');
|
|
9
|
+
export const userConfigPath = () => path.join(userDir(), 'config.json');
|
|
10
|
+
/** Deep merge where arrays (and anything that is not a plain object) replace instead of merging element by element. */
|
|
11
|
+
export const mergeConfig = (base, extra) => _.mergeWith(_.cloneDeep(base), extra, (_target, source) => Array.isArray(source) ? source : undefined);
|
|
12
|
+
/** Validates a full config; throws one readable error listing every problem. */
|
|
13
|
+
export const validateConfig = (config, source) => {
|
|
14
|
+
const parsed = ConfigSchema.safeParse(config);
|
|
15
|
+
if (!parsed.success)
|
|
16
|
+
fail(source + ' is not valid:\n - ' + describeIssues(parsed.error).join('\n - '));
|
|
17
|
+
return parsed.data;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Lookup order: --config, %AGENT_SANDBOX_CONFIG%, ~/.agent-sandbox/config.json, built-in defaults.
|
|
21
|
+
* Whatever file is found (JSON with comments) is merged over the defaults, so it only needs the keys you change.
|
|
22
|
+
*/
|
|
23
|
+
export const loadConfig = (explicitPath) => {
|
|
24
|
+
const requested = explicitPath ?? process.env.AGENT_SANDBOX_CONFIG;
|
|
25
|
+
const full = path.resolve(requested ?? userConfigPath());
|
|
26
|
+
if (!fs.existsSync(full)) {
|
|
27
|
+
if (requested)
|
|
28
|
+
fail('Config file not found: ' + full, 'Check the --config path or AGENT_SANDBOX_CONFIG, or create one with: sandbox config init');
|
|
29
|
+
return { config: structuredClone(DEFAULTS), configPath: null, base: userDir() };
|
|
30
|
+
}
|
|
31
|
+
return {
|
|
32
|
+
config: validateConfig(mergeConfig(DEFAULTS, readJsonc(full)), full),
|
|
33
|
+
configPath: full,
|
|
34
|
+
base: path.dirname(full),
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
export const assertNoGuestOverlap = (mappings) => {
|
|
38
|
+
const normal = mappings.map((m) => m.guest.replace(/\\+$/, '').toLowerCase());
|
|
39
|
+
normal.forEach((a, i) => normal.slice(i + 1).forEach((b, j) => {
|
|
40
|
+
if (a === b || a.startsWith(b + '\\') || b.startsWith(a + '\\'))
|
|
41
|
+
fail('Two folders map to overlapping places in the sandbox: ' +
|
|
42
|
+
mappings[i].guest +
|
|
43
|
+
' and ' +
|
|
44
|
+
mappings[i + 1 + j].guest +
|
|
45
|
+
'.', 'Give each mapping its own guest folder (one must not be inside the other).');
|
|
46
|
+
}));
|
|
47
|
+
};
|
|
@@ -14,44 +14,92 @@ const infra = /^(serverless\.ya?ml|template\.ya?ml|[\w.-]+\.tf)$/i;
|
|
|
14
14
|
const dep = (names) => new RegExp('["\'\\s/=]?(' + names + ')["\'\\s@=<>~^:,\\]\\n]', 'i');
|
|
15
15
|
const RULES = {
|
|
16
16
|
postgres: [
|
|
17
|
-
[
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
[
|
|
18
|
+
compose,
|
|
19
|
+
/image:\s*["']?[\w./-]{0,80}(postgres|postgis|timescaledb|supabase\/postgres|pgvector)[\w.-]{0,40}(:|\s|["']|$)/im,
|
|
20
|
+
'a compose service runs Postgres',
|
|
21
|
+
],
|
|
22
|
+
[
|
|
23
|
+
manifests,
|
|
24
|
+
dep('pg|postgres|pg-promise|@neondatabase/serverless|@vercel/postgres|slonik|postgres-js|@electric-sql/pglite'),
|
|
25
|
+
'a Postgres driver in package.json',
|
|
26
|
+
],
|
|
27
|
+
[
|
|
28
|
+
python,
|
|
29
|
+
dep('psycopg2?(-binary)?|psycopg\\[[\\w,]+\\]|asyncpg|pg8000|django\\.db\\.backends\\.postgresql'),
|
|
30
|
+
'a Postgres driver in the Python dependencies',
|
|
31
|
+
],
|
|
20
32
|
[/^gemfile$/i, /gem\s+["']pg["']/, 'the pg gem'],
|
|
21
33
|
[/^go\.mod$/i, /github\.com\/(jackc\/pgx|lib\/pq)/, 'a Postgres driver in go.mod'],
|
|
22
|
-
[
|
|
34
|
+
[
|
|
35
|
+
/^cargo\.toml$/i,
|
|
36
|
+
/tokio-postgres|postgres\s*=|sqlx[^\n]{0,200}postgres|diesel[^\n]{0,200}postgres|sea-orm[^\n]{0,200}postgres/i,
|
|
37
|
+
'a Postgres driver in Cargo.toml',
|
|
38
|
+
],
|
|
23
39
|
[dotnet, /Npgsql/i, 'Npgsql in a .NET project'],
|
|
24
40
|
[jvm, /org\.postgresql|postgresql:postgresql|r2dbc-postgresql/i, 'the Postgres JDBC driver'],
|
|
25
41
|
[/^composer\.json$/i, /ext-pgsql|ext-pdo_pgsql/i, 'the PHP Postgres extension'],
|
|
26
42
|
[/^mix\.exs$/i, /:postgrex/, 'Postgrex'],
|
|
27
43
|
[/^schema\.prisma$/i, /provider\s*=\s*"(postgresql|postgres|cockroachdb)"/, 'Prisma uses PostgreSQL'],
|
|
28
|
-
[
|
|
44
|
+
[
|
|
45
|
+
config,
|
|
46
|
+
/postgres(ql)?(\+\w+)?:\/\/|DB_CONNECTION\s*=\s*pgsql|adapter:\s*postgres|\bHost=[^;\s]{1,200};\s*(Port=\d{1,5};\s*)?Database=|jdbc:postgresql:/i,
|
|
47
|
+
'a Postgres connection string',
|
|
48
|
+
],
|
|
29
49
|
],
|
|
30
50
|
mysql: [
|
|
31
|
-
[
|
|
51
|
+
[
|
|
52
|
+
compose,
|
|
53
|
+
/image:\s*["']?[\w./-]{0,80}(mysql|mariadb|percona)[\w.-]{0,40}(:|\s|["']|$)/im,
|
|
54
|
+
'a compose service runs MySQL / MariaDB',
|
|
55
|
+
],
|
|
32
56
|
[manifests, dep('mysql2?|mariadb|@planetscale/database'), 'a MySQL driver in package.json'],
|
|
33
|
-
[
|
|
57
|
+
[
|
|
58
|
+
python,
|
|
59
|
+
dep('pymysql|mysqlclient|mysql-connector-python|aiomysql|asyncmy|mariadb'),
|
|
60
|
+
'a MySQL driver in the Python dependencies',
|
|
61
|
+
],
|
|
34
62
|
[/^gemfile$/i, /gem\s+["'](mysql2|trilogy)["']/, 'a MySQL gem'],
|
|
35
63
|
[/^go\.mod$/i, /github\.com\/go-sql-driver\/mysql/, 'the MySQL driver in go.mod'],
|
|
36
|
-
[
|
|
64
|
+
[
|
|
65
|
+
/^cargo\.toml$/i,
|
|
66
|
+
/mysql_async|mysql\s*=|sqlx[^\n]{0,200}mysql|diesel[^\n]{0,200}mysql/i,
|
|
67
|
+
'a MySQL driver in Cargo.toml',
|
|
68
|
+
],
|
|
37
69
|
[dotnet, /MySqlConnector|MySql\.Data|Pomelo\.EntityFrameworkCore\.MySql/i, 'a MySQL driver in a .NET project'],
|
|
38
70
|
[jvm, /mysql-connector|mariadb-java-client|com\.mysql/i, 'the MySQL JDBC driver'],
|
|
39
71
|
[/^composer\.json$/i, /ext-mysqli|ext-pdo_mysql/i, 'the PHP MySQL extension'],
|
|
40
72
|
[/^mix\.exs$/i, /:myxql/, 'MyXQL'],
|
|
41
73
|
[/^schema\.prisma$/i, /provider\s*=\s*"mysql"/, 'Prisma uses MySQL'],
|
|
42
|
-
[
|
|
74
|
+
[
|
|
75
|
+
config,
|
|
76
|
+
/(mysql|mariadb)(\+\w+)?:\/\/|DB_CONNECTION\s*=\s*(mysql|mariadb)|adapter:\s*(mysql2|trilogy)|jdbc:(mysql|mariadb):/i,
|
|
77
|
+
'a MySQL connection string',
|
|
78
|
+
],
|
|
43
79
|
],
|
|
44
80
|
sqlserver: [
|
|
45
|
-
[
|
|
81
|
+
[
|
|
82
|
+
compose,
|
|
83
|
+
/image:\s*["']?(mcr\.microsoft\.com\/(mssql|azure-sql-edge)|[\w./-]{0,80}mssql)[\w./:-]{0,80}/im,
|
|
84
|
+
'a compose service runs SQL Server',
|
|
85
|
+
],
|
|
46
86
|
[manifests, dep('mssql|tedious|msnodesqlv8'), 'a SQL Server driver in package.json'],
|
|
47
87
|
[python, dep('pyodbc|pymssql|aioodbc|mssql-django'), 'a SQL Server driver in the Python dependencies'],
|
|
48
88
|
[/^go\.mod$/i, /(denisenkom|microsoft)\/go-mssqldb/, 'the SQL Server driver in go.mod'],
|
|
49
89
|
[/^cargo\.toml$/i, /tiberius|sqlx[^\n]{0,200}mssql/i, 'a SQL Server driver in Cargo.toml'],
|
|
50
|
-
[
|
|
90
|
+
[
|
|
91
|
+
dotnet,
|
|
92
|
+
/Microsoft\.Data\.SqlClient|System\.Data\.SqlClient|EntityFrameworkCore\.SqlServer|Dapper\.SqlBuilder|LocalDb/i,
|
|
93
|
+
'SQL Server in a .NET project',
|
|
94
|
+
],
|
|
51
95
|
[jvm, /mssql-jdbc|com\.microsoft\.sqlserver/i, 'the SQL Server JDBC driver'],
|
|
52
96
|
[/^composer\.json$/i, /ext-sqlsrv|ext-pdo_sqlsrv/i, 'the PHP SQL Server extension'],
|
|
53
97
|
[/^schema\.prisma$/i, /provider\s*=\s*"sqlserver"/, 'Prisma uses SQL Server'],
|
|
54
|
-
[
|
|
98
|
+
[
|
|
99
|
+
config,
|
|
100
|
+
/\(localdb\)|mssql(\+\w+)?:\/\/|sqlserver:\/\/|DB_CONNECTION\s*=\s*sqlsrv|jdbc:sqlserver:|Initial Catalog=|Trusted_Connection=|TrustServerCertificate=|Integrated Security=/i,
|
|
101
|
+
'a SQL Server connection string',
|
|
102
|
+
],
|
|
55
103
|
],
|
|
56
104
|
mongodb: [
|
|
57
105
|
[compose, /image:\s*["']?[\w./-]{0,80}mongo(db)?[\w.-]{0,40}(:|\s|["']|$)/im, 'a compose service runs MongoDB'],
|
|
@@ -66,25 +114,57 @@ const RULES = {
|
|
|
66
114
|
[config, /mongodb(\+srv)?:\/\//i, 'a MongoDB connection string'],
|
|
67
115
|
],
|
|
68
116
|
dynamodb: [
|
|
69
|
-
[
|
|
70
|
-
|
|
71
|
-
|
|
117
|
+
[
|
|
118
|
+
compose,
|
|
119
|
+
/image:\s*["']?(amazon\/dynamodb-local|[\w./-]{0,80}dynamodb-local|instructure\/dynamo-local-admin)[\w.:-]{0,40}/im,
|
|
120
|
+
'a compose service runs DynamoDB Local',
|
|
121
|
+
],
|
|
122
|
+
[
|
|
123
|
+
manifests,
|
|
124
|
+
dep('@aws-sdk/client-dynamodb|@aws-sdk/lib-dynamodb|dynamoose|electrodb|dynamodb-toolbox|@typedorm/core|dynamodb-onetable'),
|
|
125
|
+
'a DynamoDB client in package.json',
|
|
126
|
+
],
|
|
127
|
+
[
|
|
128
|
+
python,
|
|
129
|
+
dep('pynamodb|boto3-stubs\\[[^\\]]{0,80}dynamodb[^\\]]{0,80}\\]|types-aiobotocore-dynamodb|mypy-boto3-dynamodb|dynamorm'),
|
|
130
|
+
'a DynamoDB client in the Python dependencies',
|
|
131
|
+
],
|
|
72
132
|
[/^gemfile$/i, /gem\s+["'](aws-sdk-dynamodb|dynamoid|aws-record)["']/, 'a DynamoDB gem'],
|
|
73
133
|
[/^go\.mod$/i, /aws-sdk-go-v2\/service\/dynamodb|github\.com\/guregu\/dynamo/, 'a DynamoDB client in go.mod'],
|
|
74
134
|
[/^cargo\.toml$/i, /^\s*(aws-sdk-dynamodb|serde_dynamo|modyne)\s*=/m, 'a DynamoDB crate'],
|
|
75
135
|
[dotnet, /AWSSDK\.DynamoDBv2/i, 'AWSSDK.DynamoDBv2 in a .NET project'],
|
|
76
|
-
[
|
|
136
|
+
[
|
|
137
|
+
jvm,
|
|
138
|
+
/software\.amazon\.awssdk[^\n]{0,200}dynamodb|aws-java-sdk-dynamodb|dynamodb-enhanced/i,
|
|
139
|
+
'the DynamoDB Java SDK',
|
|
140
|
+
],
|
|
77
141
|
[infra, /AWS::DynamoDB::(Global)?Table|aws_dynamodb_table/, 'a DynamoDB table in the infrastructure code'],
|
|
78
|
-
[
|
|
142
|
+
[
|
|
143
|
+
config,
|
|
144
|
+
/AWS_ENDPOINT_URL_DYNAMODB|DYNAMO(DB)?_(ENDPOINT|URL|TABLE)|dynamodb\.[\w-]+\.amazonaws\.com|localhost:8000/i,
|
|
145
|
+
'DynamoDB settings in the config',
|
|
146
|
+
],
|
|
79
147
|
],
|
|
80
148
|
redis: [
|
|
81
|
-
[
|
|
82
|
-
|
|
149
|
+
[
|
|
150
|
+
compose,
|
|
151
|
+
/image:\s*["']?[\w./-]{0,80}(redis|valkey|keydb|dragonfly)[\w.-]{0,40}(:|\s|["']|$)/im,
|
|
152
|
+
'a compose service runs Redis',
|
|
153
|
+
],
|
|
154
|
+
[
|
|
155
|
+
manifests,
|
|
156
|
+
dep('redis|ioredis|bullmq|bull|@upstash/redis|connect-redis|rate-limit-redis'),
|
|
157
|
+
'a Redis client in package.json',
|
|
158
|
+
],
|
|
83
159
|
[python, dep('redis|aioredis|rq|celery\\[redis\\]|django-redis|arq'), 'a Redis client in the Python dependencies'],
|
|
84
160
|
[/^gemfile$/i, /gem\s+["'](redis|sidekiq|resque)["']/, 'a Redis gem'],
|
|
85
161
|
[/^go\.mod$/i, /github\.com\/(redis\/go-redis|go-redis\/redis|gomodule\/redigo)/, 'a Redis client in go.mod'],
|
|
86
162
|
[/^cargo\.toml$/i, /^\s*(redis|deadpool-redis|bb8-redis)\s*=/m, 'a Redis crate'],
|
|
87
|
-
[
|
|
163
|
+
[
|
|
164
|
+
dotnet,
|
|
165
|
+
/StackExchange\.Redis|Microsoft\.Extensions\.Caching\.StackExchangeRedis/i,
|
|
166
|
+
'StackExchange.Redis in a .NET project',
|
|
167
|
+
],
|
|
88
168
|
[jvm, /jedis|lettuce-core|spring-boot-starter-data-redis|redisson/i, 'a Redis Java client'],
|
|
89
169
|
[/^composer\.json$/i, /predis\/predis|ext-redis/i, 'a PHP Redis client'],
|
|
90
170
|
[config, /rediss?:\/\/|REDIS_(URL|HOST)\s*=|CACHE_DRIVER\s*=\s*redis/i, 'a Redis connection string'],
|
|
@@ -111,12 +191,20 @@ const SQL = ['postgres', 'mysql', 'sqlserver'];
|
|
|
111
191
|
/** Longest line and file looked at: bounded work per file whatever a (sandbox-written) file contains. */
|
|
112
192
|
const MAX_LINE = 1000;
|
|
113
193
|
const MAX_TEXT = 256 * 1024;
|
|
114
|
-
const bounded = (text) => text
|
|
194
|
+
const bounded = (text) => text
|
|
195
|
+
.slice(0, MAX_TEXT)
|
|
196
|
+
.split('\n')
|
|
197
|
+
.filter((line) => line.length <= MAX_LINE)
|
|
198
|
+
.join('\n');
|
|
115
199
|
export const detectDatabases = (input, hostHas = []) => {
|
|
116
200
|
const files = input.map((f) => ({ path: f.path, text: bounded(f.text) }));
|
|
117
201
|
const found = new Map();
|
|
118
|
-
const add = (db, reason) => {
|
|
119
|
-
list
|
|
202
|
+
const add = (db, reason) => {
|
|
203
|
+
const list = found.get(db) ?? [];
|
|
204
|
+
if (!list.includes(reason))
|
|
205
|
+
list.push(reason);
|
|
206
|
+
found.set(db, list);
|
|
207
|
+
};
|
|
120
208
|
for (const file of files) {
|
|
121
209
|
const name = fileName(file.path);
|
|
122
210
|
for (const db of DATABASES)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ProjectFile } from './
|
|
1
|
+
import type { ProjectFile } from './databases.js';
|
|
2
2
|
/** Scripts looked at: the workspace root and one folder down, at most this many, only their start. */
|
|
3
3
|
export declare const PWSH_MAX_SCRIPTS = 40;
|
|
4
4
|
export declare const PWSH_MAX_BYTES: number;
|
|
@@ -31,7 +31,10 @@ const pwshLine = (raw) => {
|
|
|
31
31
|
continue;
|
|
32
32
|
if (line[end] !== ' ' && line[end] !== '\t')
|
|
33
33
|
continue;
|
|
34
|
-
const next = line
|
|
34
|
+
const next = line
|
|
35
|
+
.slice(end, end + 80)
|
|
36
|
+
.trimStart()
|
|
37
|
+
.split(/\s/, 1)[0] ?? '';
|
|
35
38
|
if (next.startsWith('-') || next.includes('.ps1'))
|
|
36
39
|
return 'pwsh usage';
|
|
37
40
|
}
|
|
@@ -73,27 +76,38 @@ const readStart = (file) => {
|
|
|
73
76
|
};
|
|
74
77
|
/** *.ps1 / *.psm1 / *.psd1 in the workspace root and its direct sub-folders (root first), capped. Links are skipped. */
|
|
75
78
|
export const readPwshScripts = (root) => {
|
|
76
|
-
const list = (dir) => {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
79
|
+
const list = (dir) => {
|
|
80
|
+
try {
|
|
81
|
+
return fs.readdirSync(dir, { withFileTypes: true }).slice(0, 2000);
|
|
82
|
+
}
|
|
83
|
+
catch {
|
|
84
|
+
return [];
|
|
85
|
+
}
|
|
86
|
+
};
|
|
82
87
|
const isScript = (d) => d.isFile() && /\.ps[dm]?1$/i.test(d.name);
|
|
83
88
|
const top = list(root);
|
|
84
89
|
const names = [
|
|
85
90
|
...top.filter(isScript).map((d) => d.name),
|
|
86
|
-
...top
|
|
87
|
-
.
|
|
91
|
+
...top
|
|
92
|
+
.filter((d) => d.isDirectory() && !d.name.startsWith('.') && !SKIP.test(d.name))
|
|
93
|
+
.slice(0, 200)
|
|
94
|
+
.flatMap((d) => list(path.join(root, d.name))
|
|
95
|
+
.filter(isScript)
|
|
96
|
+
.map((f) => d.name + '/' + f.name)),
|
|
88
97
|
].slice(0, PWSH_MAX_SCRIPTS);
|
|
89
|
-
return names.flatMap((name) => {
|
|
98
|
+
return names.flatMap((name) => {
|
|
99
|
+
const text = readStart(path.join(root, name));
|
|
100
|
+
return text === null ? [] : [{ path: name, text }];
|
|
101
|
+
});
|
|
90
102
|
};
|
|
91
103
|
/** PowerShell 7 installed on this PC (the MSI's folder, or a pwsh.exe on PATH other than a Store alias). */
|
|
92
104
|
export const pcHasPwsh = (env = process.env, exists = fs.existsSync) => {
|
|
93
105
|
const programFiles = env.ProgramFiles ?? 'C:\\Program Files';
|
|
94
106
|
if (exists(path.win32.join(programFiles, 'PowerShell', '7', 'pwsh.exe')))
|
|
95
107
|
return true;
|
|
96
|
-
return (env.PATH ?? env.Path ?? '')
|
|
108
|
+
return (env.PATH ?? env.Path ?? '')
|
|
109
|
+
.split(';')
|
|
110
|
+
.some((d) => d && !/WindowsApps/i.test(d) && exists(path.win32.join(d, 'pwsh.exe')));
|
|
97
111
|
};
|
|
98
112
|
/**
|
|
99
113
|
* The decision for toolchains.pwsh.enabled: true/false are kept; "auto" is on when a script needs PowerShell 7, or, in
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Toolchains } from '
|
|
1
|
+
import type { Toolchains } from '../types.js';
|
|
2
2
|
/** Files that show a project uses a language (looked for in the workspace and one folder down). */
|
|
3
3
|
export declare const MARKERS: {
|
|
4
4
|
readonly python: readonly ["pyproject.toml", "requirements.txt", "setup.py", "setup.cfg", "Pipfile", "uv.lock", "poetry.lock", ".python-version", "*.py", "*.ipynb"];
|
|
@@ -1,13 +1,47 @@
|
|
|
1
|
-
import { projectUses } from '
|
|
1
|
+
import { projectUses } from './versions.js';
|
|
2
2
|
/** Files that show a project uses a language (looked for in the workspace and one folder down). */
|
|
3
3
|
export const MARKERS = {
|
|
4
|
-
python: [
|
|
4
|
+
python: [
|
|
5
|
+
'pyproject.toml',
|
|
6
|
+
'requirements.txt',
|
|
7
|
+
'setup.py',
|
|
8
|
+
'setup.cfg',
|
|
9
|
+
'Pipfile',
|
|
10
|
+
'uv.lock',
|
|
11
|
+
'poetry.lock',
|
|
12
|
+
'.python-version',
|
|
13
|
+
'*.py',
|
|
14
|
+
'*.ipynb',
|
|
15
|
+
],
|
|
5
16
|
rust: ['Cargo.toml', 'rust-toolchain', 'rust-toolchain.toml'],
|
|
6
17
|
msvc: ['*.vcxproj', 'CMakePresets.json', 'CMakeUserPresets.json'],
|
|
7
|
-
cpp: [
|
|
18
|
+
cpp: [
|
|
19
|
+
'CMakeLists.txt',
|
|
20
|
+
'Makefile',
|
|
21
|
+
'meson.build',
|
|
22
|
+
'premake5.lua',
|
|
23
|
+
'Cargo.toml',
|
|
24
|
+
'*.vcxproj',
|
|
25
|
+
'*.c',
|
|
26
|
+
'*.cpp',
|
|
27
|
+
'*.cc',
|
|
28
|
+
'*.h',
|
|
29
|
+
'*.hpp',
|
|
30
|
+
],
|
|
8
31
|
dotnet: ['*.sln', '*.slnx', '*.csproj', '*.fsproj', '*.vbproj', 'global.json', '*.cs'],
|
|
9
32
|
go: ['go.mod', 'go.work', '*.go'],
|
|
10
|
-
java: [
|
|
33
|
+
java: [
|
|
34
|
+
'pom.xml',
|
|
35
|
+
'build.gradle',
|
|
36
|
+
'build.gradle.kts',
|
|
37
|
+
'settings.gradle',
|
|
38
|
+
'settings.gradle.kts',
|
|
39
|
+
'mvnw',
|
|
40
|
+
'gradlew',
|
|
41
|
+
'.java-version',
|
|
42
|
+
'.sdkmanrc',
|
|
43
|
+
'*.java',
|
|
44
|
+
],
|
|
11
45
|
ruby: ['Gemfile', '*.gemspec', '.ruby-version', '*.rb'],
|
|
12
46
|
php: ['composer.json', 'artisan', '.php-version', '*.php'],
|
|
13
47
|
deno: ['deno.json', 'deno.jsonc', 'deno.lock'],
|
|
@@ -44,7 +78,10 @@ export const decideToolchains = (settings, entries, pcHas, hints = {}) => {
|
|
|
44
78
|
result.msvc = { on: true, reason: 'Rust on this PC builds with MSVC' };
|
|
45
79
|
// MSVC is a 1-2 GB licensed download: "auto" only installs it once its licence is accepted.
|
|
46
80
|
if (settings.msvc.enabled === 'auto' && result.msvc.on && !settings.msvc.acceptLicense)
|
|
47
|
-
result.msvc = {
|
|
81
|
+
result.msvc = {
|
|
82
|
+
on: false,
|
|
83
|
+
reason: 'would be used (' + result.msvc.reason + '); set toolchains.msvc.acceptLicense to install it',
|
|
84
|
+
};
|
|
48
85
|
if (result.rust.on && !result.msvc.on && !result.cpp.on && settings.cpp.enabled !== false)
|
|
49
86
|
result.cpp = { on: true, reason: 'the linker for Rust' };
|
|
50
87
|
return result;
|