@struktoai/mirage-node 0.0.7 → 0.0.8
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 +143 -48
- package/dist/accessor/disk.d.ts +6 -0
- package/dist/accessor/disk.d.ts.map +1 -1
- package/dist/accessor/disk.js +8 -0
- package/dist/accessor/disk.js.map +1 -1
- package/dist/accessor/email.d.ts.map +1 -1
- package/dist/accessor/email.js +5 -0
- package/dist/accessor/email.js.map +1 -1
- package/dist/accessor/gridfs.d.ts.map +1 -1
- package/dist/accessor/gridfs.js +6 -1
- package/dist/accessor/gridfs.js.map +1 -1
- package/dist/accessor/hf_hub.d.ts +3 -7
- package/dist/accessor/hf_hub.d.ts.map +1 -1
- package/dist/accessor/hf_hub.js +10 -10
- package/dist/accessor/hf_hub.js.map +1 -1
- package/dist/cache/file/redis.d.ts +8 -7
- package/dist/cache/file/redis.d.ts.map +1 -1
- package/dist/cache/file/redis.js +46 -50
- package/dist/cache/file/redis.js.map +1 -1
- package/dist/commands/builtin/utils/http.js +13 -5
- package/dist/commands/builtin/utils/http.js.map +1 -1
- package/dist/commands/cli/builtin/hf/index.d.ts.map +1 -1
- package/dist/commands/cli/builtin/hf/index.js +4 -5
- package/dist/commands/cli/builtin/hf/index.js.map +1 -1
- package/dist/commands/cli/builtin/hf/upload.d.ts.map +1 -1
- package/dist/commands/cli/builtin/hf/upload.js +2 -5
- package/dist/commands/cli/builtin/hf/upload.js.map +1 -1
- package/dist/commands/cli/builtin/himalaya/builder.d.ts +2 -2
- package/dist/commands/cli/builtin/himalaya/builder.d.ts.map +1 -1
- package/dist/commands/cli/builtin/himalaya/builder.js +1 -1
- package/dist/commands/cli/builtin/himalaya/builder.js.map +1 -1
- package/dist/commands/cli/builtin/himalaya/deliver.d.ts +35 -7
- package/dist/commands/cli/builtin/himalaya/deliver.d.ts.map +1 -1
- package/dist/commands/cli/builtin/himalaya/deliver.js.map +1 -1
- package/dist/commands/cli/builtin/himalaya/index.d.ts.map +1 -1
- package/dist/commands/cli/builtin/himalaya/index.js +4 -5
- package/dist/commands/cli/builtin/himalaya/index.js.map +1 -1
- package/dist/commands/cli/builtin/himalaya/query.d.ts +2 -2
- package/dist/commands/cli/builtin/himalaya/query.d.ts.map +1 -1
- package/dist/commands/cli/builtin/himalaya/query.js +1 -1
- package/dist/commands/cli/builtin/himalaya/query.js.map +1 -1
- package/dist/commands/cli/builtin/himalaya/send.d.ts.map +1 -1
- package/dist/commands/cli/builtin/himalaya/send.js +2 -1
- package/dist/commands/cli/builtin/himalaya/send.js.map +1 -1
- package/dist/commands/cli/builtin/himalaya/smtp.d.ts +2 -2
- package/dist/commands/cli/builtin/himalaya/smtp.d.ts.map +1 -1
- package/dist/commands/cli/builtin/himalaya/smtp.js +5 -0
- package/dist/commands/cli/builtin/himalaya/smtp.js.map +1 -1
- package/dist/commands/cli/builtin/himalaya/util.d.ts +1 -1
- package/dist/commands/cli/builtin/himalaya/util.d.ts.map +1 -1
- package/dist/commands/cli/builtin/himalaya/util.js +6 -5
- package/dist/commands/cli/builtin/himalaya/util.js.map +1 -1
- package/dist/config.d.ts +57 -37
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +152 -277
- package/dist/config.js.map +1 -1
- package/dist/core/disk/capacity.d.ts +13 -0
- package/dist/core/disk/capacity.d.ts.map +1 -0
- package/dist/core/disk/capacity.js +93 -0
- package/dist/core/disk/capacity.js.map +1 -0
- package/dist/core/disk/constants.d.ts +0 -1
- package/dist/core/disk/constants.d.ts.map +1 -1
- package/dist/core/disk/constants.js +0 -1
- package/dist/core/disk/constants.js.map +1 -1
- package/dist/core/disk/copy.d.ts.map +1 -1
- package/dist/core/disk/copy.js +24 -13
- package/dist/core/disk/copy.js.map +1 -1
- package/dist/core/disk/mkdir.d.ts.map +1 -1
- package/dist/core/disk/mkdir.js +9 -0
- package/dist/core/disk/mkdir.js.map +1 -1
- package/dist/core/disk/read.d.ts +3 -3
- package/dist/core/disk/read.d.ts.map +1 -1
- package/dist/core/disk/read.js +4 -19
- package/dist/core/disk/read.js.map +1 -1
- package/dist/core/disk/rename.d.ts +3 -0
- package/dist/core/disk/rename.d.ts.map +1 -1
- package/dist/core/disk/rename.js +15 -1
- package/dist/core/disk/rename.js.map +1 -1
- package/dist/core/disk/rm.d.ts.map +1 -1
- package/dist/core/disk/rm.js +11 -1
- package/dist/core/disk/rm.js.map +1 -1
- package/dist/core/disk/rmdir.d.ts.map +1 -1
- package/dist/core/disk/rmdir.js +4 -0
- package/dist/core/disk/rmdir.js.map +1 -1
- package/dist/core/disk/set_attrs.d.ts +2 -9
- package/dist/core/disk/set_attrs.d.ts.map +1 -1
- package/dist/core/disk/set_attrs.js +2 -1
- package/dist/core/disk/set_attrs.js.map +1 -1
- package/dist/core/disk/stream.d.ts +8 -0
- package/dist/core/disk/stream.d.ts.map +1 -1
- package/dist/core/disk/stream.js +33 -13
- package/dist/core/disk/stream.js.map +1 -1
- package/dist/core/disk/unlink.d.ts.map +1 -1
- package/dist/core/disk/unlink.js +4 -0
- package/dist/core/disk/unlink.js.map +1 -1
- package/dist/core/disk/utils.d.ts +2 -0
- package/dist/core/disk/utils.d.ts.map +1 -1
- package/dist/core/disk/utils.js +68 -21
- package/dist/core/disk/utils.js.map +1 -1
- package/dist/core/disk/write.d.ts +7 -2
- package/dist/core/disk/write.d.ts.map +1 -1
- package/dist/core/disk/write.js +22 -16
- package/dist/core/disk/write.js.map +1 -1
- package/dist/core/email/_parse.d.ts +60 -12
- package/dist/core/email/_parse.d.ts.map +1 -1
- package/dist/core/email/_parse.js +2 -2
- package/dist/core/email/_parse.js.map +1 -1
- package/dist/core/email/client.d.ts +36 -9
- package/dist/core/email/client.d.ts.map +1 -1
- package/dist/core/email/client.js +15 -0
- package/dist/core/email/client.js.map +1 -1
- package/dist/core/email/config.d.ts +6 -9
- package/dist/core/email/config.d.ts.map +1 -1
- package/dist/core/email/config.js +31 -27
- package/dist/core/email/config.js.map +1 -1
- package/dist/core/email/readdir.d.ts +2 -2
- package/dist/core/email/readdir.d.ts.map +1 -1
- package/dist/core/email/readdir.js +1 -1
- package/dist/core/email/readdir.js.map +1 -1
- package/dist/core/email/render.d.ts +5 -5
- package/dist/core/email/render.d.ts.map +1 -1
- package/dist/core/email/render.js.map +1 -1
- package/dist/core/email/search.d.ts +2 -2
- package/dist/core/email/search.d.ts.map +1 -1
- package/dist/core/email/search.js +1 -1
- package/dist/core/email/search.js.map +1 -1
- package/dist/core/gridfs/client.d.ts +25 -2
- package/dist/core/gridfs/client.d.ts.map +1 -1
- package/dist/core/gridfs/client.js +74 -7
- package/dist/core/gridfs/client.js.map +1 -1
- package/dist/core/gridfs/constants.d.ts +1 -0
- package/dist/core/gridfs/constants.d.ts.map +1 -1
- package/dist/core/gridfs/constants.js +5 -0
- package/dist/core/gridfs/constants.js.map +1 -1
- package/dist/core/gridfs/driver.d.ts +1 -0
- package/dist/core/gridfs/driver.d.ts.map +1 -1
- package/dist/core/gridfs/driver.js +80 -67
- package/dist/core/gridfs/driver.js.map +1 -1
- package/dist/core/gridfs/events.d.ts +8 -3
- package/dist/core/gridfs/events.d.ts.map +1 -1
- package/dist/core/gridfs/events.js +11 -3
- package/dist/core/gridfs/events.js.map +1 -1
- package/dist/core/gridfs/read.d.ts +2 -7
- package/dist/core/gridfs/read.d.ts.map +1 -1
- package/dist/core/gridfs/read.js +4 -9
- package/dist/core/gridfs/read.js.map +1 -1
- package/dist/core/gridfs/stream.d.ts.map +1 -1
- package/dist/core/gridfs/stream.js +5 -2
- package/dist/core/gridfs/stream.js.map +1 -1
- package/dist/core/gridfs/write.d.ts +1 -1
- package/dist/core/gridfs/write.d.ts.map +1 -1
- package/dist/core/gridfs/write.js +2 -2
- package/dist/core/gridfs/write.js.map +1 -1
- package/dist/core/hf_buckets/driver.d.ts.map +1 -1
- package/dist/core/hf_buckets/driver.js +16 -0
- package/dist/core/hf_buckets/driver.js.map +1 -1
- package/dist/core/hf_buckets/read.d.ts +2 -6
- package/dist/core/hf_buckets/read.d.ts.map +1 -1
- package/dist/core/hf_buckets/read.js +1 -1
- package/dist/core/hf_buckets/read.js.map +1 -1
- package/dist/core/hf_buckets/stream.d.ts.map +1 -1
- package/dist/core/hf_buckets/stream.js +2 -0
- package/dist/core/hf_buckets/stream.js.map +1 -1
- package/dist/core/hf_hub/admin.d.ts +3 -4
- package/dist/core/hf_hub/admin.d.ts.map +1 -1
- package/dist/core/hf_hub/admin.js +4 -4
- package/dist/core/hf_hub/admin.js.map +1 -1
- package/dist/core/hf_hub/client.d.ts +11 -24
- package/dist/core/hf_hub/client.d.ts.map +1 -1
- package/dist/core/hf_hub/client.js +40 -97
- package/dist/core/hf_hub/client.js.map +1 -1
- package/dist/core/hf_hub/commit.d.ts +8 -9
- package/dist/core/hf_hub/commit.d.ts.map +1 -1
- package/dist/core/hf_hub/commit.js +4 -6
- package/dist/core/hf_hub/commit.js.map +1 -1
- package/dist/core/hf_hub/config.d.ts +5 -4
- package/dist/core/hf_hub/config.d.ts.map +1 -1
- package/dist/core/hf_hub/config.js +3 -1
- package/dist/core/hf_hub/config.js.map +1 -1
- package/dist/core/hf_hub/constants.d.ts +0 -1
- package/dist/core/hf_hub/constants.d.ts.map +1 -1
- package/dist/core/hf_hub/constants.js +0 -1
- package/dist/core/hf_hub/constants.js.map +1 -1
- package/dist/core/hf_hub/read.d.ts +2 -5
- package/dist/core/hf_hub/read.d.ts.map +1 -1
- package/dist/core/hf_hub/read.js.map +1 -1
- package/dist/core/hf_hub/stream.d.ts.map +1 -1
- package/dist/core/hf_hub/stream.js +2 -0
- package/dist/core/hf_hub/stream.js.map +1 -1
- package/dist/core/nextcloud/capacity.js.map +1 -1
- package/dist/core/nextcloud/checksum.js +4 -3
- package/dist/core/nextcloud/checksum.js.map +1 -1
- package/dist/core/nextcloud/constants.d.ts +2 -0
- package/dist/core/nextcloud/constants.d.ts.map +1 -1
- package/dist/core/nextcloud/constants.js +4 -0
- package/dist/core/nextcloud/constants.js.map +1 -1
- package/dist/core/nextcloud/copy.js.map +1 -1
- package/dist/core/nextcloud/dav.d.ts +9 -3
- package/dist/core/nextcloud/dav.d.ts.map +1 -1
- package/dist/core/nextcloud/dav.js +20 -2
- package/dist/core/nextcloud/dav.js.map +1 -1
- package/dist/core/nextcloud/read.d.ts +2 -6
- package/dist/core/nextcloud/read.d.ts.map +1 -1
- package/dist/core/nextcloud/read.js +1 -1
- package/dist/core/nextcloud/read.js.map +1 -1
- package/dist/core/nextcloud/search/query.js +2 -2
- package/dist/core/nextcloud/search/query.js.map +1 -1
- package/dist/core/nextcloud/search/response.d.ts +3 -2
- package/dist/core/nextcloud/search/response.d.ts.map +1 -1
- package/dist/core/nextcloud/search/response.js +5 -5
- package/dist/core/nextcloud/search/response.js.map +1 -1
- package/dist/core/nextcloud/search/types.d.ts +1 -1
- package/dist/core/nextcloud/search/types.d.ts.map +1 -1
- package/dist/core/nextcloud/set_attrs.js.map +1 -1
- package/dist/core/nextcloud/stat.d.ts.map +1 -1
- package/dist/core/nextcloud/stat.js +7 -9
- package/dist/core/nextcloud/stat.js.map +1 -1
- package/dist/core/nextcloud/stream.d.ts.map +1 -1
- package/dist/core/nextcloud/stream.js +2 -0
- package/dist/core/nextcloud/stream.js.map +1 -1
- package/dist/core/nextcloud/write.d.ts +7 -1
- package/dist/core/nextcloud/write.d.ts.map +1 -1
- package/dist/core/nextcloud/write.js +81 -8
- package/dist/core/nextcloud/write.js.map +1 -1
- package/dist/core/ssh/append.d.ts +1 -2
- package/dist/core/ssh/append.d.ts.map +1 -1
- package/dist/core/ssh/append.js +1 -4
- package/dist/core/ssh/append.js.map +1 -1
- package/dist/core/ssh/checksum.d.ts.map +1 -1
- package/dist/core/ssh/checksum.js +1 -0
- package/dist/core/ssh/checksum.js.map +1 -1
- package/dist/core/ssh/rm.d.ts.map +1 -1
- package/dist/core/ssh/rm.js +15 -6
- package/dist/core/ssh/rm.js.map +1 -1
- package/dist/core/ssh/rmdir.d.ts.map +1 -1
- package/dist/core/ssh/rmdir.js +2 -22
- package/dist/core/ssh/rmdir.js.map +1 -1
- package/dist/core/ssh/set_attrs.d.ts +2 -9
- package/dist/core/ssh/set_attrs.d.ts.map +1 -1
- package/dist/core/ssh/set_attrs.js +1 -1
- package/dist/core/ssh/set_attrs.js.map +1 -1
- package/dist/core/ssh/stat.d.ts.map +1 -1
- package/dist/core/ssh/stat.js +5 -4
- package/dist/core/ssh/stat.js.map +1 -1
- package/dist/core/ssh/stream.d.ts.map +1 -1
- package/dist/core/ssh/stream.js +10 -1
- package/dist/core/ssh/stream.js.map +1 -1
- package/dist/core/ssh/utils.d.ts +8 -2
- package/dist/core/ssh/utils.d.ts.map +1 -1
- package/dist/core/ssh/utils.js +24 -3
- package/dist/core/ssh/utils.js.map +1 -1
- package/dist/core/ssh/write.d.ts +1 -2
- package/dist/core/ssh/write.d.ts.map +1 -1
- package/dist/core/ssh/write.js +1 -4
- package/dist/core/ssh/write.js.map +1 -1
- package/dist/fuse/constants.d.ts +3 -2
- package/dist/fuse/constants.d.ts.map +1 -1
- package/dist/fuse/constants.js +6 -3
- package/dist/fuse/constants.js.map +1 -1
- package/dist/fuse/fs.d.ts +1 -1
- package/dist/fuse/fs.d.ts.map +1 -1
- package/dist/fuse/fs.js +6 -3
- package/dist/fuse/fs.js.map +1 -1
- package/dist/fuse/mount.d.ts +5 -0
- package/dist/fuse/mount.d.ts.map +1 -1
- package/dist/fuse/mount.js +47 -15
- package/dist/fuse/mount.js.map +1 -1
- package/dist/index.d.ts +130 -159
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +86 -135
- package/dist/index.js.map +1 -1
- package/dist/io/gateway.d.ts +6 -0
- package/dist/io/gateway.d.ts.map +1 -0
- package/dist/io/gateway.js +357 -0
- package/dist/io/gateway.js.map +1 -0
- package/dist/io/network.d.ts +35 -0
- package/dist/io/network.d.ts.map +1 -0
- package/dist/io/network.js +187 -0
- package/dist/io/network.js.map +1 -0
- package/dist/io/spool.js +3 -3
- package/dist/io/spool.js.map +1 -1
- package/dist/mount/constants.d.ts +9 -2
- package/dist/mount/constants.d.ts.map +1 -1
- package/dist/mount/constants.js +9 -2
- package/dist/mount/constants.js.map +1 -1
- package/dist/mount/errors.d.ts +2 -11
- package/dist/mount/errors.d.ts.map +1 -1
- package/dist/mount/errors.js +28 -42
- package/dist/mount/errors.js.map +1 -1
- package/dist/mount/nfs.d.ts +2 -2
- package/dist/mount/nfs.d.ts.map +1 -1
- package/dist/mount/nfs.js +8 -20
- package/dist/mount/nfs.js.map +1 -1
- package/dist/mount/sftp.d.ts +3 -3
- package/dist/mount/sftp.d.ts.map +1 -1
- package/dist/mount/sftp.js +26 -53
- package/dist/mount/sftp.js.map +1 -1
- package/dist/observe/disk_store.js +1 -1
- package/dist/observe/disk_store.js.map +1 -1
- package/dist/runtime/js/host/constants.d.ts +1 -1
- package/dist/runtime/js/host/constants.d.ts.map +1 -1
- package/dist/runtime/js/host/constants.js +9 -8
- package/dist/runtime/js/host/constants.js.map +1 -1
- package/dist/runtime/js/host/descriptors.d.ts +11 -71
- package/dist/runtime/js/host/descriptors.d.ts.map +1 -1
- package/dist/runtime/js/host/descriptors.js +16 -202
- package/dist/runtime/js/host/descriptors.js.map +1 -1
- package/dist/runtime/js/host/fs.d.ts.map +1 -1
- package/dist/runtime/js/host/fs.js +491 -135
- package/dist/runtime/js/host/fs.js.map +1 -1
- package/dist/runtime/js/host/list.d.ts +21 -0
- package/dist/runtime/js/host/list.d.ts.map +1 -0
- package/dist/runtime/js/host/list.js +107 -0
- package/dist/runtime/js/host/list.js.map +1 -0
- package/dist/runtime/js/host/stat.d.ts +10 -0
- package/dist/runtime/js/host/stat.d.ts.map +1 -0
- package/dist/runtime/js/host/stat.js +70 -0
- package/dist/runtime/js/host/stat.js.map +1 -0
- package/dist/runtime/python/local/runtime.d.ts +8 -7
- package/dist/runtime/python/local/runtime.d.ts.map +1 -1
- package/dist/runtime/python/local/runtime.js +51 -74
- package/dist/runtime/python/local/runtime.js.map +1 -1
- package/dist/runtime/sandbox/apple_container/constants.d.ts +2 -3
- package/dist/runtime/sandbox/apple_container/constants.d.ts.map +1 -1
- package/dist/runtime/sandbox/apple_container/constants.js +4 -11
- package/dist/runtime/sandbox/apple_container/constants.js.map +1 -1
- package/dist/runtime/sandbox/apple_container/runtime.d.ts +14 -10
- package/dist/runtime/sandbox/apple_container/runtime.d.ts.map +1 -1
- package/dist/runtime/sandbox/apple_container/runtime.js +38 -57
- package/dist/runtime/sandbox/apple_container/runtime.js.map +1 -1
- package/dist/runtime/sandbox/daytona/constants.d.ts +27 -0
- package/dist/runtime/sandbox/daytona/constants.d.ts.map +1 -0
- package/dist/runtime/sandbox/daytona/constants.js +47 -0
- package/dist/runtime/sandbox/daytona/constants.js.map +1 -0
- package/dist/runtime/sandbox/daytona/runtime.d.ts +6 -4
- package/dist/runtime/sandbox/daytona/runtime.d.ts.map +1 -1
- package/dist/runtime/sandbox/daytona/runtime.js +13 -9
- package/dist/runtime/sandbox/daytona/runtime.js.map +1 -1
- package/dist/runtime/sandbox/docker/constants.d.ts +6 -1
- package/dist/runtime/sandbox/docker/constants.d.ts.map +1 -1
- package/dist/runtime/sandbox/docker/constants.js +6 -1
- package/dist/runtime/sandbox/docker/constants.js.map +1 -1
- package/dist/runtime/sandbox/docker/runtime.d.ts +8 -6
- package/dist/runtime/sandbox/docker/runtime.d.ts.map +1 -1
- package/dist/runtime/sandbox/docker/runtime.js +22 -28
- package/dist/runtime/sandbox/docker/runtime.js.map +1 -1
- package/dist/runtime/sandbox/microsandbox/constants.d.ts +1 -3
- package/dist/runtime/sandbox/microsandbox/constants.d.ts.map +1 -1
- package/dist/runtime/sandbox/microsandbox/constants.js +1 -5
- package/dist/runtime/sandbox/microsandbox/constants.js.map +1 -1
- package/dist/runtime/sandbox/microsandbox/runtime.d.ts +9 -8
- package/dist/runtime/sandbox/microsandbox/runtime.d.ts.map +1 -1
- package/dist/runtime/sandbox/microsandbox/runtime.js +26 -56
- package/dist/runtime/sandbox/microsandbox/runtime.js.map +1 -1
- package/dist/runtime/sandbox/program.d.ts +165 -0
- package/dist/runtime/sandbox/program.d.ts.map +1 -0
- package/dist/runtime/sandbox/program.js +724 -0
- package/dist/runtime/sandbox/program.js.map +1 -0
- package/dist/runtime/sandbox/sandlock/constants.d.ts +1 -1
- package/dist/runtime/sandbox/sandlock/constants.d.ts.map +1 -1
- package/dist/runtime/sandbox/sandlock/constants.js +1 -1
- package/dist/runtime/sandbox/sandlock/constants.js.map +1 -1
- package/dist/runtime/sandbox/sandlock/runtime.d.ts +5 -6
- package/dist/runtime/sandbox/sandlock/runtime.d.ts.map +1 -1
- package/dist/runtime/sandbox/sandlock/runtime.js +27 -16
- package/dist/runtime/sandbox/sandlock/runtime.js.map +1 -1
- package/dist/runtime/sandbox/smolvm/constants.d.ts +2 -3
- package/dist/runtime/sandbox/smolvm/constants.d.ts.map +1 -1
- package/dist/runtime/sandbox/smolvm/constants.js +6 -13
- package/dist/runtime/sandbox/smolvm/constants.js.map +1 -1
- package/dist/runtime/sandbox/smolvm/runtime.d.ts +9 -8
- package/dist/runtime/sandbox/smolvm/runtime.d.ts.map +1 -1
- package/dist/runtime/sandbox/smolvm/runtime.js +24 -45
- package/dist/runtime/sandbox/smolvm/runtime.js.map +1 -1
- package/dist/runtime/sandbox/ssh/runtime.d.ts +23 -12
- package/dist/runtime/sandbox/ssh/runtime.d.ts.map +1 -1
- package/dist/runtime/sandbox/ssh/runtime.js +88 -30
- package/dist/runtime/sandbox/ssh/runtime.js.map +1 -1
- package/dist/secrets/config.d.ts +2 -2
- package/dist/secrets/config.d.ts.map +1 -1
- package/dist/secrets/onepassword.d.ts +5 -8
- package/dist/secrets/onepassword.d.ts.map +1 -1
- package/dist/secrets/onepassword.js.map +1 -1
- package/dist/shell/console/redis/constants.d.ts +1 -0
- package/dist/shell/console/redis/constants.d.ts.map +1 -1
- package/dist/shell/console/redis/constants.js +3 -0
- package/dist/shell/console/redis/constants.js.map +1 -1
- package/dist/shell/console/redis/store.d.ts +24 -9
- package/dist/shell/console/redis/store.d.ts.map +1 -1
- package/dist/shell/console/redis/store.js +48 -16
- package/dist/shell/console/redis/store.js.map +1 -1
- package/dist/shell/job_table/redis.d.ts +52 -0
- package/dist/shell/job_table/redis.d.ts.map +1 -0
- package/dist/shell/job_table/redis.js +156 -0
- package/dist/shell/job_table/redis.js.map +1 -0
- package/dist/utils/loader.d.ts.map +1 -1
- package/dist/utils/loader.js +1 -3
- package/dist/utils/loader.js.map +1 -1
- package/dist/vfs/aliyun/aliyun.d.ts +4 -5
- package/dist/vfs/aliyun/aliyun.d.ts.map +1 -1
- package/dist/vfs/aliyun/aliyun.js +2 -4
- package/dist/vfs/aliyun/aliyun.js.map +1 -1
- package/dist/vfs/aliyun/config.d.ts +40 -6
- package/dist/vfs/aliyun/config.d.ts.map +1 -1
- package/dist/vfs/aliyun/config.js +5 -6
- package/dist/vfs/aliyun/config.js.map +1 -1
- package/dist/vfs/backblaze/backblaze.d.ts +4 -5
- package/dist/vfs/backblaze/backblaze.d.ts.map +1 -1
- package/dist/vfs/backblaze/backblaze.js +2 -4
- package/dist/vfs/backblaze/backblaze.js.map +1 -1
- package/dist/vfs/backblaze/config.d.ts +40 -6
- package/dist/vfs/backblaze/config.d.ts.map +1 -1
- package/dist/vfs/backblaze/config.js +5 -6
- package/dist/vfs/backblaze/config.js.map +1 -1
- package/dist/vfs/ceph/ceph.d.ts +4 -5
- package/dist/vfs/ceph/ceph.d.ts.map +1 -1
- package/dist/vfs/ceph/ceph.js +2 -4
- package/dist/vfs/ceph/ceph.js.map +1 -1
- package/dist/vfs/ceph/config.d.ts +42 -5
- package/dist/vfs/ceph/config.d.ts.map +1 -1
- package/dist/vfs/ceph/config.js +7 -5
- package/dist/vfs/ceph/config.js.map +1 -1
- package/dist/vfs/databricks_volume/config.d.ts +2 -2
- package/dist/vfs/databricks_volume/config.d.ts.map +1 -1
- package/dist/vfs/databricks_volume/config.js +1 -1
- package/dist/vfs/databricks_volume/config.js.map +1 -1
- package/dist/vfs/databricks_volume/databricks_volume.d.ts +6 -9
- package/dist/vfs/databricks_volume/databricks_volume.d.ts.map +1 -1
- package/dist/vfs/databricks_volume/databricks_volume.js +4 -9
- package/dist/vfs/databricks_volume/databricks_volume.js.map +1 -1
- package/dist/vfs/digitalocean/config.d.ts +40 -6
- package/dist/vfs/digitalocean/config.d.ts.map +1 -1
- package/dist/vfs/digitalocean/config.js +5 -6
- package/dist/vfs/digitalocean/config.js.map +1 -1
- package/dist/vfs/digitalocean/digitalocean.d.ts +4 -5
- package/dist/vfs/digitalocean/digitalocean.d.ts.map +1 -1
- package/dist/vfs/digitalocean/digitalocean.js +2 -4
- package/dist/vfs/digitalocean/digitalocean.js.map +1 -1
- package/dist/vfs/discord/discord.d.ts +7 -10
- package/dist/vfs/discord/discord.d.ts.map +1 -1
- package/dist/vfs/discord/discord.js +7 -12
- package/dist/vfs/discord/discord.js.map +1 -1
- package/dist/vfs/disk/disk.d.ts +14 -14
- package/dist/vfs/disk/disk.d.ts.map +1 -1
- package/dist/vfs/disk/disk.js +87 -52
- package/dist/vfs/disk/disk.js.map +1 -1
- package/dist/vfs/dropbox/config.d.ts +7 -12
- package/dist/vfs/dropbox/config.d.ts.map +1 -1
- package/dist/vfs/dropbox/config.js +18 -15
- package/dist/vfs/dropbox/config.js.map +1 -1
- package/dist/vfs/email/email.d.ts +13 -11
- package/dist/vfs/email/email.d.ts.map +1 -1
- package/dist/vfs/email/email.js +31 -16
- package/dist/vfs/email/email.js.map +1 -1
- package/dist/vfs/email/index.d.ts +1 -2
- package/dist/vfs/email/index.d.ts.map +1 -1
- package/dist/vfs/email/index.js +1 -2
- package/dist/vfs/email/index.js.map +1 -1
- package/dist/vfs/gcs/config.d.ts +36 -28
- package/dist/vfs/gcs/config.d.ts.map +1 -1
- package/dist/vfs/gcs/config.js +15 -39
- package/dist/vfs/gcs/config.js.map +1 -1
- package/dist/vfs/gcs/gcs.d.ts +4 -5
- package/dist/vfs/gcs/gcs.d.ts.map +1 -1
- package/dist/vfs/gcs/gcs.js +2 -4
- package/dist/vfs/gcs/gcs.js.map +1 -1
- package/dist/vfs/gridfs/config.d.ts +6 -7
- package/dist/vfs/gridfs/config.d.ts.map +1 -1
- package/dist/vfs/gridfs/config.js +25 -11
- package/dist/vfs/gridfs/config.js.map +1 -1
- package/dist/vfs/gridfs/gridfs.d.ts +10 -18
- package/dist/vfs/gridfs/gridfs.d.ts.map +1 -1
- package/dist/vfs/gridfs/gridfs.js +23 -40
- package/dist/vfs/gridfs/gridfs.js.map +1 -1
- package/dist/vfs/hf_buckets/config.d.ts +14 -17
- package/dist/vfs/hf_buckets/config.d.ts.map +1 -1
- package/dist/vfs/hf_buckets/config.js +41 -28
- package/dist/vfs/hf_buckets/config.js.map +1 -1
- package/dist/vfs/hf_buckets/hf_buckets.d.ts +10 -15
- package/dist/vfs/hf_buckets/hf_buckets.d.ts.map +1 -1
- package/dist/vfs/hf_buckets/hf_buckets.js +14 -22
- package/dist/vfs/hf_buckets/hf_buckets.js.map +1 -1
- package/dist/vfs/hf_datasets/config.d.ts +1 -4
- package/dist/vfs/hf_datasets/config.d.ts.map +1 -1
- package/dist/vfs/hf_datasets/config.js +1 -3
- package/dist/vfs/hf_datasets/config.js.map +1 -1
- package/dist/vfs/hf_datasets/hf_datasets.d.ts +4 -7
- package/dist/vfs/hf_datasets/hf_datasets.d.ts.map +1 -1
- package/dist/vfs/hf_datasets/hf_datasets.js +4 -6
- package/dist/vfs/hf_datasets/hf_datasets.js.map +1 -1
- package/dist/vfs/hf_hub/base.d.ts +4 -8
- package/dist/vfs/hf_hub/base.d.ts.map +1 -1
- package/dist/vfs/hf_hub/base.js +7 -11
- package/dist/vfs/hf_hub/base.js.map +1 -1
- package/dist/vfs/hf_models/config.d.ts +1 -4
- package/dist/vfs/hf_models/config.d.ts.map +1 -1
- package/dist/vfs/hf_models/config.js +1 -3
- package/dist/vfs/hf_models/config.js.map +1 -1
- package/dist/vfs/hf_models/hf_models.d.ts +4 -7
- package/dist/vfs/hf_models/hf_models.d.ts.map +1 -1
- package/dist/vfs/hf_models/hf_models.js +4 -6
- package/dist/vfs/hf_models/hf_models.js.map +1 -1
- package/dist/vfs/hf_spaces/config.d.ts +1 -4
- package/dist/vfs/hf_spaces/config.d.ts.map +1 -1
- package/dist/vfs/hf_spaces/config.js +1 -3
- package/dist/vfs/hf_spaces/config.js.map +1 -1
- package/dist/vfs/hf_spaces/hf_spaces.d.ts +4 -7
- package/dist/vfs/hf_spaces/hf_spaces.d.ts.map +1 -1
- package/dist/vfs/hf_spaces/hf_spaces.js +4 -6
- package/dist/vfs/hf_spaces/hf_spaces.js.map +1 -1
- package/dist/vfs/jaeger/jaeger.d.ts +7 -9
- package/dist/vfs/jaeger/jaeger.d.ts.map +1 -1
- package/dist/vfs/jaeger/jaeger.js +7 -11
- package/dist/vfs/jaeger/jaeger.js.map +1 -1
- package/dist/vfs/lancedb/lancedb.d.ts +10 -11
- package/dist/vfs/lancedb/lancedb.d.ts.map +1 -1
- package/dist/vfs/lancedb/lancedb.js +4 -5
- package/dist/vfs/lancedb/lancedb.js.map +1 -1
- package/dist/vfs/lancedb/store.d.ts +2 -2
- package/dist/vfs/lancedb/store.d.ts.map +1 -1
- package/dist/vfs/lancedb/store.js +3 -0
- package/dist/vfs/lancedb/store.js.map +1 -1
- package/dist/vfs/minio/config.d.ts +42 -5
- package/dist/vfs/minio/config.d.ts.map +1 -1
- package/dist/vfs/minio/config.js +7 -5
- package/dist/vfs/minio/config.js.map +1 -1
- package/dist/vfs/minio/minio.d.ts +4 -5
- package/dist/vfs/minio/minio.d.ts.map +1 -1
- package/dist/vfs/minio/minio.js +2 -4
- package/dist/vfs/minio/minio.js.map +1 -1
- package/dist/vfs/mongodb/mongodb.d.ts +10 -11
- package/dist/vfs/mongodb/mongodb.d.ts.map +1 -1
- package/dist/vfs/mongodb/mongodb.js +6 -7
- package/dist/vfs/mongodb/mongodb.js.map +1 -1
- package/dist/vfs/mongodb/store.d.ts +2 -1
- package/dist/vfs/mongodb/store.d.ts.map +1 -1
- package/dist/vfs/mongodb/store.js +11 -3
- package/dist/vfs/mongodb/store.js.map +1 -1
- package/dist/vfs/nextcloud/config.d.ts +5 -8
- package/dist/vfs/nextcloud/config.d.ts.map +1 -1
- package/dist/vfs/nextcloud/config.js +19 -13
- package/dist/vfs/nextcloud/config.js.map +1 -1
- package/dist/vfs/nextcloud/nextcloud.d.ts +8 -14
- package/dist/vfs/nextcloud/nextcloud.d.ts.map +1 -1
- package/dist/vfs/nextcloud/nextcloud.js +18 -29
- package/dist/vfs/nextcloud/nextcloud.js.map +1 -1
- package/dist/vfs/notion/notion.d.ts +7 -10
- package/dist/vfs/notion/notion.d.ts.map +1 -1
- package/dist/vfs/notion/notion.js +7 -10
- package/dist/vfs/notion/notion.js.map +1 -1
- package/dist/vfs/oci/config.d.ts +41 -27
- package/dist/vfs/oci/config.d.ts.map +1 -1
- package/dist/vfs/oci/config.js +18 -45
- package/dist/vfs/oci/config.js.map +1 -1
- package/dist/vfs/oci/oci.d.ts +4 -5
- package/dist/vfs/oci/oci.d.ts.map +1 -1
- package/dist/vfs/oci/oci.js +2 -4
- package/dist/vfs/oci/oci.js.map +1 -1
- package/dist/vfs/postgres/postgres.d.ts +10 -11
- package/dist/vfs/postgres/postgres.d.ts.map +1 -1
- package/dist/vfs/postgres/postgres.js +5 -6
- package/dist/vfs/postgres/postgres.js.map +1 -1
- package/dist/vfs/postgres/store.d.ts +3 -3
- package/dist/vfs/postgres/store.d.ts.map +1 -1
- package/dist/vfs/postgres/store.js +1 -0
- package/dist/vfs/postgres/store.js.map +1 -1
- package/dist/vfs/qingstor/config.d.ts +40 -6
- package/dist/vfs/qingstor/config.d.ts.map +1 -1
- package/dist/vfs/qingstor/config.js +5 -6
- package/dist/vfs/qingstor/config.js.map +1 -1
- package/dist/vfs/qingstor/qingstor.d.ts +4 -5
- package/dist/vfs/qingstor/qingstor.d.ts.map +1 -1
- package/dist/vfs/qingstor/qingstor.js +2 -4
- package/dist/vfs/qingstor/qingstor.js.map +1 -1
- package/dist/vfs/r2/config.d.ts +39 -28
- package/dist/vfs/r2/config.d.ts.map +1 -1
- package/dist/vfs/r2/config.js +24 -48
- package/dist/vfs/r2/config.js.map +1 -1
- package/dist/vfs/r2/r2.d.ts +4 -5
- package/dist/vfs/r2/r2.d.ts.map +1 -1
- package/dist/vfs/r2/r2.js +2 -4
- package/dist/vfs/r2/r2.js.map +1 -1
- package/dist/vfs/redis/redis.d.ts +3 -0
- package/dist/vfs/redis/redis.d.ts.map +1 -1
- package/dist/vfs/redis/redis.js +1 -1
- package/dist/vfs/redis/redis.js.map +1 -1
- package/dist/vfs/redis/store.d.ts +2 -0
- package/dist/vfs/redis/store.d.ts.map +1 -1
- package/dist/vfs/redis/store.js +13 -2
- package/dist/vfs/redis/store.js.map +1 -1
- package/dist/vfs/registry.d.ts.map +1 -1
- package/dist/vfs/registry.js +111 -105
- package/dist/vfs/registry.js.map +1 -1
- package/dist/vfs/s3/config.d.ts +12 -23
- package/dist/vfs/s3/config.d.ts.map +1 -1
- package/dist/vfs/s3/config.js +16 -31
- package/dist/vfs/s3/config.js.map +1 -1
- package/dist/vfs/s3/s3.d.ts +6 -9
- package/dist/vfs/s3/s3.d.ts.map +1 -1
- package/dist/vfs/s3/s3.js +11 -14
- package/dist/vfs/s3/s3.js.map +1 -1
- package/dist/vfs/s3_alias.d.ts +69 -53
- package/dist/vfs/s3_alias.d.ts.map +1 -1
- package/dist/vfs/s3_alias.js +86 -82
- package/dist/vfs/s3_alias.js.map +1 -1
- package/dist/vfs/scaleway/config.d.ts +40 -6
- package/dist/vfs/scaleway/config.d.ts.map +1 -1
- package/dist/vfs/scaleway/config.js +5 -6
- package/dist/vfs/scaleway/config.js.map +1 -1
- package/dist/vfs/scaleway/scaleway.d.ts +4 -5
- package/dist/vfs/scaleway/scaleway.d.ts.map +1 -1
- package/dist/vfs/scaleway/scaleway.js +2 -4
- package/dist/vfs/scaleway/scaleway.js.map +1 -1
- package/dist/vfs/seaweedfs/config.d.ts +42 -5
- package/dist/vfs/seaweedfs/config.d.ts.map +1 -1
- package/dist/vfs/seaweedfs/config.js +7 -5
- package/dist/vfs/seaweedfs/config.js.map +1 -1
- package/dist/vfs/seaweedfs/seaweedfs.d.ts +4 -5
- package/dist/vfs/seaweedfs/seaweedfs.d.ts.map +1 -1
- package/dist/vfs/seaweedfs/seaweedfs.js +2 -4
- package/dist/vfs/seaweedfs/seaweedfs.js.map +1 -1
- package/dist/vfs/slack/slack.d.ts +7 -10
- package/dist/vfs/slack/slack.d.ts.map +1 -1
- package/dist/vfs/slack/slack.js +7 -12
- package/dist/vfs/slack/slack.js.map +1 -1
- package/dist/vfs/ssh/config.d.ts +5 -9
- package/dist/vfs/ssh/config.d.ts.map +1 -1
- package/dist/vfs/ssh/config.js +28 -18
- package/dist/vfs/ssh/config.js.map +1 -1
- package/dist/vfs/ssh/ssh.d.ts +8 -17
- package/dist/vfs/ssh/ssh.d.ts.map +1 -1
- package/dist/vfs/ssh/ssh.js +25 -43
- package/dist/vfs/ssh/ssh.js.map +1 -1
- package/dist/vfs/supabase/config.d.ts +40 -27
- package/dist/vfs/supabase/config.d.ts.map +1 -1
- package/dist/vfs/supabase/config.js +24 -48
- package/dist/vfs/supabase/config.js.map +1 -1
- package/dist/vfs/supabase/supabase.d.ts +4 -5
- package/dist/vfs/supabase/supabase.d.ts.map +1 -1
- package/dist/vfs/supabase/supabase.js +2 -4
- package/dist/vfs/supabase/supabase.js.map +1 -1
- package/dist/vfs/tencent/config.d.ts +40 -6
- package/dist/vfs/tencent/config.d.ts.map +1 -1
- package/dist/vfs/tencent/config.js +5 -6
- package/dist/vfs/tencent/config.js.map +1 -1
- package/dist/vfs/tencent/tencent.d.ts +4 -5
- package/dist/vfs/tencent/tencent.d.ts.map +1 -1
- package/dist/vfs/tencent/tencent.js +2 -4
- package/dist/vfs/tencent/tencent.js.map +1 -1
- package/dist/vfs/tidb_filesystem/config.d.ts +2 -0
- package/dist/vfs/tidb_filesystem/config.d.ts.map +1 -0
- package/dist/{mount/types.js → vfs/tidb_filesystem/config.js} +2 -2
- package/dist/vfs/tidb_filesystem/config.js.map +1 -0
- package/dist/vfs/tidb_filesystem/tidb_filesystem.d.ts +16 -0
- package/dist/vfs/tidb_filesystem/tidb_filesystem.d.ts.map +1 -0
- package/dist/vfs/tidb_filesystem/tidb_filesystem.js +39 -0
- package/dist/vfs/tidb_filesystem/tidb_filesystem.js.map +1 -0
- package/dist/vfs/wasabi/config.d.ts +35 -28
- package/dist/vfs/wasabi/config.d.ts.map +1 -1
- package/dist/vfs/wasabi/config.js +20 -45
- package/dist/vfs/wasabi/config.js.map +1 -1
- package/dist/vfs/wasabi/wasabi.d.ts +4 -5
- package/dist/vfs/wasabi/wasabi.d.ts.map +1 -1
- package/dist/vfs/wasabi/wasabi.js +2 -4
- package/dist/vfs/wasabi/wasabi.js.map +1 -1
- package/dist/workspace/{session → mount/namespace}/cas.lua +7 -2
- package/dist/workspace/mount/namespace/disk.d.ts +12 -7
- package/dist/workspace/mount/namespace/disk.d.ts.map +1 -1
- package/dist/workspace/mount/namespace/disk.js +37 -21
- package/dist/workspace/mount/namespace/disk.js.map +1 -1
- package/dist/workspace/mount/namespace/redis.d.ts +14 -9
- package/dist/workspace/mount/namespace/redis.d.ts.map +1 -1
- package/dist/workspace/mount/namespace/redis.js +29 -14
- package/dist/workspace/mount/namespace/redis.js.map +1 -1
- package/dist/workspace/nfs.d.ts.map +1 -1
- package/dist/workspace/nfs.js +3 -1
- package/dist/workspace/nfs.js.map +1 -1
- package/dist/workspace/record/disk.d.ts +12 -5
- package/dist/workspace/record/disk.d.ts.map +1 -1
- package/dist/workspace/record/disk.js +119 -72
- package/dist/workspace/record/disk.js.map +1 -1
- package/dist/workspace/store/disk.d.ts +12 -5
- package/dist/workspace/store/disk.d.ts.map +1 -1
- package/dist/workspace/store/disk.js +20 -4
- package/dist/workspace/store/disk.js.map +1 -1
- package/dist/workspace/store/redis.d.ts +13 -7
- package/dist/workspace/store/redis.d.ts.map +1 -1
- package/dist/workspace/store/redis.js +53 -26
- package/dist/workspace/store/redis.js.map +1 -1
- package/dist/workspace.d.ts +3 -1
- package/dist/workspace.d.ts.map +1 -1
- package/dist/workspace.js +22 -21
- package/dist/workspace.js.map +1 -1
- package/package.json +13 -17
- package/dist/compression_codecs.d.ts +0 -2
- package/dist/compression_codecs.d.ts.map +0 -1
- package/dist/compression_codecs.js +0 -42
- package/dist/compression_codecs.js.map +0 -1
- package/dist/core/disk/append.d.ts +0 -4
- package/dist/core/disk/append.d.ts.map +0 -1
- package/dist/core/disk/append.js +0 -30
- package/dist/core/disk/append.js.map +0 -1
- package/dist/mount/core.d.ts +0 -313
- package/dist/mount/core.d.ts.map +0 -1
- package/dist/mount/core.js +0 -915
- package/dist/mount/core.js.map +0 -1
- package/dist/mount/platform/macos.d.ts +0 -2
- package/dist/mount/platform/macos.d.ts.map +0 -1
- package/dist/mount/platform/macos.js +0 -23
- package/dist/mount/platform/macos.js.map +0 -1
- package/dist/mount/types.d.ts +0 -37
- package/dist/mount/types.d.ts.map +0 -1
- package/dist/mount/types.js.map +0 -1
- package/dist/observe/redis_store.d.ts +0 -27
- package/dist/observe/redis_store.d.ts.map +0 -1
- package/dist/observe/redis_store.js +0 -81
- package/dist/observe/redis_store.js.map +0 -1
- package/dist/runtime/sandbox/cli.d.ts +0 -56
- package/dist/runtime/sandbox/cli.d.ts.map +0 -1
- package/dist/runtime/sandbox/cli.js +0 -260
- package/dist/runtime/sandbox/cli.js.map +0 -1
- package/dist/runtime/sandbox/ssh/constants.d.ts +0 -12
- package/dist/runtime/sandbox/ssh/constants.d.ts.map +0 -1
- package/dist/runtime/sandbox/ssh/constants.js +0 -32
- package/dist/runtime/sandbox/ssh/constants.js.map +0 -1
- package/dist/vfs/aliyun/prompt.d.ts +0 -2
- package/dist/vfs/aliyun/prompt.d.ts.map +0 -1
- package/dist/vfs/aliyun/prompt.js +0 -19
- package/dist/vfs/aliyun/prompt.js.map +0 -1
- package/dist/vfs/backblaze/prompt.d.ts +0 -2
- package/dist/vfs/backblaze/prompt.d.ts.map +0 -1
- package/dist/vfs/backblaze/prompt.js +0 -19
- package/dist/vfs/backblaze/prompt.js.map +0 -1
- package/dist/vfs/ceph/prompt.d.ts +0 -2
- package/dist/vfs/ceph/prompt.d.ts.map +0 -1
- package/dist/vfs/ceph/prompt.js +0 -19
- package/dist/vfs/ceph/prompt.js.map +0 -1
- package/dist/vfs/digitalocean/prompt.d.ts +0 -2
- package/dist/vfs/digitalocean/prompt.d.ts.map +0 -1
- package/dist/vfs/digitalocean/prompt.js +0 -19
- package/dist/vfs/digitalocean/prompt.js.map +0 -1
- package/dist/vfs/disk/prompt.d.ts +0 -2
- package/dist/vfs/disk/prompt.d.ts.map +0 -1
- package/dist/vfs/disk/prompt.js +0 -17
- package/dist/vfs/disk/prompt.js.map +0 -1
- package/dist/vfs/email/prompt.d.ts +0 -3
- package/dist/vfs/email/prompt.d.ts.map +0 -1
- package/dist/vfs/email/prompt.js +0 -29
- package/dist/vfs/email/prompt.js.map +0 -1
- package/dist/vfs/gcs/prompt.d.ts +0 -2
- package/dist/vfs/gcs/prompt.d.ts.map +0 -1
- package/dist/vfs/gcs/prompt.js +0 -19
- package/dist/vfs/gcs/prompt.js.map +0 -1
- package/dist/vfs/gridfs/prompt.d.ts +0 -2
- package/dist/vfs/gridfs/prompt.d.ts.map +0 -1
- package/dist/vfs/gridfs/prompt.js +0 -19
- package/dist/vfs/gridfs/prompt.js.map +0 -1
- package/dist/vfs/hf_buckets/prompt.d.ts +0 -2
- package/dist/vfs/hf_buckets/prompt.d.ts.map +0 -1
- package/dist/vfs/hf_buckets/prompt.js +0 -18
- package/dist/vfs/hf_buckets/prompt.js.map +0 -1
- package/dist/vfs/hf_datasets/prompt.d.ts +0 -2
- package/dist/vfs/hf_datasets/prompt.d.ts.map +0 -1
- package/dist/vfs/hf_datasets/prompt.js +0 -18
- package/dist/vfs/hf_datasets/prompt.js.map +0 -1
- package/dist/vfs/hf_models/prompt.d.ts +0 -2
- package/dist/vfs/hf_models/prompt.d.ts.map +0 -1
- package/dist/vfs/hf_models/prompt.js +0 -18
- package/dist/vfs/hf_models/prompt.js.map +0 -1
- package/dist/vfs/hf_spaces/prompt.d.ts +0 -2
- package/dist/vfs/hf_spaces/prompt.d.ts.map +0 -1
- package/dist/vfs/hf_spaces/prompt.js +0 -18
- package/dist/vfs/hf_spaces/prompt.js.map +0 -1
- package/dist/vfs/jaeger/config.d.ts +0 -15
- package/dist/vfs/jaeger/config.d.ts.map +0 -1
- package/dist/vfs/jaeger/config.js +0 -28
- package/dist/vfs/jaeger/config.js.map +0 -1
- package/dist/vfs/minio/prompt.d.ts +0 -2
- package/dist/vfs/minio/prompt.d.ts.map +0 -1
- package/dist/vfs/minio/prompt.js +0 -19
- package/dist/vfs/minio/prompt.js.map +0 -1
- package/dist/vfs/nextcloud/prompt.d.ts +0 -2
- package/dist/vfs/nextcloud/prompt.d.ts.map +0 -1
- package/dist/vfs/nextcloud/prompt.js +0 -6
- package/dist/vfs/nextcloud/prompt.js.map +0 -1
- package/dist/vfs/oci/prompt.d.ts +0 -2
- package/dist/vfs/oci/prompt.d.ts.map +0 -1
- package/dist/vfs/oci/prompt.js +0 -19
- package/dist/vfs/oci/prompt.js.map +0 -1
- package/dist/vfs/qingstor/prompt.d.ts +0 -2
- package/dist/vfs/qingstor/prompt.d.ts.map +0 -1
- package/dist/vfs/qingstor/prompt.js +0 -19
- package/dist/vfs/qingstor/prompt.js.map +0 -1
- package/dist/vfs/r2/prompt.d.ts +0 -2
- package/dist/vfs/r2/prompt.d.ts.map +0 -1
- package/dist/vfs/r2/prompt.js +0 -19
- package/dist/vfs/r2/prompt.js.map +0 -1
- package/dist/vfs/scaleway/prompt.d.ts +0 -2
- package/dist/vfs/scaleway/prompt.d.ts.map +0 -1
- package/dist/vfs/scaleway/prompt.js +0 -19
- package/dist/vfs/scaleway/prompt.js.map +0 -1
- package/dist/vfs/seaweedfs/prompt.d.ts +0 -2
- package/dist/vfs/seaweedfs/prompt.d.ts.map +0 -1
- package/dist/vfs/seaweedfs/prompt.js +0 -19
- package/dist/vfs/seaweedfs/prompt.js.map +0 -1
- package/dist/vfs/ssh/prompt.d.ts +0 -2
- package/dist/vfs/ssh/prompt.d.ts.map +0 -1
- package/dist/vfs/ssh/prompt.js +0 -18
- package/dist/vfs/ssh/prompt.js.map +0 -1
- package/dist/vfs/supabase/prompt.d.ts +0 -2
- package/dist/vfs/supabase/prompt.d.ts.map +0 -1
- package/dist/vfs/supabase/prompt.js +0 -19
- package/dist/vfs/supabase/prompt.js.map +0 -1
- package/dist/vfs/tencent/prompt.d.ts +0 -2
- package/dist/vfs/tencent/prompt.d.ts.map +0 -1
- package/dist/vfs/tencent/prompt.js +0 -19
- package/dist/vfs/tencent/prompt.js.map +0 -1
- package/dist/vfs/wasabi/prompt.d.ts +0 -2
- package/dist/vfs/wasabi/prompt.d.ts.map +0 -1
- package/dist/vfs/wasabi/prompt.js +0 -19
- package/dist/vfs/wasabi/prompt.js.map +0 -1
- package/dist/workspace/session/disk.d.ts +0 -13
- package/dist/workspace/session/disk.d.ts.map +0 -1
- package/dist/workspace/session/disk.js +0 -29
- package/dist/workspace/session/disk.js.map +0 -1
- package/dist/workspace/session/redis.d.ts +0 -31
- package/dist/workspace/session/redis.d.ts.map +0 -1
- package/dist/workspace/session/redis.js +0 -87
- package/dist/workspace/session/redis.js.map +0 -1
|
@@ -11,59 +11,22 @@
|
|
|
11
11
|
// See the License for the specific language governing permissions and
|
|
12
12
|
// limitations under the License.
|
|
13
13
|
// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========
|
|
14
|
-
import { accessSync, constants
|
|
14
|
+
import { accessSync, constants } from 'node:fs';
|
|
15
15
|
import { access, stat } from 'node:fs/promises';
|
|
16
|
-
import {
|
|
16
|
+
import { isAbsolute, resolve } from 'node:path';
|
|
17
17
|
import { debuglog } from 'node:util';
|
|
18
18
|
import { fsStrerror } from '@struktoai/mirage-core/errors/fs';
|
|
19
19
|
import { resolveHome } from '@struktoai/mirage-core/runtime/config';
|
|
20
|
-
import { PROCESS_EXECUTOR
|
|
20
|
+
import { PROCESS_EXECUTOR } from '@struktoai/mirage-core/runtime/mixin';
|
|
21
21
|
import { PythonRuntime } from '@struktoai/mirage-core/runtime/python/base';
|
|
22
22
|
import { prepareSource } from '@struktoai/mirage-core/runtime/python/execution';
|
|
23
23
|
import { initArgv } from '@struktoai/mirage-core/runtime/python/flags';
|
|
24
24
|
import { registerRuntime } from '@struktoai/mirage-core/runtime/table';
|
|
25
25
|
import { rstripSlash } from '@struktoai/mirage-core/utils/slash';
|
|
26
26
|
import { LOCAL_CONFIG_KEYS } from "./config.js";
|
|
27
|
-
import { closeChildren, cwdRefusal,
|
|
27
|
+
import { closeChildren, cwdRefusal, onHostPath, runProgram, systemTimeEnv, } from "../../sandbox/program.js";
|
|
28
|
+
import { CANNOT_EXECUTE_STATUS, NOT_FOUND_STATUS } from '@struktoai/mirage-core/shell/constants';
|
|
28
29
|
const LOCAL_HOME_ENV = 'MIRAGE_LOCAL_HOME';
|
|
29
|
-
/**
|
|
30
|
-
* Where the host's own PATH finds an interpreter, as Python's `shutil.which`
|
|
31
|
-
* finds the twin's, as an absolute path: the program's environment carries
|
|
32
|
-
* no host PATH, so the lookup cannot be left to spawn. An empty entry is the
|
|
33
|
-
* current directory, as for the shell. A name with a slash is taken as
|
|
34
|
-
* given, and one the PATH lacks too, so spawn reports it missing. On
|
|
35
|
-
* Windows a name without one of `PATHEXT`'s suffixes is tried with each.
|
|
36
|
-
*/
|
|
37
|
-
function onHostPath(name) {
|
|
38
|
-
if (name.includes('/'))
|
|
39
|
-
return name;
|
|
40
|
-
const suffixes = process.platform === 'win32'
|
|
41
|
-
? (process.env.PATHEXT ?? '.COM;.EXE;.BAT;.CMD').split(';').filter((s) => s !== '')
|
|
42
|
-
: [];
|
|
43
|
-
const names = suffixes.length === 0 || suffixes.some((s) => name.toLowerCase().endsWith(s.toLowerCase()))
|
|
44
|
-
? [name]
|
|
45
|
-
: suffixes.map((s) => name + s);
|
|
46
|
-
for (const dir of (process.env.PATH ?? '').split(delimiter)) {
|
|
47
|
-
for (const each of names) {
|
|
48
|
-
const candidate = resolve(dir, each);
|
|
49
|
-
try {
|
|
50
|
-
if (statSync(candidate, { throwIfNoEntry: false })?.isFile() !== true)
|
|
51
|
-
continue;
|
|
52
|
-
accessSync(candidate, constants.X_OK);
|
|
53
|
-
return candidate;
|
|
54
|
-
}
|
|
55
|
-
catch (err) {
|
|
56
|
-
const code = err.code;
|
|
57
|
-
if (code === undefined)
|
|
58
|
-
throw err;
|
|
59
|
-
// Not usable here (not executable, an unreadable entry): the next
|
|
60
|
-
// entry may be. Opt-in (NODE_DEBUG=mirage), on stderr.
|
|
61
|
-
debuglog('mirage')('local: %s is not usable: %s', candidate, code);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
return name;
|
|
66
|
-
}
|
|
67
30
|
/**
|
|
68
31
|
* Whether a resolved program is an executable file. Asynchronous, as is
|
|
69
32
|
* every check `runProcess` makes, so a path on this process's own FUSE
|
|
@@ -98,9 +61,9 @@ async function unrunnable(name, path) {
|
|
|
98
61
|
return null;
|
|
99
62
|
});
|
|
100
63
|
if (found === null)
|
|
101
|
-
return notRun(`${name}: No such file or directory\n`,
|
|
64
|
+
return notRun(`${name}: No such file or directory\n`, NOT_FOUND_STATUS);
|
|
102
65
|
if (found.isDirectory())
|
|
103
|
-
return notRun(`${name}: Is a directory\n`,
|
|
66
|
+
return notRun(`${name}: Is a directory\n`, CANNOT_EXECUTE_STATUS);
|
|
104
67
|
const runs = await access(path, constants.X_OK).then(() => true, (err) => {
|
|
105
68
|
const code = err.code;
|
|
106
69
|
if (code === undefined)
|
|
@@ -108,7 +71,7 @@ async function unrunnable(name, path) {
|
|
|
108
71
|
debuglog('mirage')('local: cannot execute %s: %s', path, code);
|
|
109
72
|
return false;
|
|
110
73
|
});
|
|
111
|
-
return runs ? null : notRun(`${name}: Permission denied\n`,
|
|
74
|
+
return runs ? null : notRun(`${name}: Permission denied\n`, CANNOT_EXECUTE_STATUS);
|
|
112
75
|
}
|
|
113
76
|
/** A program that never started: its message and exit code. */
|
|
114
77
|
function notRun(message, exitCode) {
|
|
@@ -132,44 +95,45 @@ function notRun(message, exitCode) {
|
|
|
132
95
|
export class LocalRuntime extends PythonRuntime {
|
|
133
96
|
name = 'local';
|
|
134
97
|
[PROCESS_EXECUTOR] = true;
|
|
135
|
-
[STREAMING_PROCESS] = true;
|
|
136
98
|
// Spawns the host interpreter: a real process with the user's own
|
|
137
99
|
// filesystem and network, entry points the workspace gate never sees. This
|
|
138
100
|
// is the base default; declared here so the claim is explicit at the
|
|
139
101
|
// one builtin runtime that voids a world's sandbox claim.
|
|
140
102
|
reach = 'process';
|
|
103
|
+
home;
|
|
141
104
|
python;
|
|
142
105
|
children = new Set();
|
|
106
|
+
closed = false;
|
|
143
107
|
constructor(options = {}) {
|
|
144
108
|
super(options, LOCAL_CONFIG_KEYS);
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
109
|
+
this.home = resolveHome(this.config, LOCAL_HOME_ENV);
|
|
110
|
+
// A configured path is read from the directory the entry is built in,
|
|
111
|
+
// as Python's twin makes it absolute; a name is found on the PATH as
|
|
112
|
+
// the entry is built, without blocking the loop, and a run that finds
|
|
113
|
+
// nothing there says so.
|
|
114
|
+
const home = this.home?.includes('/') === true ? resolve(this.home) : this.home;
|
|
115
|
+
this.python = onHostPath(home ?? 'python3');
|
|
116
|
+
void this.python.catch(() => undefined);
|
|
117
|
+
if (home?.includes('/') === true) {
|
|
148
118
|
try {
|
|
149
|
-
accessSync(
|
|
119
|
+
accessSync(home, constants.X_OK);
|
|
150
120
|
}
|
|
151
121
|
catch (cause) {
|
|
152
|
-
throw new Error(`local python interpreter not found: ${
|
|
122
|
+
throw new Error(`local python interpreter not found: ${home} (from the runtime entry's config home or ${LOCAL_HOME_ENV})`, { cause });
|
|
153
123
|
}
|
|
154
124
|
}
|
|
155
125
|
}
|
|
156
|
-
version(_env, signal) {
|
|
126
|
+
async version(_env, signal) {
|
|
157
127
|
// Session loader variables can execute code before --version is read.
|
|
158
|
-
return this.spawnProgram(this.
|
|
128
|
+
return this.spawnProgram(await this.interpreter(), ['--version'], {}, null, signal);
|
|
159
129
|
}
|
|
160
|
-
interpret(_engine, program, ctx) {
|
|
130
|
+
async interpret(_engine, program, ctx, output, errors) {
|
|
161
131
|
// Honoring the init switches is just handing them back to the real
|
|
162
132
|
// interpreter, which is why this tier gets them exactly right
|
|
163
133
|
// (sys.flags included) where an in-process engine cannot.
|
|
164
|
-
return this.spawnProgram(this.
|
|
165
|
-
}
|
|
166
|
-
runProcess(_engine, _paths, texts, ctx) {
|
|
167
|
-
return this.executeProcess(texts, ctx);
|
|
134
|
+
return this.spawnProgram(await this.interpreter(), [...initArgv(ctx.flags), '-c', prepareSource(program, ctx.cwd), ...program.args], ctx.env ?? {}, program.stdin, ctx.signal, undefined, output, errors);
|
|
168
135
|
}
|
|
169
|
-
|
|
170
|
-
return this.executeProcess(texts, ctx, output);
|
|
171
|
-
}
|
|
172
|
-
async executeProcess(argv, ctx, output) {
|
|
136
|
+
async runProcess(_engine, _paths, argv, ctx, output, errors) {
|
|
173
137
|
ctx.signal?.throwIfAborted();
|
|
174
138
|
const name = argv[0] ?? '';
|
|
175
139
|
const cwd = ctx.cwd.virtual;
|
|
@@ -187,34 +151,47 @@ export class LocalRuntime extends PythonRuntime {
|
|
|
187
151
|
return refusal;
|
|
188
152
|
}
|
|
189
153
|
else {
|
|
190
|
-
program = onHostPath(name);
|
|
154
|
+
program = await onHostPath(name);
|
|
191
155
|
if (!(await isExecutable(program)))
|
|
192
|
-
return notRun(`${name}: command not found\n`,
|
|
156
|
+
return notRun(`${name}: command not found\n`, NOT_FOUND_STATUS);
|
|
193
157
|
}
|
|
194
158
|
// A program that cannot start (its script's interpreter missing, say)
|
|
195
159
|
// fails as the shell's would, so `tool || fallback` goes on.
|
|
196
|
-
return this.spawnProgram(program, argv.slice(1), ctx.env ?? {}, ctx.stdin, ctx.signal, cwd, output).catch((err) => {
|
|
160
|
+
return this.spawnProgram(program, argv.slice(1), ctx.env ?? {}, ctx.stdin, ctx.signal, cwd, output, errors).catch((err) => {
|
|
197
161
|
const { code, syscall } = err;
|
|
198
162
|
if (code === undefined || syscall?.startsWith('spawn') !== true)
|
|
199
163
|
throw err;
|
|
200
|
-
return notRun(`${name}: cannot execute: ${fsStrerror(err) ?? code}\n`,
|
|
164
|
+
return notRun(`${name}: cannot execute: ${fsStrerror(err) ?? code}\n`, CANNOT_EXECUTE_STATUS);
|
|
201
165
|
});
|
|
202
166
|
}
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
167
|
+
/** The interpreter the host PATH found, refused when it found none. */
|
|
168
|
+
async interpreter() {
|
|
169
|
+
const name = this.home ?? 'python3';
|
|
170
|
+
const found = await this.python;
|
|
171
|
+
if (!(await isExecutable(found)))
|
|
172
|
+
throw new Error(`local python interpreter not found: '${name}' (set the ` +
|
|
173
|
+
`runtime entry's config home or ${LOCAL_HOME_ENV})`);
|
|
174
|
+
return found;
|
|
175
|
+
}
|
|
176
|
+
async spawnProgram(program, argv, env, stdin, signal, cwd, output, errors) {
|
|
177
|
+
const given = { ...this.config.env, ...env };
|
|
178
|
+
const clock = await systemTimeEnv(given);
|
|
179
|
+
// A run still finding its program or libfaketime when the runtime
|
|
180
|
+
// closed starts nothing, so no child outlives the close.
|
|
181
|
+
if (this.closed)
|
|
182
|
+
throw new Error(`${this.name}: the runtime is closed`);
|
|
183
|
+
return runProgram(program, null, argv, stdin, {
|
|
184
|
+
env: { ...given, ...clock },
|
|
210
185
|
children: this.children,
|
|
186
|
+
direct: true,
|
|
211
187
|
...(output === undefined ? {} : { output }),
|
|
188
|
+
...(errors === undefined ? {} : { errors }),
|
|
212
189
|
...(cwd !== undefined ? { cwd } : {}),
|
|
213
190
|
...(signal !== undefined ? { signal } : {}),
|
|
214
191
|
});
|
|
215
|
-
return { stdout, stderr: stderr.length > 0 ? stderr : null, exitCode: code };
|
|
216
192
|
}
|
|
217
193
|
close() {
|
|
194
|
+
this.closed = true;
|
|
218
195
|
return closeChildren(this.children);
|
|
219
196
|
}
|
|
220
197
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../../src/runtime/python/local/runtime.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AACjC,uEAAuE;AAIvE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../../src/runtime/python/local/runtime.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AACjC,uEAAuE;AAIvE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAC/C,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAC7D,OAAO,EAAE,WAAW,EAAuB,MAAM,uCAAuC,CAAA;AACxF,OAAO,EAAE,gBAAgB,EAA6B,MAAM,sCAAsC,CAAA;AAClG,OAAO,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAA;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,iDAAiD,CAAA;AAC/E,OAAO,EAAE,QAAQ,EAAE,MAAM,6CAA6C,CAAA;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAA;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAA;AAIhE,OAAO,EAAE,iBAAiB,EAAoB,MAAM,aAAa,CAAA;AACjE,OAAO,EACL,aAAa,EACb,UAAU,EACV,UAAU,EACV,UAAU,EACV,aAAa,GACd,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAA;AAEhG,MAAM,cAAc,GAAG,mBAAmB,CAAA;AAE1C;;;;GAIG;AACH,KAAK,UAAU,YAAY,CAAC,OAAe;IACzC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAA;IACtC,IAAI,CAAC;QACH,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE;YAAE,OAAO,KAAK,CAAA;QACjD,MAAM,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,CAAA;QACrC,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAK,GAA6B,CAAC,IAAI,KAAK,SAAS;YAAE,MAAM,GAAG,CAAA;QAChE,QAAQ,CAAC,QAAQ,CAAC,CAChB,iCAAiC,EACjC,OAAO,EACN,GAA6B,CAAC,IAAI,CACpC,CAAA;QACD,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,UAAU,CAAC,IAAY,EAAE,IAAY;IAClD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;QACpD,MAAM,IAAI,GAAI,GAA6B,CAAC,IAAI,CAAA;QAChD,IAAI,IAAI,KAAK,SAAS;YAAE,MAAM,GAAG,CAAA;QACjC,QAAQ,CAAC,QAAQ,CAAC,CAAC,2BAA2B,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;QAC3D,OAAO,IAAI,CAAA;IACb,CAAC,CAAC,CAAA;IACF,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC,GAAG,IAAI,+BAA+B,EAAE,gBAAgB,CAAC,CAAA;IAC3F,IAAI,KAAK,CAAC,WAAW,EAAE;QAAE,OAAO,MAAM,CAAC,GAAG,IAAI,oBAAoB,EAAE,qBAAqB,CAAC,CAAA;IAC1F,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAClD,GAAG,EAAE,CAAC,IAAI,EACV,CAAC,GAAY,EAAE,EAAE;QACf,MAAM,IAAI,GAAI,GAA6B,CAAC,IAAI,CAAA;QAChD,IAAI,IAAI,KAAK,SAAS;YAAE,MAAM,GAAG,CAAA;QACjC,QAAQ,CAAC,QAAQ,CAAC,CAAC,8BAA8B,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;QAC9D,OAAO,KAAK,CAAA;IACd,CAAC,CACF,CAAA;IACD,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,uBAAuB,EAAE,qBAAqB,CAAC,CAAA;AACpF,CAAC;AAED,+DAA+D;AAC/D,SAAS,MAAM,CAAC,OAAe,EAAE,QAAgB;IAC/C,OAAO,EAAE,MAAM,EAAE,IAAI,UAAU,EAAE,EAAE,MAAM,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAA;AAC1F,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,YACX,SAAQ,aAAwB;IAGvB,IAAI,GAAG,OAAO,CAAA;IACd,CAAC,gBAAgB,CAAC,GAAG,IAAa,CAAA;IAC3C,kEAAkE;IAClE,2EAA2E;IAC3E,qEAAqE;IACrE,0DAA0D;IACxC,KAAK,GAAG,SAAS,CAAA;IAClB,IAAI,CAAoB;IACxB,MAAM,CAAiB;IACvB,QAAQ,GAAG,IAAI,GAAG,EAAgB,CAAA;IAC3C,MAAM,GAAG,KAAK,CAAA;IAEtB,YAAY,UAA0B,EAAE;QACtC,KAAK,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAA;QACjC,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,MAAqB,EAAE,cAAc,CAAC,CAAA;QACnE,sEAAsE;QACtE,qEAAqE;QACrE,sEAAsE;QACtE,yBAAyB;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAA;QAC/E,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,IAAI,IAAI,SAAS,CAAC,CAAA;QAC3C,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;QACvC,IAAI,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;YACjC,IAAI,CAAC;gBACH,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAA;YAClC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CACb,uCAAuC,IAAI,6CAA6C,cAAc,GAAG,EACzG,EAAE,KAAK,EAAE,CACV,CAAA;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAEQ,KAAK,CAAC,OAAO,CAAC,IAA4B,EAAE,MAAoB;QACvE,sEAAsE;QACtE,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;IACrF,CAAC;IAED,KAAK,CAAC,SAAS,CACb,OAAkB,EAClB,OAAgB,EAChB,GAAY,EACZ,MAAiB,EACjB,MAAiB;QAEjB,mEAAmE;QACnE,8DAA8D;QAC9D,0DAA0D;QAC1D,OAAO,IAAI,CAAC,YAAY,CACtB,MAAM,IAAI,CAAC,WAAW,EAAE,EACxB,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,aAAa,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,EAChF,GAAG,CAAC,GAAG,IAAI,EAAE,EACb,OAAO,CAAC,KAAK,EACb,GAAG,CAAC,MAAM,EACV,SAAS,EACT,MAAM,EACN,MAAM,CACP,CAAA;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CACd,OAAkB,EAClB,MAAkB,EAClB,IAAc,EACd,GAAY,EACZ,MAA4B,EAC5B,MAAiB;QAEjB,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,CAAA;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QAC1B,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,CAAA;QAC3B,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QAC3C,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO,OAAO,CAAA;QACpC,IAAI,OAAe,CAAA;QACnB,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,+DAA+D;YAC/D,kEAAkE;YAClE,cAAc;YACd,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAA;YACjE,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;YAC/C,IAAI,OAAO,KAAK,IAAI;gBAAE,OAAO,OAAO,CAAA;QACtC,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,CAAA;YAChC,IAAI,CAAC,CAAC,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;gBAChC,OAAO,MAAM,CAAC,GAAG,IAAI,uBAAuB,EAAE,gBAAgB,CAAC,CAAA;QACnE,CAAC;QACD,sEAAsE;QACtE,6DAA6D;QAC7D,OAAO,IAAI,CAAC,YAAY,CACtB,OAAO,EACP,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EACb,GAAG,CAAC,GAAG,IAAI,EAAE,EACb,GAAG,CAAC,KAAK,EACT,GAAG,CAAC,MAAM,EACV,GAAG,EACH,MAAM,EACN,MAAM,CACP,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;YACvB,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,GAA4B,CAAA;YACtD,IAAI,IAAI,KAAK,SAAS,IAAI,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,KAAK,IAAI;gBAAE,MAAM,GAAG,CAAA;YAC1E,OAAO,MAAM,CAAC,GAAG,IAAI,qBAAqB,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,EAAE,qBAAqB,CAAC,CAAA;QAC/F,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,uEAAuE;IAC/D,KAAK,CAAC,WAAW;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,SAAS,CAAA;QACnC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAA;QAC/B,IAAI,CAAC,CAAC,MAAM,YAAY,CAAC,KAAK,CAAC,CAAC;YAC9B,MAAM,IAAI,KAAK,CACb,wCAAwC,IAAI,aAAa;gBACvD,kCAAkC,cAAc,GAAG,CACtD,CAAA;QACH,OAAO,KAAK,CAAA;IACd,CAAC;IAEO,KAAK,CAAC,YAAY,CACxB,OAAe,EACf,IAAc,EACd,GAA2B,EAC3B,KAAwB,EACxB,MAAoB,EACpB,GAAY,EACZ,MAAiB,EACjB,MAAiB;QAEjB,MAAM,KAAK,GAAG,EAAE,GAAI,IAAI,CAAC,MAAsB,CAAC,GAAG,EAAE,GAAG,GAAG,EAAE,CAAA;QAC7D,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,KAAK,CAAC,CAAA;QACxC,kEAAkE;QAClE,yDAAyD;QACzD,IAAI,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,yBAAyB,CAAC,CAAA;QACvE,OAAO,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE;YAC5C,GAAG,EAAE,EAAE,GAAG,KAAK,EAAE,GAAG,KAAK,EAAE;YAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,IAAI;YACZ,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;YAC3C,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;YAC3C,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrC,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5C,CAAC,CAAA;IACJ,CAAC;IAEQ,KAAK;QACZ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;QAClB,OAAO,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACrC,CAAC;CACF;AAED,eAAe,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
export declare const
|
|
1
|
+
export declare const APPLE_CONTAINER_HINT: string;
|
|
2
2
|
/**
|
|
3
3
|
* `container inspect` reports RuntimeStatus's raw value: unknown,
|
|
4
4
|
* stopped, running or stopping. Only "running" can take a line; a
|
|
5
5
|
* container that was created but never started reports "stopped".
|
|
6
6
|
*/
|
|
7
7
|
export declare const RUNNING_STATE = "running";
|
|
8
|
+
export declare const STATE_HINTS: Readonly<Record<string, string>>;
|
|
8
9
|
/** Why a line has nowhere to run: its session maps to no container. */
|
|
9
10
|
export declare function noContainerHint(sessionId: string | null): string;
|
|
10
|
-
/** Why this container cannot take a line, named by its state. */
|
|
11
|
-
export declare function notRunningHint(container: string, state: string): string;
|
|
12
11
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/runtime/sandbox/apple_container/constants.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/runtime/sandbox/apple_container/constants.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,oBAAoB,QAIP,CAAA;AAE1B;;;;GAIG;AACH,eAAO,MAAM,aAAa,YAAY,CAAA;AAEtC,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAGxD,CAAA;AAED,uEAAuE;AACvE,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAKhE"}
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
// See the License for the specific language governing permissions and
|
|
12
12
|
// limitations under the License.
|
|
13
13
|
// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========
|
|
14
|
-
export const
|
|
14
|
+
export const APPLE_CONTAINER_HINT = "the apple_container runtime needs Apple's `container` on PATH " +
|
|
15
15
|
'(`brew install container`, or the installer from ' +
|
|
16
16
|
'https://github.com/apple/container/releases); it runs on Apple silicon ' +
|
|
17
17
|
'with macOS 26 or later';
|
|
@@ -21,20 +21,13 @@ export const APPLE_CONTAINER_CLI_HINT = "the apple_container runtime needs Apple
|
|
|
21
21
|
* container that was created but never started reports "stopped".
|
|
22
22
|
*/
|
|
23
23
|
export const RUNNING_STATE = 'running';
|
|
24
|
-
const STATE_HINTS = {
|
|
25
|
-
stopped: 'it is stopped; start it with `container start {
|
|
26
|
-
stopping: 'it is shutting down; once it stops, start it again with `container start {
|
|
24
|
+
export const STATE_HINTS = {
|
|
25
|
+
stopped: 'it is stopped; start it with `container start {name}`',
|
|
26
|
+
stopping: 'it is shutting down; once it stops, start it again with `container start {name}`',
|
|
27
27
|
};
|
|
28
28
|
/** Why a line has nowhere to run: its session maps to no container. */
|
|
29
29
|
export function noContainerHint(sessionId) {
|
|
30
30
|
return (`apple_container has no container for session ${sessionId ?? '(none)'}: ` +
|
|
31
31
|
'list it under containers or set container');
|
|
32
32
|
}
|
|
33
|
-
/** Why this container cannot take a line, named by its state. */
|
|
34
|
-
export function notRunningHint(container, state) {
|
|
35
|
-
const detail = STATE_HINTS[state];
|
|
36
|
-
if (detail === undefined)
|
|
37
|
-
return `container ${container} is not running (state: ${state})`;
|
|
38
|
-
return `container ${container} is not running: ${detail.replaceAll('{container}', container)}`;
|
|
39
|
-
}
|
|
40
33
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/runtime/sandbox/apple_container/constants.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AACjC,uEAAuE;AAEvE,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/runtime/sandbox/apple_container/constants.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AACjC,uEAAuE;AAEvE,MAAM,CAAC,MAAM,oBAAoB,GAC/B,gEAAgE;IAChE,mDAAmD;IACnD,yEAAyE;IACzE,wBAAwB,CAAA;AAE1B;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,SAAS,CAAA;AAEtC,MAAM,CAAC,MAAM,WAAW,GAAqC;IAC3D,OAAO,EAAE,uDAAuD;IAChE,QAAQ,EAAE,kFAAkF;CAC7F,CAAA;AAED,uEAAuE;AACvE,MAAM,UAAU,eAAe,CAAC,SAAwB;IACtD,OAAO,CACL,gDAAgD,SAAS,IAAI,QAAQ,IAAI;QACzE,2CAA2C,CAC5C,CAAA;AACH,CAAC"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { ByteSource } from '@struktoai/mirage-core/io/types';
|
|
2
2
|
import { RemoteSandbox } from '@struktoai/mirage-core/runtime/sandbox/base';
|
|
3
|
-
import
|
|
3
|
+
import { PIPE_TRANSPORT, type PipeTransport } from '@struktoai/mirage-core/runtime/sandbox/mixin';
|
|
4
|
+
import type { OutputFn, RunResult, SandboxPipe } from '@struktoai/mirage-core/runtime/types';
|
|
4
5
|
import type { RuntimeOptions } from '@struktoai/mirage-core/runtime/config';
|
|
5
6
|
import { type AppleContainerConfig } from './config.ts';
|
|
6
|
-
import { type CliResult } from '../cli.ts';
|
|
7
7
|
/**
|
|
8
8
|
* Containers under Apple's `container` tool as a whole-line runtime.
|
|
9
9
|
*
|
|
10
10
|
* You start the containers yourself; mirage only connects to them and
|
|
11
|
-
* execs lines. The `container`
|
|
11
|
+
* execs lines. The `container` program is the transport, so there is no
|
|
12
12
|
* SDK dependency and no XPC wiring; each line is one `container exec`
|
|
13
13
|
* with the merged environment, the session cwd, real stdin, and
|
|
14
14
|
* separated stderr.
|
|
@@ -18,24 +18,28 @@ import { type CliResult } from '../cli.ts';
|
|
|
18
18
|
* filesystem except what the container was given at start
|
|
19
19
|
* (`--volume`). Serve the workspace inside it at the host's mount
|
|
20
20
|
* prefixes, the same contract every provider in this family carries.
|
|
21
|
-
* The image needs a POSIX sh, which every argv runs under (EXEC_PRELUDE).
|
|
21
|
+
* The image needs a POSIX /bin/sh, which every argv runs under (EXEC_PRELUDE).
|
|
22
22
|
*
|
|
23
23
|
* A line runs in its session's container (config `containers`, else
|
|
24
24
|
* `container`), so one runtime can give every agent a VM of its own.
|
|
25
25
|
* Each container is probed once, on its first line.
|
|
26
26
|
*/
|
|
27
|
-
export declare class AppleContainerRuntime extends RemoteSandbox<AppleContainerConfig> implements
|
|
28
|
-
readonly [
|
|
27
|
+
export declare class AppleContainerRuntime extends RemoteSandbox<AppleContainerConfig> implements PipeTransport {
|
|
28
|
+
readonly [PIPE_TRANSPORT]: true;
|
|
29
29
|
readonly name = "apple_container";
|
|
30
30
|
private readonly probes;
|
|
31
31
|
constructor(options?: RuntimeOptions<AppleContainerConfig>);
|
|
32
|
-
/** Run
|
|
33
|
-
protected container(args: string[], stdin?:
|
|
32
|
+
/** Run `container` once; the seam tests override. */
|
|
33
|
+
protected container(args: string[], stdin?: ByteSource | null, output?: OutputFn | null, signal?: AbortSignal, errors?: OutputFn | null): Promise<RunResult>;
|
|
34
34
|
/**
|
|
35
35
|
* Attach nothing up front. Which container a line needs depends on its
|
|
36
36
|
* session, so `target` probes each container on its first line instead.
|
|
37
37
|
*/
|
|
38
38
|
connect(): Promise<void>;
|
|
39
|
+
/** The container this line's session runs in, which keeps its own libfaketime answer. */
|
|
40
|
+
protected sandboxKey(): string;
|
|
41
|
+
/** The container this line's session runs in (config `containers`, else `container`). */
|
|
42
|
+
private containerName;
|
|
39
43
|
/**
|
|
40
44
|
* Select this session's container. Concurrent first lines share a probe;
|
|
41
45
|
* a failed probe clears its slot so the next line retries.
|
|
@@ -48,7 +52,7 @@ export declare class AppleContainerRuntime extends RemoteSandbox<AppleContainerC
|
|
|
48
52
|
* probing up front names the state and how to recover.
|
|
49
53
|
*/
|
|
50
54
|
private probe;
|
|
51
|
-
protected execArgv(argv: readonly string[], stdin:
|
|
55
|
+
protected execArgv(argv: readonly string[], stdin: ByteSource | null, env: Record<string, string>, cwd: string, output: OutputFn | null, errors: OutputFn | null, signal?: AbortSignal): Promise<RunResult>;
|
|
52
56
|
openPipe(command: string): Promise<SandboxPipe>;
|
|
53
57
|
}
|
|
54
58
|
//# sourceMappingURL=runtime.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../../src/runtime/sandbox/apple_container/runtime.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../../src/runtime/sandbox/apple_container/runtime.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAA;AAC3E,OAAO,EAAE,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,8CAA8C,CAAA;AAEjG,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAA;AAC5F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAA;AAC3E,OAAO,EAEL,KAAK,oBAAoB,EAE1B,MAAM,aAAa,CAAA;AAKpB;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,qBACX,SAAQ,aAAa,CAAC,oBAAoB,CAC1C,YAAW,aAAa;IAExB,QAAQ,CAAC,CAAC,cAAc,CAAC,EAAG,IAAI,CAAS;IACzC,QAAQ,CAAC,IAAI,qBAAoB;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmC;gBAE9C,OAAO,GAAE,cAAc,CAAC,oBAAoB,CAAM;IAK9D,qDAAqD;IACrD,SAAS,CAAC,SAAS,CACjB,IAAI,EAAE,MAAM,EAAE,EACd,KAAK,GAAE,UAAU,GAAG,IAAW,EAC/B,MAAM,GAAE,QAAQ,GAAG,IAAW,EAC9B,MAAM,CAAC,EAAE,WAAW,EACpB,MAAM,GAAE,QAAQ,GAAG,IAAW,GAC7B,OAAO,CAAC,SAAS,CAAC;IAQrB;;;OAGG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxB,yFAAyF;cACtE,UAAU,IAAI,MAAM;IAIvC,yFAAyF;IACzF,OAAO,CAAC,aAAa;IAUrB;;;OAGG;YACW,MAAM;IAcpB;;;;;OAKG;YACW,KAAK;cAOM,QAAQ,CAC/B,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,KAAK,EAAE,UAAU,GAAG,IAAI,EACxB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC3B,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,QAAQ,GAAG,IAAI,EACvB,MAAM,EAAE,QAAQ,GAAG,IAAI,EACvB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,SAAS,CAAC;IAMf,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;CAOtD"}
|
|
@@ -13,18 +13,18 @@
|
|
|
13
13
|
// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========
|
|
14
14
|
import { abortable } from '@struktoai/mirage-core/utils/abort';
|
|
15
15
|
import { getCurrentSession } from '@struktoai/mirage-core/context/session_context';
|
|
16
|
-
import { PROCESS_EXECUTOR } from '@struktoai/mirage-core/runtime/mixin';
|
|
17
16
|
import { RemoteSandbox } from '@struktoai/mirage-core/runtime/sandbox/base';
|
|
18
|
-
import {
|
|
17
|
+
import { PIPE_TRANSPORT } from '@struktoai/mirage-core/runtime/sandbox/mixin';
|
|
19
18
|
import { registerRuntime } from '@struktoai/mirage-core/runtime/table';
|
|
20
19
|
import { APPLE_CONTAINER_CONFIG_KEYS, validateAppleContainerConfig, } from "./config.js";
|
|
21
|
-
import {
|
|
22
|
-
import {
|
|
20
|
+
import { APPLE_CONTAINER_HINT, RUNNING_STATE, STATE_HINTS, noContainerHint } from "./constants.js";
|
|
21
|
+
import { notRunningHint } from '@struktoai/mirage-core/runtime/sandbox/constants';
|
|
22
|
+
import { execArgs, openProgramPipe, reportedState, runProgram } from "../program.js";
|
|
23
23
|
/**
|
|
24
24
|
* Containers under Apple's `container` tool as a whole-line runtime.
|
|
25
25
|
*
|
|
26
26
|
* You start the containers yourself; mirage only connects to them and
|
|
27
|
-
* execs lines. The `container`
|
|
27
|
+
* execs lines. The `container` program is the transport, so there is no
|
|
28
28
|
* SDK dependency and no XPC wiring; each line is one `container exec`
|
|
29
29
|
* with the merged environment, the session cwd, real stdin, and
|
|
30
30
|
* separated stderr.
|
|
@@ -34,23 +34,27 @@ import { openCliPipe, runCli } from "../cli.js";
|
|
|
34
34
|
* filesystem except what the container was given at start
|
|
35
35
|
* (`--volume`). Serve the workspace inside it at the host's mount
|
|
36
36
|
* prefixes, the same contract every provider in this family carries.
|
|
37
|
-
* The image needs a POSIX sh, which every argv runs under (EXEC_PRELUDE).
|
|
37
|
+
* The image needs a POSIX /bin/sh, which every argv runs under (EXEC_PRELUDE).
|
|
38
38
|
*
|
|
39
39
|
* A line runs in its session's container (config `containers`, else
|
|
40
40
|
* `container`), so one runtime can give every agent a VM of its own.
|
|
41
41
|
* Each container is probed once, on its first line.
|
|
42
42
|
*/
|
|
43
43
|
export class AppleContainerRuntime extends RemoteSandbox {
|
|
44
|
-
[
|
|
44
|
+
[PIPE_TRANSPORT] = true;
|
|
45
45
|
name = 'apple_container';
|
|
46
46
|
probes = new Map();
|
|
47
47
|
constructor(options = {}) {
|
|
48
48
|
super(options, APPLE_CONTAINER_CONFIG_KEYS);
|
|
49
49
|
validateAppleContainerConfig(this.config);
|
|
50
50
|
}
|
|
51
|
-
/** Run
|
|
52
|
-
container(args, stdin = null, signal) {
|
|
53
|
-
return
|
|
51
|
+
/** Run `container` once; the seam tests override. */
|
|
52
|
+
container(args, stdin = null, output = null, signal, errors = null) {
|
|
53
|
+
return runProgram('container', APPLE_CONTAINER_HINT, args, stdin, {
|
|
54
|
+
...(signal !== undefined ? { signal } : {}),
|
|
55
|
+
...(output !== null ? { output } : {}),
|
|
56
|
+
...(errors !== null ? { errors } : {}),
|
|
57
|
+
});
|
|
54
58
|
}
|
|
55
59
|
/**
|
|
56
60
|
* Attach nothing up front. Which container a line needs depends on its
|
|
@@ -59,17 +63,26 @@ export class AppleContainerRuntime extends RemoteSandbox {
|
|
|
59
63
|
connect() {
|
|
60
64
|
return Promise.resolve();
|
|
61
65
|
}
|
|
62
|
-
/**
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
66
|
+
/** The container this line's session runs in, which keeps its own libfaketime answer. */
|
|
67
|
+
sandboxKey() {
|
|
68
|
+
return this.containerName();
|
|
69
|
+
}
|
|
70
|
+
/** The container this line's session runs in (config `containers`, else `container`). */
|
|
71
|
+
containerName() {
|
|
67
72
|
const sessionId = getCurrentSession()?.sessionId ?? null;
|
|
68
73
|
const { containers = {} } = this.config;
|
|
69
74
|
const mapped = sessionId !== null && Object.hasOwn(containers, sessionId) ? containers[sessionId] : undefined;
|
|
70
75
|
const container = mapped ?? this.config.container;
|
|
71
76
|
if (container === undefined)
|
|
72
77
|
throw new Error(noContainerHint(sessionId));
|
|
78
|
+
return container;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Select this session's container. Concurrent first lines share a probe;
|
|
82
|
+
* a failed probe clears its slot so the next line retries.
|
|
83
|
+
*/
|
|
84
|
+
async target(signal) {
|
|
85
|
+
const container = this.containerName();
|
|
73
86
|
let probe = this.probes.get(container);
|
|
74
87
|
if (probe === undefined) {
|
|
75
88
|
probe = this.probe(container).catch((err) => {
|
|
@@ -88,52 +101,20 @@ export class AppleContainerRuntime extends RemoteSandbox {
|
|
|
88
101
|
* probing up front names the state and how to recover.
|
|
89
102
|
*/
|
|
90
103
|
async probe(container) {
|
|
91
|
-
const
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
let state;
|
|
96
|
-
try {
|
|
97
|
-
state = inspectedState(JSON.parse(DECODER.decode(result.stdout)));
|
|
98
|
-
}
|
|
99
|
-
catch (error) {
|
|
100
|
-
throw new Error(`container inspect returned unreadable json: ${String(error)}`);
|
|
101
|
-
}
|
|
102
|
-
if (state !== RUNNING_STATE) {
|
|
103
|
-
throw new Error(notRunningHint(container, String(state)));
|
|
104
|
-
}
|
|
104
|
+
const status = await this.container(['inspect', container]);
|
|
105
|
+
const state = reportedState(status, 'container inspect', [0, 'status', 'state']);
|
|
106
|
+
if (state !== RUNNING_STATE)
|
|
107
|
+
throw new Error(notRunningHint('container', container, state, STATE_HINTS));
|
|
105
108
|
}
|
|
106
|
-
async execArgv(argv, stdin, env, cwd, signal) {
|
|
107
|
-
const
|
|
108
|
-
const args = ['exec', '-i',
|
|
109
|
-
|
|
110
|
-
args.push('-e', `${key}=${value}`);
|
|
111
|
-
args.push(container, 'sh', '-c', EXEC_PRELUDE, 'sh', cwd, ...argv);
|
|
112
|
-
const result = await this.container(args, stdin, signal);
|
|
113
|
-
return { stdout: result.stdout, stderr: result.stderr, exitCode: result.code };
|
|
109
|
+
async execArgv(argv, stdin, env, cwd, output, errors, signal) {
|
|
110
|
+
const target = [await this.target(signal)];
|
|
111
|
+
const args = execArgs(['exec', '-i'], target, env, cwd, argv);
|
|
112
|
+
return this.container(args, stdin, output, signal, errors);
|
|
114
113
|
}
|
|
115
114
|
async openPipe(command) {
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
'-i',
|
|
119
|
-
'-w',
|
|
120
|
-
'/',
|
|
121
|
-
await this.target(),
|
|
122
|
-
'sh',
|
|
123
|
-
'-c',
|
|
124
|
-
command,
|
|
125
|
-
]);
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
/** The first entry's `status.state`, throwing on any other shape. */
|
|
129
|
-
function inspectedState(payload) {
|
|
130
|
-
const entry = Array.isArray(payload) ? payload[0] : undefined;
|
|
131
|
-
const status = typeof entry === 'object' && entry !== null ? entry.status : undefined;
|
|
132
|
-
if (typeof status !== 'object' || status === null || !('state' in status)) {
|
|
133
|
-
throw new Error('expected [{ status: { state } }]');
|
|
115
|
+
const target = [await this.target()];
|
|
116
|
+
return openProgramPipe('container', execArgs(['exec', '-i'], target, {}, null, ['/bin/sh', '-c', command]));
|
|
134
117
|
}
|
|
135
|
-
return status.state;
|
|
136
118
|
}
|
|
137
|
-
const DECODER = new TextDecoder();
|
|
138
119
|
registerRuntime('apple_container', AppleContainerRuntime);
|
|
139
120
|
//# sourceMappingURL=runtime.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../../src/runtime/sandbox/apple_container/runtime.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AACjC,uEAAuE;AAEvE,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAA;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAA;
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../../src/runtime/sandbox/apple_container/runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A unique in-sandbox path for one invocation's stdin bytes: unique
|
|
3
|
+
* per invocation so concurrent lines on the same runtime never
|
|
4
|
+
* overwrite each other's payload.
|
|
5
|
+
*/
|
|
6
|
+
export declare function stdinPath(): string;
|
|
7
|
+
/**
|
|
8
|
+
* The line rewritten to read its stdin from an uploaded file: runs
|
|
9
|
+
* the line in a subshell with stdin redirected from the path, removes
|
|
10
|
+
* the file afterward, and preserves the line's exit code. Daytona uses
|
|
11
|
+
* this when its exec API has no stdin stream; a PTY would merge
|
|
12
|
+
* streams and mangle bytes.
|
|
13
|
+
*
|
|
14
|
+
* Known limitations, all inherent to the file transport:
|
|
15
|
+
* - stdin is fully buffered and uploaded before the line starts;
|
|
16
|
+
* nothing is streamed, so no interactive stdin.
|
|
17
|
+
* - the bytes briefly touch the sandbox's /tmp, readable by other
|
|
18
|
+
* processes in the sandbox and left behind if the exec dies before
|
|
19
|
+
* the `rm` runs (a later line's unique path is never affected).
|
|
20
|
+
* - each stdin line costs two extra provider API calls (mkdir +
|
|
21
|
+
* upload).
|
|
22
|
+
* - the sandbox must have a POSIX sh (subshell, `$?`, `rm`).
|
|
23
|
+
* If a provider ever adds real exec stdin, drop this for that
|
|
24
|
+
* provider (docker already streams via `docker exec -i`).
|
|
25
|
+
*/
|
|
26
|
+
export declare function stdinRedirect(line: string, path: string): string;
|
|
27
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/runtime/sandbox/daytona/constants.ts"],"names":[],"mappings":"AAkBA;;;;GAIG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEhE"}
|