@miosa/cli 1.3.4 → 2.0.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 +20 -835
- package/bin/miosa.js +75 -0
- package/lib/archive.js +26 -0
- package/lib/checksums.js +29 -0
- package/lib/platforms.js +31 -0
- package/lib/resolve.js +47 -0
- package/package.json +25 -41
- package/scripts/postinstall.js +68 -0
- package/CHANGELOG.md +0 -110
- package/dist/action-authority.d.ts +0 -106
- package/dist/action-authority.d.ts.map +0 -1
- package/dist/action-authority.js +0 -116
- package/dist/action-authority.js.map +0 -1
- package/dist/app-advisor.d.ts +0 -80
- package/dist/app-advisor.d.ts.map +0 -1
- package/dist/app-advisor.js +0 -486
- package/dist/app-advisor.js.map +0 -1
- package/dist/app-contract.d.ts +0 -92
- package/dist/app-contract.d.ts.map +0 -1
- package/dist/app-contract.js +0 -218
- package/dist/app-contract.js.map +0 -1
- package/dist/app-document.d.ts +0 -23
- package/dist/app-document.d.ts.map +0 -1
- package/dist/app-document.js +0 -180
- package/dist/app-document.js.map +0 -1
- package/dist/app-manifest.d.ts +0 -140
- package/dist/app-manifest.d.ts.map +0 -1
- package/dist/app-manifest.js +0 -377
- package/dist/app-manifest.js.map +0 -1
- package/dist/app-operation.d.ts +0 -23
- package/dist/app-operation.d.ts.map +0 -1
- package/dist/app-operation.js +0 -49
- package/dist/app-operation.js.map +0 -1
- package/dist/app-release.d.ts +0 -132
- package/dist/app-release.d.ts.map +0 -1
- package/dist/app-release.js +0 -294
- package/dist/app-release.js.map +0 -1
- package/dist/bin/miosa.d.ts +0 -3
- package/dist/bin/miosa.d.ts.map +0 -1
- package/dist/bin/miosa.js +0 -288
- package/dist/bin/miosa.js.map +0 -1
- package/dist/cli-env.d.ts +0 -12
- package/dist/cli-env.d.ts.map +0 -1
- package/dist/cli-env.js +0 -34
- package/dist/cli-env.js.map +0 -1
- package/dist/client.d.ts +0 -155
- package/dist/client.d.ts.map +0 -1
- package/dist/client.js +0 -865
- package/dist/client.js.map +0 -1
- package/dist/commands/actions.d.ts +0 -3
- package/dist/commands/actions.d.ts.map +0 -1
- package/dist/commands/actions.js +0 -222
- package/dist/commands/actions.js.map +0 -1
- package/dist/commands/agent-runtime-profiles.d.ts +0 -3
- package/dist/commands/agent-runtime-profiles.d.ts.map +0 -1
- package/dist/commands/agent-runtime-profiles.js +0 -198
- package/dist/commands/agent-runtime-profiles.js.map +0 -1
- package/dist/commands/agent.d.ts +0 -18
- package/dist/commands/agent.d.ts.map +0 -1
- package/dist/commands/agent.js +0 -737
- package/dist/commands/agent.js.map +0 -1
- package/dist/commands/alerts.d.ts +0 -3
- package/dist/commands/alerts.d.ts.map +0 -1
- package/dist/commands/alerts.js +0 -41
- package/dist/commands/alerts.js.map +0 -1
- package/dist/commands/api-keys.d.ts +0 -3
- package/dist/commands/api-keys.d.ts.map +0 -1
- package/dist/commands/api-keys.js +0 -160
- package/dist/commands/api-keys.js.map +0 -1
- package/dist/commands/api-resource.d.ts +0 -20
- package/dist/commands/api-resource.d.ts.map +0 -1
- package/dist/commands/api-resource.js +0 -120
- package/dist/commands/api-resource.js.map +0 -1
- package/dist/commands/app.d.ts +0 -38
- package/dist/commands/app.d.ts.map +0 -1
- package/dist/commands/app.js +0 -1182
- package/dist/commands/app.js.map +0 -1
- package/dist/commands/apps.d.ts +0 -3
- package/dist/commands/apps.d.ts.map +0 -1
- package/dist/commands/apps.js +0 -218
- package/dist/commands/apps.js.map +0 -1
- package/dist/commands/audit.d.ts +0 -3
- package/dist/commands/audit.d.ts.map +0 -1
- package/dist/commands/audit.js +0 -25
- package/dist/commands/audit.js.map +0 -1
- package/dist/commands/auth.d.ts +0 -3
- package/dist/commands/auth.d.ts.map +0 -1
- package/dist/commands/auth.js +0 -282
- package/dist/commands/auth.js.map +0 -1
- package/dist/commands/backups.d.ts +0 -3
- package/dist/commands/backups.d.ts.map +0 -1
- package/dist/commands/backups.js +0 -23
- package/dist/commands/backups.js.map +0 -1
- package/dist/commands/billing.d.ts +0 -3
- package/dist/commands/billing.d.ts.map +0 -1
- package/dist/commands/billing.js +0 -208
- package/dist/commands/billing.js.map +0 -1
- package/dist/commands/builds.d.ts +0 -3
- package/dist/commands/builds.d.ts.map +0 -1
- package/dist/commands/builds.js +0 -198
- package/dist/commands/builds.js.map +0 -1
- package/dist/commands/capabilities.d.ts +0 -3
- package/dist/commands/capabilities.d.ts.map +0 -1
- package/dist/commands/capabilities.js +0 -1002
- package/dist/commands/capabilities.js.map +0 -1
- package/dist/commands/checkpoints.d.ts +0 -3
- package/dist/commands/checkpoints.d.ts.map +0 -1
- package/dist/commands/checkpoints.js +0 -193
- package/dist/commands/checkpoints.js.map +0 -1
- package/dist/commands/cleanup.d.ts +0 -3
- package/dist/commands/cleanup.d.ts.map +0 -1
- package/dist/commands/cleanup.js +0 -65
- package/dist/commands/cleanup.js.map +0 -1
- package/dist/commands/cloud.d.ts +0 -3
- package/dist/commands/cloud.d.ts.map +0 -1
- package/dist/commands/cloud.js +0 -192
- package/dist/commands/cloud.js.map +0 -1
- package/dist/commands/command-overview.d.ts +0 -13
- package/dist/commands/command-overview.d.ts.map +0 -1
- package/dist/commands/command-overview.js +0 -50
- package/dist/commands/command-overview.js.map +0 -1
- package/dist/commands/completion.d.ts +0 -3
- package/dist/commands/completion.d.ts.map +0 -1
- package/dist/commands/completion.js +0 -183
- package/dist/commands/completion.js.map +0 -1
- package/dist/commands/computers.d.ts +0 -3
- package/dist/commands/computers.d.ts.map +0 -1
- package/dist/commands/computers.js +0 -706
- package/dist/commands/computers.js.map +0 -1
- package/dist/commands/config.d.ts +0 -3
- package/dist/commands/config.d.ts.map +0 -1
- package/dist/commands/config.js +0 -114
- package/dist/commands/config.js.map +0 -1
- package/dist/commands/connect.d.ts +0 -6
- package/dist/commands/connect.d.ts.map +0 -1
- package/dist/commands/connect.js +0 -127
- package/dist/commands/connect.js.map +0 -1
- package/dist/commands/connectors.d.ts +0 -3
- package/dist/commands/connectors.d.ts.map +0 -1
- package/dist/commands/connectors.js +0 -172
- package/dist/commands/connectors.js.map +0 -1
- package/dist/commands/containers.d.ts +0 -3
- package/dist/commands/containers.d.ts.map +0 -1
- package/dist/commands/containers.js +0 -20
- package/dist/commands/containers.js.map +0 -1
- package/dist/commands/context.d.ts +0 -3
- package/dist/commands/context.d.ts.map +0 -1
- package/dist/commands/context.js +0 -233
- package/dist/commands/context.js.map +0 -1
- package/dist/commands/cp.d.ts +0 -3
- package/dist/commands/cp.d.ts.map +0 -1
- package/dist/commands/cp.js +0 -319
- package/dist/commands/cp.js.map +0 -1
- package/dist/commands/cron.d.ts +0 -3
- package/dist/commands/cron.d.ts.map +0 -1
- package/dist/commands/cron.js +0 -65
- package/dist/commands/cron.js.map +0 -1
- package/dist/commands/dashboard.d.ts +0 -13
- package/dist/commands/dashboard.d.ts.map +0 -1
- package/dist/commands/dashboard.js +0 -54
- package/dist/commands/dashboard.js.map +0 -1
- package/dist/commands/databases.d.ts +0 -3
- package/dist/commands/databases.d.ts.map +0 -1
- package/dist/commands/databases.js +0 -714
- package/dist/commands/databases.js.map +0 -1
- package/dist/commands/db.d.ts +0 -3
- package/dist/commands/db.d.ts.map +0 -1
- package/dist/commands/db.js +0 -385
- package/dist/commands/db.js.map +0 -1
- package/dist/commands/deploy.d.ts +0 -3
- package/dist/commands/deploy.d.ts.map +0 -1
- package/dist/commands/deploy.js +0 -1234
- package/dist/commands/deploy.js.map +0 -1
- package/dist/commands/desktop.d.ts +0 -3
- package/dist/commands/desktop.d.ts.map +0 -1
- package/dist/commands/desktop.js +0 -277
- package/dist/commands/desktop.js.map +0 -1
- package/dist/commands/dev.d.ts +0 -3
- package/dist/commands/dev.d.ts.map +0 -1
- package/dist/commands/dev.js +0 -245
- package/dist/commands/dev.js.map +0 -1
- package/dist/commands/devices.d.ts +0 -3
- package/dist/commands/devices.d.ts.map +0 -1
- package/dist/commands/devices.js +0 -279
- package/dist/commands/devices.js.map +0 -1
- package/dist/commands/docker-deploy.d.ts +0 -3
- package/dist/commands/docker-deploy.d.ts.map +0 -1
- package/dist/commands/docker-deploy.js +0 -659
- package/dist/commands/docker-deploy.js.map +0 -1
- package/dist/commands/doctor.d.ts +0 -69
- package/dist/commands/doctor.d.ts.map +0 -1
- package/dist/commands/doctor.js +0 -596
- package/dist/commands/doctor.js.map +0 -1
- package/dist/commands/domains.d.ts +0 -3
- package/dist/commands/domains.d.ts.map +0 -1
- package/dist/commands/domains.js +0 -307
- package/dist/commands/domains.js.map +0 -1
- package/dist/commands/enterprise-util.d.ts +0 -39
- package/dist/commands/enterprise-util.d.ts.map +0 -1
- package/dist/commands/enterprise-util.js +0 -217
- package/dist/commands/enterprise-util.js.map +0 -1
- package/dist/commands/env-input.d.ts +0 -26
- package/dist/commands/env-input.d.ts.map +0 -1
- package/dist/commands/env-input.js +0 -68
- package/dist/commands/env-input.js.map +0 -1
- package/dist/commands/env.d.ts +0 -3
- package/dist/commands/env.d.ts.map +0 -1
- package/dist/commands/env.js +0 -189
- package/dist/commands/env.js.map +0 -1
- package/dist/commands/exec.d.ts +0 -3
- package/dist/commands/exec.d.ts.map +0 -1
- package/dist/commands/exec.js +0 -110
- package/dist/commands/exec.js.map +0 -1
- package/dist/commands/forge.d.ts +0 -3
- package/dist/commands/forge.d.ts.map +0 -1
- package/dist/commands/forge.js +0 -254
- package/dist/commands/forge.js.map +0 -1
- package/dist/commands/functions.d.ts +0 -3
- package/dist/commands/functions.d.ts.map +0 -1
- package/dist/commands/functions.js +0 -47
- package/dist/commands/functions.js.map +0 -1
- package/dist/commands/gha-runners.d.ts +0 -3
- package/dist/commands/gha-runners.d.ts.map +0 -1
- package/dist/commands/gha-runners.js +0 -33
- package/dist/commands/gha-runners.js.map +0 -1
- package/dist/commands/groups.d.ts +0 -3
- package/dist/commands/groups.d.ts.map +0 -1
- package/dist/commands/groups.js +0 -38
- package/dist/commands/groups.js.map +0 -1
- package/dist/commands/host.d.ts +0 -3
- package/dist/commands/host.d.ts.map +0 -1
- package/dist/commands/host.js +0 -74
- package/dist/commands/host.js.map +0 -1
- package/dist/commands/hosts.d.ts +0 -7
- package/dist/commands/hosts.d.ts.map +0 -1
- package/dist/commands/hosts.js +0 -91
- package/dist/commands/hosts.js.map +0 -1
- package/dist/commands/link.d.ts +0 -8
- package/dist/commands/link.d.ts.map +0 -1
- package/dist/commands/link.js +0 -124
- package/dist/commands/link.js.map +0 -1
- package/dist/commands/login.d.ts +0 -10
- package/dist/commands/login.d.ts.map +0 -1
- package/dist/commands/login.js +0 -263
- package/dist/commands/login.js.map +0 -1
- package/dist/commands/logout.d.ts +0 -3
- package/dist/commands/logout.d.ts.map +0 -1
- package/dist/commands/logout.js +0 -43
- package/dist/commands/logout.js.map +0 -1
- package/dist/commands/logs.d.ts +0 -3
- package/dist/commands/logs.d.ts.map +0 -1
- package/dist/commands/logs.js +0 -401
- package/dist/commands/logs.js.map +0 -1
- package/dist/commands/ls.d.ts +0 -3
- package/dist/commands/ls.d.ts.map +0 -1
- package/dist/commands/ls.js +0 -121
- package/dist/commands/ls.js.map +0 -1
- package/dist/commands/mcp.d.ts +0 -46
- package/dist/commands/mcp.d.ts.map +0 -1
- package/dist/commands/mcp.js +0 -3413
- package/dist/commands/mcp.js.map +0 -1
- package/dist/commands/menu.d.ts +0 -29
- package/dist/commands/menu.d.ts.map +0 -1
- package/dist/commands/menu.js +0 -147
- package/dist/commands/menu.js.map +0 -1
- package/dist/commands/meshes.d.ts +0 -3
- package/dist/commands/meshes.d.ts.map +0 -1
- package/dist/commands/meshes.js +0 -27
- package/dist/commands/meshes.js.map +0 -1
- package/dist/commands/network-policy.d.ts +0 -3
- package/dist/commands/network-policy.d.ts.map +0 -1
- package/dist/commands/network-policy.js +0 -155
- package/dist/commands/network-policy.js.map +0 -1
- package/dist/commands/new.d.ts +0 -3
- package/dist/commands/new.d.ts.map +0 -1
- package/dist/commands/new.js +0 -296
- package/dist/commands/new.js.map +0 -1
- package/dist/commands/opencomputers.d.ts +0 -10
- package/dist/commands/opencomputers.d.ts.map +0 -1
- package/dist/commands/opencomputers.js +0 -25
- package/dist/commands/opencomputers.js.map +0 -1
- package/dist/commands/operating-contract.d.ts +0 -3
- package/dist/commands/operating-contract.d.ts.map +0 -1
- package/dist/commands/operating-contract.js +0 -651
- package/dist/commands/operating-contract.js.map +0 -1
- package/dist/commands/project.d.ts +0 -4
- package/dist/commands/project.d.ts.map +0 -1
- package/dist/commands/project.js +0 -25
- package/dist/commands/project.js.map +0 -1
- package/dist/commands/pull.d.ts +0 -14
- package/dist/commands/pull.d.ts.map +0 -1
- package/dist/commands/pull.js +0 -156
- package/dist/commands/pull.js.map +0 -1
- package/dist/commands/regions.d.ts +0 -3
- package/dist/commands/regions.d.ts.map +0 -1
- package/dist/commands/regions.js +0 -103
- package/dist/commands/regions.js.map +0 -1
- package/dist/commands/releases.d.ts +0 -3
- package/dist/commands/releases.d.ts.map +0 -1
- package/dist/commands/releases.js +0 -365
- package/dist/commands/releases.js.map +0 -1
- package/dist/commands/rm.d.ts +0 -3
- package/dist/commands/rm.d.ts.map +0 -1
- package/dist/commands/rm.js +0 -42
- package/dist/commands/rm.js.map +0 -1
- package/dist/commands/rollback.d.ts +0 -3
- package/dist/commands/rollback.d.ts.map +0 -1
- package/dist/commands/rollback.js +0 -62
- package/dist/commands/rollback.js.map +0 -1
- package/dist/commands/run-groups.d.ts +0 -3
- package/dist/commands/run-groups.d.ts.map +0 -1
- package/dist/commands/run-groups.js +0 -364
- package/dist/commands/run-groups.js.map +0 -1
- package/dist/commands/run.d.ts +0 -3
- package/dist/commands/run.d.ts.map +0 -1
- package/dist/commands/run.js +0 -130
- package/dist/commands/run.js.map +0 -1
- package/dist/commands/runs.d.ts +0 -3
- package/dist/commands/runs.d.ts.map +0 -1
- package/dist/commands/runs.js +0 -365
- package/dist/commands/runs.js.map +0 -1
- package/dist/commands/runtime-env.d.ts +0 -3
- package/dist/commands/runtime-env.d.ts.map +0 -1
- package/dist/commands/runtime-env.js +0 -114
- package/dist/commands/runtime-env.js.map +0 -1
- package/dist/commands/sandbox-delete-guard.d.ts +0 -4
- package/dist/commands/sandbox-delete-guard.d.ts.map +0 -1
- package/dist/commands/sandbox-delete-guard.js +0 -32
- package/dist/commands/sandbox-delete-guard.js.map +0 -1
- package/dist/commands/sandbox-dev.d.ts +0 -20
- package/dist/commands/sandbox-dev.d.ts.map +0 -1
- package/dist/commands/sandbox-dev.js +0 -583
- package/dist/commands/sandbox-dev.js.map +0 -1
- package/dist/commands/sandbox.d.ts +0 -36
- package/dist/commands/sandbox.d.ts.map +0 -1
- package/dist/commands/sandbox.js +0 -3796
- package/dist/commands/sandbox.js.map +0 -1
- package/dist/commands/scale.d.ts +0 -3
- package/dist/commands/scale.d.ts.map +0 -1
- package/dist/commands/scale.js +0 -61
- package/dist/commands/scale.js.map +0 -1
- package/dist/commands/schedules.d.ts +0 -3
- package/dist/commands/schedules.d.ts.map +0 -1
- package/dist/commands/schedules.js +0 -37
- package/dist/commands/schedules.js.map +0 -1
- package/dist/commands/secrets.d.ts +0 -3
- package/dist/commands/secrets.d.ts.map +0 -1
- package/dist/commands/secrets.js +0 -200
- package/dist/commands/secrets.js.map +0 -1
- package/dist/commands/services.d.ts +0 -3
- package/dist/commands/services.d.ts.map +0 -1
- package/dist/commands/services.js +0 -70
- package/dist/commands/services.js.map +0 -1
- package/dist/commands/shell.d.ts +0 -16
- package/dist/commands/shell.d.ts.map +0 -1
- package/dist/commands/shell.js +0 -555
- package/dist/commands/shell.js.map +0 -1
- package/dist/commands/snapshot.d.ts +0 -10
- package/dist/commands/snapshot.d.ts.map +0 -1
- package/dist/commands/snapshot.js +0 -181
- package/dist/commands/snapshot.js.map +0 -1
- package/dist/commands/ssh.d.ts +0 -3
- package/dist/commands/ssh.d.ts.map +0 -1
- package/dist/commands/ssh.js +0 -93
- package/dist/commands/ssh.js.map +0 -1
- package/dist/commands/status.d.ts +0 -3
- package/dist/commands/status.d.ts.map +0 -1
- package/dist/commands/status.js +0 -302
- package/dist/commands/status.js.map +0 -1
- package/dist/commands/storage.d.ts +0 -3
- package/dist/commands/storage.d.ts.map +0 -1
- package/dist/commands/storage.js +0 -456
- package/dist/commands/storage.js.map +0 -1
- package/dist/commands/teams.d.ts +0 -3
- package/dist/commands/teams.d.ts.map +0 -1
- package/dist/commands/teams.js +0 -169
- package/dist/commands/teams.js.map +0 -1
- package/dist/commands/templates.d.ts +0 -3
- package/dist/commands/templates.d.ts.map +0 -1
- package/dist/commands/templates.js +0 -690
- package/dist/commands/templates.js.map +0 -1
- package/dist/commands/tenant.d.ts +0 -3
- package/dist/commands/tenant.d.ts.map +0 -1
- package/dist/commands/tenant.js +0 -95
- package/dist/commands/tenant.js.map +0 -1
- package/dist/commands/tunnel.d.ts +0 -3
- package/dist/commands/tunnel.d.ts.map +0 -1
- package/dist/commands/tunnel.js +0 -418
- package/dist/commands/tunnel.js.map +0 -1
- package/dist/commands/up.d.ts +0 -14
- package/dist/commands/up.d.ts.map +0 -1
- package/dist/commands/up.js +0 -720
- package/dist/commands/up.js.map +0 -1
- package/dist/commands/update.d.ts +0 -3
- package/dist/commands/update.d.ts.map +0 -1
- package/dist/commands/update.js +0 -166
- package/dist/commands/update.js.map +0 -1
- package/dist/commands/util.d.ts +0 -25
- package/dist/commands/util.d.ts.map +0 -1
- package/dist/commands/util.js +0 -199
- package/dist/commands/util.js.map +0 -1
- package/dist/commands/volumes.d.ts +0 -3
- package/dist/commands/volumes.d.ts.map +0 -1
- package/dist/commands/volumes.js +0 -196
- package/dist/commands/volumes.js.map +0 -1
- package/dist/commands/watch.d.ts +0 -6
- package/dist/commands/watch.d.ts.map +0 -1
- package/dist/commands/watch.js +0 -414
- package/dist/commands/watch.js.map +0 -1
- package/dist/commands/webhooks.d.ts +0 -3
- package/dist/commands/webhooks.d.ts.map +0 -1
- package/dist/commands/webhooks.js +0 -23
- package/dist/commands/webhooks.js.map +0 -1
- package/dist/commands/whoami.d.ts +0 -3
- package/dist/commands/whoami.d.ts.map +0 -1
- package/dist/commands/whoami.js +0 -156
- package/dist/commands/whoami.js.map +0 -1
- package/dist/commands/workspaces.d.ts +0 -3
- package/dist/commands/workspaces.d.ts.map +0 -1
- package/dist/commands/workspaces.js +0 -147
- package/dist/commands/workspaces.js.map +0 -1
- package/dist/config.d.ts +0 -54
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js +0 -275
- package/dist/config.js.map +0 -1
- package/dist/errors.d.ts +0 -30
- package/dist/errors.d.ts.map +0 -1
- package/dist/errors.js +0 -92
- package/dist/errors.js.map +0 -1
- package/dist/framework-detector.d.ts +0 -22
- package/dist/framework-detector.d.ts.map +0 -1
- package/dist/framework-detector.js +0 -373
- package/dist/framework-detector.js.map +0 -1
- package/dist/generated/action-capabilities.d.ts +0 -826
- package/dist/generated/action-capabilities.d.ts.map +0 -1
- package/dist/generated/action-capabilities.js +0 -1035
- package/dist/generated/action-capabilities.js.map +0 -1
- package/dist/net-diagnosis.d.ts +0 -87
- package/dist/net-diagnosis.d.ts.map +0 -1
- package/dist/net-diagnosis.js +0 -408
- package/dist/net-diagnosis.js.map +0 -1
- package/dist/pty/raw-mode.d.ts +0 -7
- package/dist/pty/raw-mode.d.ts.map +0 -1
- package/dist/pty/raw-mode.js +0 -22
- package/dist/pty/raw-mode.js.map +0 -1
- package/dist/pty/ws-pty-client.d.ts +0 -13
- package/dist/pty/ws-pty-client.d.ts.map +0 -1
- package/dist/pty/ws-pty-client.js +0 -73
- package/dist/pty/ws-pty-client.js.map +0 -1
- package/dist/tui/dashboard.d.ts +0 -35
- package/dist/tui/dashboard.d.ts.map +0 -1
- package/dist/tui/dashboard.js +0 -191
- package/dist/tui/dashboard.js.map +0 -1
- package/dist/tui/logs.d.ts +0 -26
- package/dist/tui/logs.d.ts.map +0 -1
- package/dist/tui/logs.js +0 -276
- package/dist/tui/logs.js.map +0 -1
- package/dist/types.d.ts +0 -362
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -16
- package/dist/types.js.map +0 -1
- package/dist/ui/picker.d.ts +0 -41
- package/dist/ui/picker.d.ts.map +0 -1
- package/dist/ui/picker.js +0 -77
- package/dist/ui/picker.js.map +0 -1
- package/dist/ui/progress.d.ts +0 -10
- package/dist/ui/progress.d.ts.map +0 -1
- package/dist/ui/progress.js +0 -36
- package/dist/ui/progress.js.map +0 -1
- package/dist/ui/render.d.ts +0 -91
- package/dist/ui/render.d.ts.map +0 -1
- package/dist/ui/render.js +0 -138
- package/dist/ui/render.js.map +0 -1
- package/dist/ui/spinner.d.ts +0 -4
- package/dist/ui/spinner.d.ts.map +0 -1
- package/dist/ui/spinner.js +0 -7
- package/dist/ui/spinner.js.map +0 -1
- package/dist/ui/table.d.ts +0 -8
- package/dist/ui/table.d.ts.map +0 -1
- package/dist/ui/table.js +0 -46
- package/dist/ui/table.js.map +0 -1
- package/dist/update-check.d.ts +0 -13
- package/dist/update-check.d.ts.map +0 -1
- package/dist/update-check.js +0 -94
- package/dist/update-check.js.map +0 -1
- package/dist/version.d.ts +0 -3
- package/dist/version.d.ts.map +0 -1
- package/dist/version.js +0 -5
- package/dist/version.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,850 +1,35 @@
|
|
|
1
1
|
# @miosa/cli
|
|
2
2
|
|
|
3
|
-
The official MIOSA command-line
|
|
3
|
+
The official MIOSA command-line tool.
|
|
4
|
+
`npm install -g @miosa/cli` installs the same native `miosa` binary as Homebrew and the install script.
|
|
4
5
|
|
|
5
|
-
```
|
|
6
|
+
```sh
|
|
6
7
|
npm install -g @miosa/cli
|
|
7
|
-
```
|
|
8
|
-
|
|
9
|
-
Keep it current from the CLI:
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
miosa update
|
|
13
|
-
miosa update --check --json
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
## Contexts and command discovery
|
|
17
|
-
|
|
18
|
-
Save named contexts when you work across personal accounts, team accounts, or
|
|
19
|
-
customer workspaces:
|
|
20
|
-
|
|
21
|
-
```bash
|
|
22
|
-
miosa login
|
|
23
|
-
miosa context save personal
|
|
24
|
-
miosa context set workspace workspace_123
|
|
25
|
-
|
|
26
|
-
miosa login --api-key msk_u_team...
|
|
27
|
-
miosa context save clinic-dev
|
|
28
|
-
|
|
29
|
-
miosa context ls
|
|
30
|
-
miosa context use clinic-dev
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
Agents and scripts should use JSON:
|
|
34
|
-
|
|
35
|
-
```bash
|
|
36
|
-
miosa context ls --json
|
|
37
|
-
miosa context use clinic-dev --json
|
|
38
|
-
miosa command-overview --json
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
`miosa command-overview` prints a tree of all command groups and nested
|
|
42
|
-
subcommands. Use `miosa capabilities --json` for the higher-level agent workflow
|
|
43
|
-
contract.
|
|
44
|
-
|
|
45
|
-
## Unified action authority
|
|
46
|
-
|
|
47
|
-
> Requires a control plane that publishes the action authority contract (miosa-compute PR 558).
|
|
48
|
-
> Against control planes without that support these commands and the related `miosa doctor` check fail closed.
|
|
49
|
-
|
|
50
|
-
When available, every CLI, OSA, MCP, scheduled, and OpenComputers action uses the same server-owned capability catalog.
|
|
51
|
-
The control plane pins each action to a version and fingerprint, records every decision, and fails closed when a capability is unknown or stale.
|
|
52
|
-
|
|
53
|
-
```bash
|
|
54
|
-
miosa actions catalog
|
|
55
|
-
miosa actions check computer.destroy \
|
|
56
|
-
--params '{"computer_id":"computer_123"}' \
|
|
57
|
-
--invocation-id cleanup-2026-07-23
|
|
58
|
-
|
|
59
|
-
miosa actions approvals list --status pending
|
|
60
|
-
miosa actions approvals approve <approval-id>
|
|
61
|
-
miosa actions grants list
|
|
62
|
-
miosa actions receipts --limit 50
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
Owners and administrators can create exact standing grants for a principal, capability version, and optional workspace.
|
|
66
|
-
One-time approvals are consumed atomically and cannot be replayed.
|
|
67
|
-
`miosa doctor` compares the authenticated control plane against the CLI's generated portable identity contract.
|
|
68
|
-
It fails when a capability is missing, stale, or unexpected instead of treating a merely nonempty catalog as healthy.
|
|
69
|
-
|
|
70
|
-
## AWS BYOC host pools
|
|
71
|
-
|
|
72
|
-
The `cloud` command manages the public BYOC control-plane contract.
|
|
73
|
-
It configures AWS trust, region networking and artifacts, host pool limits, server-run preflight, and provisioning.
|
|
74
|
-
|
|
75
|
-
```bash
|
|
76
|
-
miosa cloud accounts create \
|
|
77
|
-
--name "Production AWS" \
|
|
78
|
-
--external-account-id 123456789012 \
|
|
79
|
-
--default-region us-east-1 \
|
|
80
|
-
--json
|
|
81
|
-
|
|
82
|
-
miosa cloud accounts attach-role <account-id> \
|
|
83
|
-
--role-arn arn:aws:iam::123456789012:role/MiosaByocRole \
|
|
84
|
-
--default-region us-east-1 \
|
|
85
|
-
--json
|
|
86
|
-
|
|
87
|
-
miosa cloud regions create \
|
|
88
|
-
--account-id <account-id> \
|
|
89
|
-
--provider-region us-east-1 \
|
|
90
|
-
--name "N. Virginia" \
|
|
91
|
-
--subnet-ref subnet-0abc123 \
|
|
92
|
-
--security-group-refs sg-0def456 \
|
|
93
|
-
--instance-profile-ref MiosaByocHost \
|
|
94
|
-
--artifact-manifest-uri s3://miosa-byoc-artifacts/manifest.json \
|
|
95
|
-
--metadata '{"host_image_id":"ami-0123456789abcdef0"}' \
|
|
96
|
-
--json
|
|
97
|
-
|
|
98
|
-
miosa cloud pools create \
|
|
99
|
-
--region-id <region-id> \
|
|
100
|
-
--instance-type m7i.4xlarge \
|
|
101
|
-
--max-nodes 4 \
|
|
102
|
-
--max-hourly-cents 250 \
|
|
103
|
-
--json
|
|
104
|
-
|
|
105
|
-
miosa cloud pools provision <pool-id> --count 1 --json
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
New pools default to `m7i.4xlarge`, the verified production shape.
|
|
109
|
-
Use `m7i.2xlarge` for the supported baseline tier.
|
|
110
|
-
`miosa cloud preflights run --region-id <id>` resolves the customer role and verifies the region, network, AMI, instance type, quota, and runtime artifact contract on the server.
|
|
111
|
-
|
|
112
|
-
## Deploy — 60 seconds to first deploy
|
|
113
|
-
|
|
114
|
-
### Safe application release workflow
|
|
115
|
-
|
|
116
|
-
Use the application workflow for normal preview, production, and recovery operations.
|
|
117
|
-
It keeps the source directory linked to one exact MIOSA deployment and refuses to report production success until the immutable release, artifact digest, route contract, App Engine placement, database attachment, and required configuration are proven.
|
|
118
|
-
|
|
119
|
-
```bash
|
|
120
|
-
miosa app link . --app <deployment-id> --environment production
|
|
121
|
-
miosa app pull .
|
|
122
|
-
miosa app preview . --json
|
|
123
|
-
miosa app verify <release-id> . --json
|
|
124
|
-
miosa app promote <release-id> . --yes --json
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
Promotion and rollback always target an exact release ID.
|
|
128
|
-
They persist an operation record and idempotency key under `.miosa/operations`, so a request timeout can be inspected or resumed without creating duplicate deployment work.
|
|
129
|
-
|
|
130
|
-
```bash
|
|
131
|
-
miosa app recover <operation-id> . --json
|
|
132
|
-
miosa app recover <operation-id> . --resume --json
|
|
133
|
-
miosa app rollback <release-id> . --yes --json
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
MIOSA App Builder stores generated apps as durable, workspace-scoped App Documents.
|
|
137
|
-
Use the CLI to inspect the same records, verify their venue and declared authority, and manage exact-version review approvals.
|
|
138
|
-
|
|
139
|
-
```bash
|
|
140
|
-
miosa app documents list --workspace <workspace-id> --json
|
|
141
|
-
miosa app documents show <app-document-id> --json
|
|
142
|
-
miosa app documents doctor <app-document-id> --workspace <workspace-id> --json
|
|
143
|
-
miosa app documents approve <app-document-id> --reason "Reviewed" --json
|
|
144
|
-
miosa app documents revoke <app-document-id> --approval <approval-id> --json
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
The doctor fails when the workspace does not match, a published version lacks an exact release binding, the document shape is invalid, or an approval belongs to an older edited version.
|
|
148
|
-
|
|
149
|
-
Declare application-specific acceptance requirements in `.miosa/acceptance.json`.
|
|
150
|
-
The default contract requires HTTP 200 from `/`.
|
|
151
|
-
|
|
152
|
-
```json
|
|
153
|
-
{
|
|
154
|
-
"schema_version": 1,
|
|
155
|
-
"routes": [
|
|
156
|
-
{
|
|
157
|
-
"id": "access",
|
|
158
|
-
"path": "/access",
|
|
159
|
-
"expected_status": [200],
|
|
160
|
-
"body_contains": ["Open the working brief"],
|
|
161
|
-
"content_type": "text/html",
|
|
162
|
-
"required": true
|
|
163
|
-
}
|
|
164
|
-
],
|
|
165
|
-
"required_env": ["DATABASE_URL", "BRIEF_AUTH_SECRET"],
|
|
166
|
-
"database": {
|
|
167
|
-
"required": true,
|
|
168
|
-
"health_path": "/api/health"
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
```
|
|
172
|
-
|
|
173
|
-
Each verification writes a durable, machine-readable receipt under `.miosa/receipts`.
|
|
174
|
-
That receipt is the acceptance evidence for the release.
|
|
175
|
-
|
|
176
|
-
### Capability-gated release contract
|
|
177
|
-
|
|
178
|
-
Use `miosa.app.yml` as the primary typed contract when a release depends on routes, secrets, databases, migrations, connectors, jobs, business capabilities, or approval policy.
|
|
179
|
-
|
|
180
|
-
Every mutation resolves one exact organization, workspace, application, environment, and deployment.
|
|
181
|
-
|
|
182
|
-
The organization option is the canonical name for the existing tenant identity, while `--tenant` remains a compatibility alias.
|
|
183
|
-
|
|
184
|
-
```yaml
|
|
185
|
-
schema_version: 1
|
|
186
|
-
name: clinic-intake
|
|
187
|
-
organization: 06737e41-32a2-4c66-bf42-a2e123456789
|
|
188
|
-
workspace: e0211a62-b08e-402a-a171-b6c123456789
|
|
189
|
-
application: clinic-intake
|
|
190
|
-
environment: production
|
|
191
|
-
|
|
192
|
-
services:
|
|
193
|
-
web:
|
|
194
|
-
command: npm start
|
|
195
|
-
port: 3000
|
|
196
|
-
|
|
197
|
-
capabilities:
|
|
198
|
-
routes:
|
|
199
|
-
- id: homepage
|
|
200
|
-
path: /
|
|
201
|
-
expected_status: [200]
|
|
202
|
-
secrets:
|
|
203
|
-
- SESSION_SECRET
|
|
204
|
-
database:
|
|
205
|
-
required: true
|
|
206
|
-
health_path: /api/health
|
|
207
|
-
migration:
|
|
208
|
-
required: true
|
|
209
|
-
compatibility: backward_compatible
|
|
210
|
-
connectors:
|
|
211
|
-
- id: oauth
|
|
212
|
-
jobs:
|
|
213
|
-
- id: daily-sync
|
|
214
|
-
business:
|
|
215
|
-
- id: customer-sync
|
|
216
|
-
path: /api/capabilities/customer-sync
|
|
217
|
-
expected_status: [200]
|
|
218
|
-
|
|
219
|
-
policy:
|
|
220
|
-
approvals_required: 1
|
|
221
|
-
allowed_environments: [production]
|
|
222
|
-
require_immutable_release: true
|
|
223
|
-
require_rollback_path: true
|
|
224
|
-
```
|
|
225
|
-
|
|
226
|
-
The change workflow saves the same immutable plan locally and in the control-plane operation ledger.
|
|
227
|
-
|
|
228
|
-
Approvals are bound to the plan fingerprint, and exact apply is idempotent.
|
|
229
|
-
|
|
230
|
-
```bash
|
|
231
|
-
miosa blueprint validate . --json
|
|
232
|
-
miosa changes plan <release-id> . --json
|
|
233
|
-
miosa changes approve <plan-id> . --actor <identity> --json
|
|
234
|
-
miosa changes apply <plan-id> . --json
|
|
235
|
-
miosa evidence show <receipt-id> . --json
|
|
236
|
-
miosa drift detect <plan-id> . --json
|
|
237
|
-
```
|
|
238
|
-
|
|
239
|
-
Pre-promotion gates check immutable release identity, secrets, database attachment, migration evidence, connectors, jobs, policy, and declared business capability evidence.
|
|
240
|
-
|
|
241
|
-
Post-promotion acceptance verifies the active release, running artifact, public routes, data bindings, placement, and declared capabilities.
|
|
242
|
-
|
|
243
|
-
If acceptance fails, the CLI requests the exact saved rollback version and records whether restoration was confirmed.
|
|
244
|
-
|
|
245
|
-
Point the CLI at any repo and it handles the rest: framework detection, build wiring, GitHub webhook setup, and live log streaming.
|
|
246
|
-
|
|
247
|
-
For production app hosting, MIOSA recommends App Engine. It runs apps on the
|
|
248
|
-
workspace App Engine runtime, which is the preferred path for teams deploying
|
|
249
|
-
many apps because it gives better runtime packing and lower resource overhead
|
|
250
|
-
than one-off app runtimes.
|
|
251
|
-
|
|
252
|
-
```
|
|
253
|
-
$ cd ~/my-project
|
|
254
|
-
$ miosa login
|
|
255
|
-
$ miosa deploy --docker-deploy
|
|
256
|
-
|
|
257
|
-
Detected: Next.js 15 (confidence 95%)
|
|
258
|
-
Repo: https://github.com/me/my-project
|
|
259
|
-
Branch: main
|
|
260
|
-
|
|
261
|
-
? Deployment name: my-project
|
|
262
|
-
? Branch to deploy: main
|
|
263
|
-
? Build command: npm run build
|
|
264
|
-
? Run command: npm start
|
|
265
|
-
? Create deployment? Yes
|
|
266
|
-
|
|
267
|
-
Deployment "my-project" created (slug: my-project-x7k2)
|
|
268
|
-
Saved .miosa.json
|
|
269
|
-
|
|
270
|
-
ACTION REQUIRED — GitHub Webhook
|
|
271
|
-
The webhook secret below is shown ONCE. Store it now.
|
|
272
|
-
|
|
273
|
-
Webhook URL: https://api.miosa.ai/api/v1/integrations/github/webhook
|
|
274
|
-
Content type: application/json
|
|
275
|
-
Secret: a3f8b2c1d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9
|
|
276
|
-
Events: push
|
|
277
|
-
|
|
278
|
-
Add this at: https://github.com/me/my-project/settings/hooks/new
|
|
279
|
-
|
|
280
|
-
Initial build queued
|
|
281
|
-
|
|
282
|
-
Build log:
|
|
283
|
-
────────────────────────────────────────────────────────────
|
|
284
|
-
> npm run build
|
|
285
|
-
> next build
|
|
286
|
-
✓ Compiled successfully
|
|
287
|
-
────────────────────────────────────────────────────────────
|
|
288
|
-
|
|
289
|
-
Deployed
|
|
290
|
-
|
|
291
|
-
URL: https://my-project-x7k2.me.miosa.app
|
|
292
|
-
|
|
293
|
-
Next steps:
|
|
294
|
-
miosa deploy logs — tail logs
|
|
295
|
-
miosa deploy domain add example.com — add custom domain
|
|
296
|
-
miosa deploy env set KEY=VALUE — set env var
|
|
297
|
-
```
|
|
298
|
-
|
|
299
|
-
For CI, agents, and scripts, use JSON mode.
|
|
300
|
-
JSON mode and non-TTY stdin never open interactive prompts.
|
|
301
|
-
Framework detection supplies build and run commands when it recognizes the project.
|
|
302
|
-
Unknown project shapes fail before the API and require both command flags instead of guessing.
|
|
303
|
-
Static sites use `--static`, which omits build and run commands completely.
|
|
304
|
-
|
|
305
|
-
```bash
|
|
306
|
-
miosa --organization acme deploy --docker-deploy --json
|
|
307
|
-
|
|
308
|
-
miosa --organization acme deploy --docker-deploy --json --yes \
|
|
309
|
-
--name my-project \
|
|
310
|
-
--branch main \
|
|
311
|
-
--build-command "npm run build" \
|
|
312
|
-
--run-command "npm start"
|
|
313
|
-
|
|
314
|
-
miosa --organization acme deploy --docker-deploy --static --json --yes \
|
|
315
|
-
--name callix-security-report \
|
|
316
|
-
--branch master
|
|
317
|
-
```
|
|
318
|
-
|
|
319
|
-
The JSON result is one document containing the deployment identity, queued build, App Engine host, public URL when known, and one-time webhook details for a new deployment.
|
|
320
|
-
|
|
321
|
-
On subsequent runs from the same directory, `miosa deploy` reads `.miosa.json` and skips all prompts — just queues a rebuild and streams logs.
|
|
322
|
-
The creation flags (`--name`, `--branch`, `--build-command`, `--run-command`, `--static`) only apply to the first deploy; passing them when `.miosa.json` exists is an error, so automation never silently deploys a configuration other than the one it asked for.
|
|
323
|
-
|
|
324
|
-
```bash
|
|
325
|
-
# Trigger a rebuild any time
|
|
326
|
-
miosa deploy
|
|
327
|
-
|
|
328
|
-
# Or explicitly
|
|
329
|
-
miosa deploy redeploy
|
|
330
|
-
```
|
|
331
|
-
|
|
332
|
-
For apps built inside a sandbox, promote the sandbox workspace through App Engine:
|
|
333
|
-
|
|
334
|
-
```bash
|
|
335
|
-
miosa sandbox publish <sandbox-id> \
|
|
336
|
-
--path /workspace \
|
|
337
|
-
--slug my-app \
|
|
338
|
-
--build-command "npm run build" \
|
|
339
|
-
--run-command "npm run start" \
|
|
340
|
-
--port 3000 \
|
|
341
|
-
--docker-deploy \
|
|
342
|
-
--wait \
|
|
343
|
-
--timeout 900 \
|
|
344
|
-
--json
|
|
345
|
-
```
|
|
346
|
-
|
|
347
|
-
## Agentic sandbox app templates
|
|
348
|
-
|
|
349
|
-
Query the canonical product catalog before choosing a shape:
|
|
350
|
-
|
|
351
|
-
```bash
|
|
352
|
-
miosa templates catalog --product sandbox
|
|
353
|
-
miosa templates readiness miosa-sandbox --product sandbox --json
|
|
354
|
-
```
|
|
355
|
-
|
|
356
|
-
The default sandbox is `small`: 2 vCPU, 4096 MiB RAM, and 10240 MiB disk.
|
|
357
|
-
The `miosa-sandbox` input is a stable alias, while catalog and create responses expose the resolved immutable `image_id` generation.
|
|
358
|
-
Legacy `--cpu`, `--memory`, and `--disk` values must be supplied together and exactly match one named size.
|
|
359
|
-
|
|
360
|
-
Agents should start from app templates instead of empty sandboxes when building common web apps. Sandboxes are persistent by default: timeout/pause preserves the filesystem and moves the session to `paused`; `destroy --force` is a legacy API extension for permanent deletion and is not in the public V1 allowlist.
|
|
361
|
-
|
|
362
|
-
Sandbox placement is server-owned. The public sandbox create contract uses MIOSA-managed capacity by default and has no per-sandbox provider or placement selector. BYOC accounts, regions, and pools are configured separately with `miosa cloud`; eligible placement remains a control-plane policy decision.
|
|
363
|
-
|
|
364
|
-
For a working Next.js starter with a public preview:
|
|
365
|
-
|
|
366
|
-
```bash
|
|
367
|
-
miosa sandbox create \
|
|
368
|
-
--template nextjs \
|
|
369
|
-
--auto-start \
|
|
370
|
-
--publish-port 3000 \
|
|
371
|
-
--wait \
|
|
372
|
-
--timeout 1h \
|
|
373
|
-
--json
|
|
374
|
-
```
|
|
375
|
-
|
|
376
|
-
Expected machine-readable success signals:
|
|
377
|
-
|
|
378
|
-
```json
|
|
379
|
-
{
|
|
380
|
-
"state": "running",
|
|
381
|
-
"ready": true,
|
|
382
|
-
"template_id": "nextjs",
|
|
383
|
-
"preview": {
|
|
384
|
-
"ready": true,
|
|
385
|
-
"status": 200,
|
|
386
|
-
"url": "https://3000-<id>.sandbox.<domain>"
|
|
387
|
-
}
|
|
388
|
-
}
|
|
389
|
-
```
|
|
390
|
-
|
|
391
|
-
The backend seeds `/workspace/package.json`, `/workspace/app/page.jsx`, and related starter files only when `/workspace` is empty. Agents should verify before publishing:
|
|
392
|
-
|
|
393
|
-
```bash
|
|
394
|
-
miosa sandbox exec <sandbox-id> \
|
|
395
|
-
--cwd /workspace \
|
|
396
|
-
--json \
|
|
397
|
-
-- bash -lc "ls package.json app/page.jsx && npm run build"
|
|
398
|
-
```
|
|
399
|
-
|
|
400
|
-
Discover the full agent contract with:
|
|
401
|
-
|
|
402
|
-
```bash
|
|
403
|
-
miosa capabilities --json
|
|
404
|
-
```
|
|
405
|
-
|
|
406
|
-
### Device routing for agents
|
|
407
|
-
|
|
408
|
-
Use `miosa devices catalog --json` before launching an agent workflow. It
|
|
409
|
-
explains the four execution surfaces:
|
|
410
|
-
|
|
411
|
-
- `sandbox_worker`: default for code, builds, tests, previews, artifacts, and
|
|
412
|
-
publish. Agents should write and run code inside `/workspace`.
|
|
413
|
-
- `computer`: full VM/desktop for browser automation, form filling, dashboard
|
|
414
|
-
logins, screenshots, and Computer Use Agent sessions.
|
|
415
|
-
- `local_device`: developer-owned machine for local discovery and MCP setup.
|
|
416
|
-
- `docker_deploy_host`: workspace appliance that runs versioned app containers
|
|
417
|
-
after a sandbox-built app is published.
|
|
418
|
-
|
|
419
|
-
```bash
|
|
420
|
-
miosa devices catalog --json
|
|
421
|
-
miosa devices list --json
|
|
422
|
-
miosa sandbox prompt <sandbox-id> --provider codex --cwd /workspace --json -- "build and test the requested app"
|
|
423
|
-
miosa sandbox prompt <sandbox-id> --provider custom --runtime-command "hermes-agent run" --json -- "run the configured agent"
|
|
424
|
-
```
|
|
425
|
-
|
|
426
|
-
### Persistent sandbox workflow
|
|
427
|
-
|
|
428
|
-
The normal agent loop happens inside the sandbox filesystem:
|
|
429
|
-
|
|
430
|
-
```bash
|
|
431
|
-
miosa sandbox write-file <sandbox-id> /workspace/app/page.jsx ./page.jsx --json
|
|
432
|
-
miosa sandbox exec <sandbox-id> --cwd /workspace --cmd "npm install && npm run build" --shell-cmd "bash -lc" --json
|
|
433
|
-
miosa sandbox wait <sandbox-id> --port 3000 --timeout 180 --json
|
|
434
|
-
```
|
|
435
|
-
|
|
436
|
-
Stop without losing work:
|
|
437
|
-
|
|
438
|
-
```bash
|
|
439
|
-
miosa sandbox stop <sandbox-id> --json
|
|
440
|
-
miosa sandbox resume <sandbox-id> --json
|
|
441
|
-
```
|
|
442
|
-
|
|
443
|
-
Checkpoint and fork:
|
|
444
|
-
|
|
445
|
-
```bash
|
|
446
|
-
miosa sandbox fork <sandbox-id> --timeout 1h --idempotency-key feature-branch --json
|
|
447
|
-
```
|
|
448
|
-
|
|
449
|
-
### Canonical sandbox development contract
|
|
450
|
-
|
|
451
|
-
`miosa sandbox dev up` runs a project from the canonical `miosa.app.yml` manifest.
|
|
452
|
-
The command validates the manifest and CLI authentication, creates or reuses a persistent sandbox, overlay-syncs source files, installs locked dependencies once per lockfile fingerprint, starts named services, waits for internal and public health, and prints stable preview URLs.
|
|
453
|
-
|
|
454
|
-
```yaml
|
|
455
|
-
schema_version: 1
|
|
456
|
-
name: clinic-intake
|
|
457
|
-
|
|
458
|
-
sandbox:
|
|
459
|
-
name: clinic-intake-dev
|
|
460
|
-
template: node
|
|
461
|
-
workdir: /workspace
|
|
462
|
-
|
|
463
|
-
sync:
|
|
464
|
-
exclude:
|
|
465
|
-
- coverage
|
|
466
|
-
|
|
467
|
-
dependencies:
|
|
468
|
-
install: npm ci
|
|
469
|
-
|
|
470
|
-
services:
|
|
471
|
-
web:
|
|
472
|
-
command: npm run dev -- --host 0.0.0.0
|
|
473
|
-
port: 3000
|
|
474
|
-
health:
|
|
475
|
-
path: /health
|
|
476
|
-
timeout: 120
|
|
477
|
-
|
|
478
|
-
requirements:
|
|
479
|
-
config:
|
|
480
|
-
- NODE_ENV
|
|
481
|
-
secrets:
|
|
482
|
-
- SESSION_SECRET
|
|
483
|
-
database: true
|
|
484
|
-
```
|
|
485
|
-
|
|
486
|
-
Run the project with human-readable or stable JSON output:
|
|
487
|
-
|
|
488
|
-
```bash
|
|
489
|
-
miosa sandbox dev up
|
|
490
|
-
miosa sandbox dev up --dir ./app --json
|
|
491
|
-
miosa sandbox dev up --dir ./app --sandbox <sandbox-id> --json
|
|
492
|
-
```
|
|
493
|
-
|
|
494
|
-
The command writes `.miosa/sandbox.json` immediately after sandbox creation so a partial run can resume without creating another sandbox.
|
|
495
|
-
A saved sandbox is reused only when its project name matches the manifest, unless `--sandbox` explicitly selects one.
|
|
496
|
-
Sync is an overlay and never deletes remote files.
|
|
497
|
-
It always excludes `.git`, `.miosa`, `.env`, `.env.*`, `node_modules`, `.venv`, `coverage`, and `dist`, plus entries in `sync.exclude`.
|
|
498
|
-
This preserves runtime-owned dependency trees, virtual environments, install markers, service logs, and other files that exist only in the sandbox.
|
|
499
|
-
|
|
500
|
-
Dependency commands must enforce a lockfile.
|
|
501
|
-
Supported built-in validation recognizes `npm ci`, frozen pnpm and Bun installs, immutable or frozen Yarn installs, and hash-locked pip installs.
|
|
502
|
-
An install marker under `/workspace/.miosa-runtime` makes retries idempotent for the same lockfile fingerprint.
|
|
503
|
-
|
|
504
|
-
Service commands are sent as JSON data to the sandbox service endpoint.
|
|
505
|
-
The CLI does not interpolate secret values into shell commands.
|
|
506
|
-
Declare secret names under `requirements.secrets`; set values through the encrypted sandbox environment commands.
|
|
507
|
-
|
|
508
|
-
Inspect the complete contract with:
|
|
509
|
-
|
|
510
|
-
```bash
|
|
511
|
-
miosa sandbox doctor --full --json
|
|
512
|
-
miosa sandbox doctor <sandbox-id> --full --dir ./app --json
|
|
513
|
-
```
|
|
514
|
-
|
|
515
|
-
When no ID is passed, full doctor reads `.miosa/sandbox.json`.
|
|
516
|
-
It checks sandbox API state, the exec channel, project filesystem access, named service state, internal listeners, public preview routing, managed database attachment state, required config and secret names, and snapshot capability.
|
|
517
|
-
It never returns config or secret values.
|
|
518
|
-
JSON output includes `ok`, `sandbox_id`, `manifest`, `checks`, and `failure_codes`.
|
|
519
|
-
Each failed check has a stable code and an actionable `remediation` command.
|
|
520
|
-
|
|
521
|
-
The development contract depends on these existing backend routes:
|
|
522
|
-
|
|
523
|
-
- `POST /api/v1/sandboxes` and `GET /api/v1/sandboxes/:id` for persistent sandbox lifecycle and API state.
|
|
524
|
-
- `POST /api/v1/sandboxes/:id/files` and `POST /api/v1/sandboxes/:id/exec` for source sync, deterministic install, filesystem checks, and internal health.
|
|
525
|
-
- `GET`, `POST`, and restart routes under `/api/v1/sandboxes/:id/services` for idempotent named processes.
|
|
526
|
-
- `POST /api/v1/sandboxes/:id/expose` for preview routing.
|
|
527
|
-
- `GET /api/v1/sandboxes/:id/env` for name-only config and secret presence checks.
|
|
528
|
-
- `GET /api/v1/sandboxes/:id/snapshots` for snapshot capability checks.
|
|
529
|
-
- Database attachment fields on `GET /api/v1/sandboxes/:id` for attachment inspection.
|
|
530
|
-
|
|
531
|
-
The CLI does not add release-candidate prepare or prove commands because the current backend contract has no release-candidate prepare endpoint.
|
|
532
|
-
Use `miosa sandbox publish`, `miosa releases promote`, and `miosa deploy prove` for the deployment interfaces that do exist.
|
|
533
|
-
|
|
534
|
-
The public V1 snapshot operation is `fork`: the service takes a copy-on-write snapshot of a running sandbox and creates the fork. The separate snapshot create/list/restore commands are legacy API extensions and are not part of the public V1 allowlist.
|
|
535
|
-
|
|
536
|
-
Use a disposable sandbox only when you explicitly do not want preserved state:
|
|
537
|
-
|
|
538
|
-
```bash
|
|
539
|
-
miosa sandbox create --template node --non-persistent --timeout 10m --json
|
|
540
|
-
```
|
|
541
|
-
|
|
542
|
-
### Agent-safe exec and logs
|
|
543
|
-
|
|
544
|
-
Use explicit command flags when a command contains shell flags, pipes, redirects,
|
|
545
|
-
or `bash -c` style arguments:
|
|
546
|
-
|
|
547
|
-
```bash
|
|
548
|
-
miosa sandbox exec <sandbox-id> \
|
|
549
|
-
--cwd /workspace \
|
|
550
|
-
--cmd "npm install && npm run build" \
|
|
551
|
-
--shell-cmd "bash -lc" \
|
|
552
|
-
--json
|
|
553
|
-
```
|
|
554
|
-
|
|
555
|
-
Top-level logs can target a resource explicitly and filter recent output:
|
|
556
|
-
|
|
557
|
-
```bash
|
|
558
|
-
miosa logs --deployment <app-id> --lines 200 --contains error --json
|
|
559
|
-
miosa logs --sandbox <sandbox-id> --regex "500|panic|failed" --json
|
|
560
|
-
```
|
|
561
|
-
|
|
562
|
-
### Deploy sub-commands
|
|
563
|
-
|
|
564
|
-
```bash
|
|
565
|
-
miosa deploy list # All deployments for this tenant
|
|
566
|
-
miosa deploy logs [id] # Tail live build logs
|
|
567
|
-
miosa deploy redeploy [id] # Manual rebuild
|
|
568
|
-
miosa deploy env set KEY=VALUE [--id id] # Set env var
|
|
569
|
-
miosa deploy env list [id] # Show env vars (masked)
|
|
570
|
-
miosa deploy domain add example.com [id] # Add custom domain
|
|
571
|
-
miosa deploy destroy [id] # Tear down deployment
|
|
572
|
-
```
|
|
573
|
-
|
|
574
|
-
### Supported frameworks (auto-detected)
|
|
575
|
-
|
|
576
|
-
| Framework | Detection | Build | Run |
|
|
577
|
-
|---|---|---|---|
|
|
578
|
-
| Next.js | `next` in package.json | `npm run build` | `npm start` |
|
|
579
|
-
| SvelteKit | `@sveltejs/kit` in package.json | `npm run build` | `node build` |
|
|
580
|
-
| Vite + React | `vite` + `react` in package.json | `npm run build` | `npx serve dist` |
|
|
581
|
-
| Phoenix (Elixir) | `mix.exs` with `:phoenix` | `mix release` | `_build/prod/rel/.../bin/... start` |
|
|
582
|
-
| Django | `manage.py` + `requirements.txt` | `pip install` + `collectstatic` | `gunicorn` |
|
|
583
|
-
| Flask | `requirements.txt` with flask | `pip install` | `gunicorn app:app` |
|
|
584
|
-
| Ruby on Rails | `Gemfile` + `config/application.rb` | `bundle install` | `rails server` |
|
|
585
|
-
| Go | `go.mod` | `go build -o app .` | `./app` |
|
|
586
|
-
| Rust | `Cargo.toml` | `cargo build --release` | `./target/release/<name>` |
|
|
587
|
-
| Static HTML | `index.html` (no build system) | — | `npx serve .` |
|
|
588
|
-
|
|
589
|
-
---
|
|
590
|
-
|
|
591
|
-
## OpenComputers hosts
|
|
592
|
-
|
|
593
|
-
OpenComputers connects a machine you own to your MIOSA account.
|
|
594
|
-
OSA runs on that machine as the local agent harness and keeps an outbound-only connection to MIOSA.
|
|
595
|
-
MIOSA issues a one-time host credential, tracks the host, and can send scoped work to it.
|
|
596
|
-
|
|
597
|
-
```bash
|
|
598
|
-
# Authenticate
|
|
599
|
-
miosa login
|
|
600
|
-
|
|
601
|
-
# Register a Linux or macOS machine and print its one-time OSA install command
|
|
602
|
-
miosa opencomputers connect my-mac --platform macos
|
|
603
|
-
|
|
604
|
-
# List connected machines
|
|
605
|
-
miosa opencomputers list
|
|
606
|
-
|
|
607
|
-
# Open an interactive terminal
|
|
608
|
-
miosa ssh my-mac
|
|
609
|
-
|
|
610
|
-
# Run a command
|
|
611
|
-
miosa exec my-mac "npm test"
|
|
612
|
-
|
|
613
|
-
# Upload a file
|
|
614
|
-
miosa cp ./build.tar.gz my-mac:/tmp/
|
|
615
|
-
|
|
616
|
-
# Expose a port publicly
|
|
617
|
-
miosa tunnel open my-mac --port 3000
|
|
618
|
-
```
|
|
619
|
-
|
|
620
|
-
## Configuration
|
|
621
|
-
|
|
622
|
-
Config is stored at `~/.miosa/config.json`:
|
|
623
|
-
|
|
624
|
-
```json
|
|
625
|
-
{
|
|
626
|
-
"endpoint": "https://api.miosa.ai",
|
|
627
|
-
"api_key": "msk_u_...",
|
|
628
|
-
"default_host": null
|
|
629
|
-
}
|
|
630
|
-
```
|
|
631
|
-
|
|
632
|
-
Precedence: CLI flags > environment variables > config file > interactive prompt.
|
|
633
|
-
|
|
634
|
-
**Environment variables:**
|
|
635
|
-
|
|
636
|
-
| Variable | Description |
|
|
637
|
-
|---|---|
|
|
638
|
-
| `MIOSA_API_KEY` | API key (overrides config file) |
|
|
639
|
-
| `MIOSA_ENDPOINT` | API endpoint (overrides config file) |
|
|
640
|
-
| `MIOSA_JSON` | Prefer JSON output for commands that support structured output |
|
|
641
|
-
| `MIOSA_NO_COLOR` | Disable ANSI color output |
|
|
642
|
-
| `MIOSA_DEBUG` | Set to any value to enable debug output |
|
|
643
|
-
|
|
644
|
-
## Commands
|
|
645
|
-
|
|
646
|
-
### `miosa deploy [sub-command]`
|
|
647
|
-
|
|
648
|
-
Deploy a GitHub repo. See the [Deploy section](#deploy--60-seconds-to-first-deploy) above for the full flow.
|
|
649
|
-
|
|
650
|
-
```bash
|
|
651
|
-
miosa deploy --docker-deploy # Recommended production deploy
|
|
652
|
-
miosa deploy --docker-deploy --json # Prompt-free CI or agent deploy
|
|
653
|
-
miosa deploy --docker-deploy --static --name report --branch main --yes --json
|
|
654
|
-
miosa deploy --name app --branch main --build-command "npm run build" --run-command "npm start" --yes --json
|
|
655
|
-
miosa deploy # First deploy or redeploy from .miosa.json
|
|
656
|
-
miosa deploy list [--json] # List all deployments
|
|
657
|
-
miosa deploy logs [id] # Tail live build logs
|
|
658
|
-
miosa deploy redeploy [id] [--no-follow] # Manual rebuild
|
|
659
|
-
miosa deploy env set KEY=VALUE [--id id] # Set env var
|
|
660
|
-
miosa deploy env list [id] # Show env vars (masked)
|
|
661
|
-
miosa deploy domain add <domain> [id] # Add custom domain
|
|
662
|
-
miosa deploy destroy [id] [-f] # Tear down deployment
|
|
663
|
-
```
|
|
664
|
-
|
|
665
|
-
### `miosa login [--api-key key]`
|
|
666
|
-
|
|
667
|
-
Authenticate with your MIOSA API key. If no key is provided, you'll be prompted interactively.
|
|
668
|
-
|
|
669
|
-
```bash
|
|
670
8
|
miosa login
|
|
671
|
-
miosa
|
|
672
|
-
echo "msk_u_yourkey" | miosa login # non-TTY / CI
|
|
9
|
+
miosa create my-box --wait
|
|
673
10
|
```
|
|
674
11
|
|
|
675
|
-
|
|
12
|
+
Supported: macOS (arm64, x64) and Linux (x64, arm64).
|
|
13
|
+
Elsewhere, see https://docs.miosa.ai/cli.
|
|
676
14
|
|
|
677
|
-
|
|
15
|
+
## How it works
|
|
678
16
|
|
|
679
|
-
|
|
17
|
+
This package is a small launcher.
|
|
18
|
+
The binary ships in one platform package, `@miosa/cli-<os>-<cpu>`, which npm installs through `optionalDependencies`.
|
|
19
|
+
If that package is missing (`--omit=optional`, a registry mirror, skipped install scripts), the launcher downloads the same release from github.com/Miosa-osa/miosa-cli-go and verifies its SHA-256 against the release `checksums.txt` before running it.
|
|
680
20
|
|
|
681
|
-
|
|
21
|
+
## Upgrading
|
|
682
22
|
|
|
683
|
-
```
|
|
684
|
-
|
|
685
|
-
miosa opencomputers list --json | jq '.[].name'
|
|
23
|
+
```sh
|
|
24
|
+
npm install -g @miosa/cli@latest
|
|
686
25
|
```
|
|
687
26
|
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
Show details for a specific host including live telemetry.
|
|
691
|
-
|
|
692
|
-
```bash
|
|
693
|
-
miosa host my-mac
|
|
694
|
-
miosa host abc12345
|
|
695
|
-
```
|
|
696
|
-
|
|
697
|
-
### `miosa opencomputers connect [name]`
|
|
698
|
-
|
|
699
|
-
Register a machine, print its one-time OSA install command, and wait for it to come online.
|
|
700
|
-
The command does not install OSA automatically because the target machine can be different from the machine where you run the CLI.
|
|
701
|
-
Use `--no-wait` in automation.
|
|
702
|
-
JSON output redacts the install command unless you explicitly pass `--show-install-command`.
|
|
703
|
-
|
|
704
|
-
```bash
|
|
705
|
-
miosa opencomputers connect my-new-server --platform linux
|
|
706
|
-
miosa opencomputers connect ci-runner --platform linux --no-wait --json
|
|
707
|
-
```
|
|
708
|
-
|
|
709
|
-
`miosa connect` and `miosa hosts` remain available as compatibility shortcuts.
|
|
710
|
-
|
|
711
|
-
### `miosa ssh <computer-or-host> [--cmd "..."]`
|
|
712
|
-
|
|
713
|
-
Open an interactive PTY terminal session on a MIOSA Computer. If no Computer matches, the CLI falls back to an OpenComputers host with the same name or ID.
|
|
714
|
-
|
|
715
|
-
```bash
|
|
716
|
-
miosa ssh my-mac
|
|
717
|
-
miosa ssh my-mac --cmd "ls -la"
|
|
718
|
-
```
|
|
719
|
-
|
|
720
|
-
### `miosa exec <host> <cmd> [args...] [--cwd dir] [--env KEY=VAL] [--timeout 30s]`
|
|
721
|
-
|
|
722
|
-
Run a command non-interactively and stream output. Exits with the remote exit code.
|
|
723
|
-
|
|
724
|
-
```bash
|
|
725
|
-
miosa exec my-mac npm test
|
|
726
|
-
miosa exec my-mac ls -- -la /tmp
|
|
727
|
-
miosa exec my-mac env --env NODE_ENV=production --env PORT=3000
|
|
728
|
-
miosa exec my-mac make build --cwd /home/user/project --timeout 10m
|
|
729
|
-
```
|
|
730
|
-
|
|
731
|
-
### `miosa cp <src> <dst>`
|
|
732
|
-
|
|
733
|
-
Copy files between local and remote. Use `host:/path` for remote paths.
|
|
734
|
-
|
|
735
|
-
```bash
|
|
736
|
-
# Upload
|
|
737
|
-
miosa cp ./local.txt my-mac:/tmp/
|
|
738
|
-
miosa cp -r ./dist my-mac:/var/www/
|
|
739
|
-
|
|
740
|
-
# Download
|
|
741
|
-
miosa cp my-mac:/var/log/app.log ./
|
|
742
|
-
miosa cp my-mac:/home/user/report.pdf ~/Downloads/
|
|
743
|
-
```
|
|
744
|
-
|
|
745
|
-
### `miosa ls <host>:<path> [-a] [-l]`
|
|
746
|
-
|
|
747
|
-
List files on a host.
|
|
748
|
-
|
|
749
|
-
```bash
|
|
750
|
-
miosa ls my-mac:/tmp
|
|
751
|
-
miosa ls my-mac:/home/user -la
|
|
752
|
-
miosa ls my-mac:/ -a
|
|
753
|
-
```
|
|
754
|
-
|
|
755
|
-
### `miosa rm <host>:<path> [-r] [-f]`
|
|
756
|
-
|
|
757
|
-
Remove a file or directory on a host. Prompts for confirmation unless `-f`.
|
|
758
|
-
|
|
759
|
-
```bash
|
|
760
|
-
miosa rm my-mac:/tmp/old-build.tar.gz
|
|
761
|
-
miosa rm -rf my-mac:/tmp/build-artifacts
|
|
762
|
-
```
|
|
763
|
-
|
|
764
|
-
### `miosa tunnel open <host> --port <n> [--name slug] [--watch]`
|
|
765
|
-
|
|
766
|
-
Expose a port on a host publicly.
|
|
767
|
-
|
|
768
|
-
```bash
|
|
769
|
-
miosa tunnel open my-mac --port 3000
|
|
770
|
-
miosa tunnel open my-mac --port 8080 --name my-app --watch
|
|
771
|
-
```
|
|
772
|
-
|
|
773
|
-
### `miosa tunnel list <host>`
|
|
774
|
-
|
|
775
|
-
List active tunnels on a host.
|
|
776
|
-
|
|
777
|
-
### `miosa tunnel close <host> <slug>`
|
|
778
|
-
|
|
779
|
-
Close (revoke) a tunnel.
|
|
780
|
-
|
|
781
|
-
### `miosa agent <computer> "<task>" [--model] [--max-turns]`
|
|
782
|
-
|
|
783
|
-
Start a resumable Computer Use Agent session on a Computer.
|
|
784
|
-
|
|
785
|
-
```bash
|
|
786
|
-
miosa agent my-mac "run the test suite and fix any failing tests"
|
|
787
|
-
miosa agent my-mac "update all npm dependencies" --max-turns 20
|
|
788
|
-
miosa agent my-mac "optimize the database queries" --model nemotron-3-super
|
|
789
|
-
miosa agent my-mac --resume <session-id> "continue from the last failure"
|
|
790
|
-
miosa agent ls
|
|
791
|
-
miosa agent history <session-id> --computer my-mac
|
|
792
|
-
```
|
|
793
|
-
|
|
794
|
-
### `miosa completion <shell>`
|
|
795
|
-
|
|
796
|
-
Print shell completion for `bash`, `zsh`, or `fish`.
|
|
797
|
-
|
|
798
|
-
```bash
|
|
799
|
-
miosa completion zsh > ~/.zsh/completions/_miosa
|
|
800
|
-
miosa completion bash > ~/.local/share/bash-completion/completions/miosa
|
|
801
|
-
miosa completion fish > ~/.config/fish/completions/miosa.fish
|
|
802
|
-
```
|
|
803
|
-
|
|
804
|
-
### `miosa watch <host>`
|
|
805
|
-
|
|
806
|
-
Stream live telemetry and events from a host.
|
|
807
|
-
|
|
808
|
-
```bash
|
|
809
|
-
miosa watch my-mac
|
|
810
|
-
```
|
|
811
|
-
|
|
812
|
-
### `miosa status`
|
|
813
|
-
|
|
814
|
-
Show current auth, endpoint, tenant info, credits, and host count.
|
|
815
|
-
|
|
816
|
-
```bash
|
|
817
|
-
miosa status
|
|
818
|
-
```
|
|
819
|
-
|
|
820
|
-
## Exit codes
|
|
821
|
-
|
|
822
|
-
| Code | Meaning |
|
|
823
|
-
|---|---|
|
|
824
|
-
| 0 | Success |
|
|
825
|
-
| 1 | User error (bad args, not found, etc.) |
|
|
826
|
-
| 2 | Network error |
|
|
827
|
-
| 3 | Authentication error |
|
|
828
|
-
| 4 | Server error |
|
|
829
|
-
|
|
830
|
-
## Troubleshooting
|
|
831
|
-
|
|
832
|
-
**"No API key configured"** — Run `miosa login`.
|
|
833
|
-
|
|
834
|
-
**"Host not found"** — Check `miosa opencomputers list` for the correct name or ID.
|
|
835
|
-
|
|
836
|
-
**"Insufficient credits"** — Top up at https://miosa.ai/billing.
|
|
837
|
-
|
|
838
|
-
**Network errors** — Check your connection. Use `MIOSA_DEBUG=1 miosa <cmd>` for stack traces.
|
|
839
|
-
|
|
840
|
-
**Custom endpoint** — `MIOSA_ENDPOINT=https://your-instance.ai miosa opencomputers list`
|
|
841
|
-
|
|
842
|
-
## Links
|
|
843
|
-
|
|
844
|
-
- Documentation: https://docs.miosa.ai/cli
|
|
845
|
-
- Platform: https://miosa.ai
|
|
846
|
-
- Support: support@miosa.ai
|
|
27
|
+
`miosa update` does not replace an npm-managed binary; it prints this command.
|
|
847
28
|
|
|
848
|
-
##
|
|
29
|
+
## Coming from 1.x
|
|
849
30
|
|
|
850
|
-
|
|
31
|
+
1.x was a separate Node CLI.
|
|
32
|
+
2.x is the native CLI, so the command set is the 2.0 one.
|
|
33
|
+
Run `miosa --help` to see it, and `miosa <command> --help` for flags.
|
|
34
|
+
Sign in again with `miosa login`, or set `MIOSA_API_KEY`.
|
|
35
|
+
Node 18 or newer is required to run the launcher.
|