@struktoai/mirage-node 0.0.5 → 0.0.7-alpha.1
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 +137 -79
- package/dist/accessor/disk.d.ts +6 -0
- package/dist/accessor/disk.d.ts.map +1 -0
- package/dist/accessor/disk.js +22 -0
- package/dist/accessor/disk.js.map +1 -0
- package/dist/accessor/email.d.ts +11 -0
- package/dist/accessor/email.d.ts.map +1 -0
- package/dist/accessor/email.js +57 -0
- package/dist/accessor/email.js.map +1 -0
- package/dist/accessor/gridfs.d.ts +13 -0
- package/dist/accessor/gridfs.d.ts.map +1 -0
- package/dist/accessor/gridfs.js +48 -0
- package/dist/accessor/gridfs.js.map +1 -0
- package/dist/accessor/hf.d.ts +38 -0
- package/dist/accessor/hf.d.ts.map +1 -0
- package/dist/accessor/hf.js +101 -0
- package/dist/accessor/hf.js.map +1 -0
- package/dist/accessor/hf_hub.d.ts +80 -0
- package/dist/accessor/hf_hub.d.ts.map +1 -0
- package/dist/accessor/hf_hub.js +122 -0
- package/dist/accessor/hf_hub.js.map +1 -0
- package/dist/accessor/nextcloud.d.ts +12 -0
- package/dist/accessor/nextcloud.d.ts.map +1 -0
- package/dist/accessor/nextcloud.js +26 -0
- package/dist/accessor/nextcloud.js.map +1 -0
- package/dist/accessor/ssh.d.ts +14 -0
- package/dist/accessor/ssh.d.ts.map +1 -0
- package/dist/accessor/ssh.js +105 -0
- package/dist/accessor/ssh.js.map +1 -0
- package/dist/cache/file/add.lua +16 -0
- package/dist/cache/file/redis.d.ts +41 -0
- package/dist/cache/file/redis.d.ts.map +1 -0
- package/dist/cache/file/redis.js +191 -0
- package/dist/cache/file/redis.js.map +1 -0
- package/dist/commands/builtin/disk/index.d.ts +3 -0
- package/dist/commands/builtin/disk/index.d.ts.map +1 -0
- package/dist/commands/builtin/disk/index.js +20 -0
- package/dist/commands/builtin/disk/index.js.map +1 -0
- package/dist/commands/builtin/disk/io.d.ts +4 -0
- package/dist/commands/builtin/disk/io.d.ts.map +1 -0
- package/dist/commands/builtin/disk/io.js +57 -0
- package/dist/commands/builtin/disk/io.js.map +1 -0
- package/dist/commands/builtin/email/_provision.d.ts +7 -0
- package/dist/commands/builtin/email/_provision.d.ts.map +1 -0
- package/dist/commands/builtin/email/_provision.js +42 -0
- package/dist/commands/builtin/email/_provision.js.map +1 -0
- package/dist/commands/builtin/email/find.d.ts +2 -0
- package/dist/commands/builtin/email/find.d.ts.map +1 -0
- package/dist/commands/builtin/email/find.js +51 -0
- package/dist/commands/builtin/email/find.js.map +1 -0
- package/dist/commands/builtin/email/grep.d.ts +4 -0
- package/dist/commands/builtin/email/grep.d.ts.map +1 -0
- package/dist/commands/builtin/email/grep.js +108 -0
- package/dist/commands/builtin/email/grep.js.map +1 -0
- package/dist/commands/builtin/email/index.d.ts +3 -0
- package/dist/commands/builtin/email/index.d.ts.map +1 -0
- package/dist/commands/builtin/email/index.js +31 -0
- package/dist/commands/builtin/email/index.js.map +1 -0
- package/dist/commands/builtin/email/io.d.ts +4 -0
- package/dist/commands/builtin/email/io.d.ts.map +1 -0
- package/dist/commands/builtin/email/io.js +28 -0
- package/dist/commands/builtin/email/io.js.map +1 -0
- package/dist/commands/builtin/email/rg.d.ts +2 -0
- package/dist/commands/builtin/email/rg.d.ts.map +1 -0
- package/dist/commands/builtin/email/rg.js +93 -0
- package/dist/commands/builtin/email/rg.js.map +1 -0
- package/dist/commands/builtin/gridfs/index.d.ts +3 -0
- package/dist/commands/builtin/gridfs/index.d.ts.map +1 -0
- package/dist/commands/builtin/gridfs/index.js +24 -0
- package/dist/commands/builtin/gridfs/index.js.map +1 -0
- package/dist/commands/builtin/gridfs/io.d.ts +4 -0
- package/dist/commands/builtin/gridfs/io.d.ts.map +1 -0
- package/dist/commands/builtin/gridfs/io.js +54 -0
- package/dist/commands/builtin/gridfs/io.js.map +1 -0
- package/dist/commands/builtin/hf/find.d.ts +2 -0
- package/dist/commands/builtin/hf/find.d.ts.map +1 -0
- package/dist/commands/builtin/hf/find.js +31 -0
- package/dist/commands/builtin/hf/find.js.map +1 -0
- package/dist/commands/builtin/hf/index.d.ts +3 -0
- package/dist/commands/builtin/hf/index.d.ts.map +1 -0
- package/dist/commands/builtin/hf/index.js +25 -0
- package/dist/commands/builtin/hf/index.js.map +1 -0
- package/dist/commands/builtin/hf/io.d.ts +4 -0
- package/dist/commands/builtin/hf/io.d.ts.map +1 -0
- package/dist/commands/builtin/hf/io.js +44 -0
- package/dist/commands/builtin/hf/io.js.map +1 -0
- package/dist/commands/builtin/hf_hub/index.d.ts +4 -0
- package/dist/commands/builtin/hf_hub/index.d.ts.map +1 -0
- package/dist/commands/builtin/hf_hub/index.js +30 -0
- package/dist/commands/builtin/hf_hub/index.js.map +1 -0
- package/dist/commands/builtin/hf_hub/io.d.ts +4 -0
- package/dist/commands/builtin/hf_hub/io.d.ts.map +1 -0
- package/dist/commands/builtin/hf_hub/io.js +54 -0
- package/dist/commands/builtin/hf_hub/io.js.map +1 -0
- package/dist/commands/builtin/nextcloud/index.d.ts +3 -0
- package/dist/commands/builtin/nextcloud/index.d.ts.map +1 -0
- package/dist/commands/builtin/nextcloud/index.js +7 -0
- package/dist/commands/builtin/nextcloud/index.js.map +1 -0
- package/dist/commands/builtin/nextcloud/io.d.ts +4 -0
- package/dist/commands/builtin/nextcloud/io.d.ts.map +1 -0
- package/dist/commands/builtin/nextcloud/io.js +41 -0
- package/dist/commands/builtin/nextcloud/io.js.map +1 -0
- package/dist/commands/builtin/ssh/index.d.ts +3 -0
- package/dist/commands/builtin/ssh/index.d.ts.map +1 -0
- package/dist/commands/builtin/ssh/index.js +20 -0
- package/dist/commands/builtin/ssh/index.js.map +1 -0
- package/dist/commands/builtin/ssh/io.d.ts +4 -0
- package/dist/commands/builtin/ssh/io.d.ts.map +1 -0
- package/dist/commands/builtin/ssh/io.js +58 -0
- package/dist/commands/builtin/ssh/io.js.map +1 -0
- package/dist/commands/cli/builtin/hf/accessor.d.ts +37 -0
- package/dist/commands/cli/builtin/hf/accessor.d.ts.map +1 -0
- package/dist/commands/cli/builtin/hf/accessor.js +80 -0
- package/dist/commands/cli/builtin/hf/accessor.js.map +1 -0
- package/dist/commands/cli/builtin/hf/auth.d.ts +14 -0
- package/dist/commands/cli/builtin/hf/auth.d.ts.map +1 -0
- package/dist/commands/cli/builtin/hf/auth.js +77 -0
- package/dist/commands/cli/builtin/hf/auth.js.map +1 -0
- package/dist/commands/cli/builtin/hf/download.d.ts +46 -0
- package/dist/commands/cli/builtin/hf/download.d.ts.map +1 -0
- package/dist/commands/cli/builtin/hf/download.js +296 -0
- package/dist/commands/cli/builtin/hf/download.js.map +1 -0
- package/dist/commands/cli/builtin/hf/env.d.ts +12 -0
- package/dist/commands/cli/builtin/hf/env.d.ts.map +1 -0
- package/dist/commands/cli/builtin/hf/env.js +37 -0
- package/dist/commands/cli/builtin/hf/env.js.map +1 -0
- package/dist/commands/cli/builtin/hf/files.d.ts +11 -0
- package/dist/commands/cli/builtin/hf/files.d.ts.map +1 -0
- package/dist/commands/cli/builtin/hf/files.js +43 -0
- package/dist/commands/cli/builtin/hf/files.js.map +1 -0
- package/dist/commands/cli/builtin/hf/index.d.ts +3 -0
- package/dist/commands/cli/builtin/hf/index.d.ts.map +1 -0
- package/dist/commands/cli/builtin/hf/index.js +286 -0
- package/dist/commands/cli/builtin/hf/index.js.map +1 -0
- package/dist/commands/cli/builtin/hf/repo.d.ts +16 -0
- package/dist/commands/cli/builtin/hf/repo.d.ts.map +1 -0
- package/dist/commands/cli/builtin/hf/repo.js +97 -0
- package/dist/commands/cli/builtin/hf/repo.js.map +1 -0
- package/dist/commands/cli/builtin/hf/upload.d.ts +21 -0
- package/dist/commands/cli/builtin/hf/upload.d.ts.map +1 -0
- package/dist/commands/cli/builtin/hf/upload.js +178 -0
- package/dist/commands/cli/builtin/hf/upload.js.map +1 -0
- package/dist/commands/cli/builtin/himalaya/builder.d.ts +65 -0
- package/dist/commands/cli/builtin/himalaya/builder.d.ts.map +1 -0
- package/dist/commands/cli/builtin/himalaya/builder.js +197 -0
- package/dist/commands/cli/builtin/himalaya/builder.js.map +1 -0
- package/dist/commands/cli/builtin/himalaya/compose.d.ts +4 -0
- package/dist/commands/cli/builtin/himalaya/compose.d.ts.map +1 -0
- package/dist/commands/cli/builtin/himalaya/compose.js +19 -0
- package/dist/commands/cli/builtin/himalaya/compose.js.map +1 -0
- package/dist/commands/cli/builtin/himalaya/deliver.d.ts +49 -0
- package/dist/commands/cli/builtin/himalaya/deliver.d.ts.map +1 -0
- package/dist/commands/cli/builtin/himalaya/deliver.js +94 -0
- package/dist/commands/cli/builtin/himalaya/deliver.js.map +1 -0
- package/dist/commands/cli/builtin/himalaya/forward.d.ts +4 -0
- package/dist/commands/cli/builtin/himalaya/forward.d.ts.map +1 -0
- package/dist/commands/cli/builtin/himalaya/forward.js +37 -0
- package/dist/commands/cli/builtin/himalaya/forward.js.map +1 -0
- package/dist/commands/cli/builtin/himalaya/index.d.ts +3 -0
- package/dist/commands/cli/builtin/himalaya/index.d.ts.map +1 -0
- package/dist/commands/cli/builtin/himalaya/index.js +201 -0
- package/dist/commands/cli/builtin/himalaya/index.js.map +1 -0
- package/dist/commands/cli/builtin/himalaya/list.d.ts +5 -0
- package/dist/commands/cli/builtin/himalaya/list.d.ts.map +1 -0
- package/dist/commands/cli/builtin/himalaya/list.js +41 -0
- package/dist/commands/cli/builtin/himalaya/list.js.map +1 -0
- package/dist/commands/cli/builtin/himalaya/query.d.ts +38 -0
- package/dist/commands/cli/builtin/himalaya/query.d.ts.map +1 -0
- package/dist/commands/cli/builtin/himalaya/query.js +296 -0
- package/dist/commands/cli/builtin/himalaya/query.js.map +1 -0
- package/dist/commands/cli/builtin/himalaya/read.d.ts +4 -0
- package/dist/commands/cli/builtin/himalaya/read.d.ts.map +1 -0
- package/dist/commands/cli/builtin/himalaya/read.js +40 -0
- package/dist/commands/cli/builtin/himalaya/read.js.map +1 -0
- package/dist/commands/cli/builtin/himalaya/reply.d.ts +4 -0
- package/dist/commands/cli/builtin/himalaya/reply.d.ts.map +1 -0
- package/dist/commands/cli/builtin/himalaya/reply.js +37 -0
- package/dist/commands/cli/builtin/himalaya/reply.js.map +1 -0
- package/dist/commands/cli/builtin/himalaya/search.d.ts +4 -0
- package/dist/commands/cli/builtin/himalaya/search.d.ts.map +1 -0
- package/dist/commands/cli/builtin/himalaya/search.js +44 -0
- package/dist/commands/cli/builtin/himalaya/search.js.map +1 -0
- package/dist/commands/cli/builtin/himalaya/send.d.ts +4 -0
- package/dist/commands/cli/builtin/himalaya/send.d.ts.map +1 -0
- package/dist/commands/cli/builtin/himalaya/send.js +43 -0
- package/dist/commands/cli/builtin/himalaya/send.js.map +1 -0
- package/dist/commands/cli/builtin/himalaya/smtp.d.ts +20 -0
- package/dist/commands/cli/builtin/himalaya/smtp.d.ts.map +1 -0
- package/dist/commands/cli/builtin/himalaya/smtp.js +116 -0
- package/dist/commands/cli/builtin/himalaya/smtp.js.map +1 -0
- package/dist/commands/cli/builtin/himalaya/util.d.ts +17 -0
- package/dist/commands/cli/builtin/himalaya/util.d.ts.map +1 -0
- package/dist/commands/cli/builtin/himalaya/util.js +120 -0
- package/dist/commands/cli/builtin/himalaya/util.js.map +1 -0
- package/dist/commands/native_fixture.d.ts +25 -0
- package/dist/commands/native_fixture.d.ts.map +1 -0
- package/dist/commands/native_fixture.js +186 -0
- package/dist/commands/native_fixture.js.map +1 -0
- package/dist/compression_codecs.d.ts +2 -0
- package/dist/compression_codecs.d.ts.map +1 -0
- package/dist/compression_codecs.js +34 -0
- package/dist/compression_codecs.js.map +1 -0
- package/dist/config.d.ts +191 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +967 -0
- package/dist/config.js.map +1 -0
- package/dist/core/disk/append.d.ts +4 -0
- package/dist/core/disk/append.d.ts.map +1 -0
- package/dist/core/disk/append.js +33 -0
- package/dist/core/disk/append.js.map +1 -0
- package/dist/core/disk/constants.d.ts +3 -0
- package/dist/core/disk/constants.d.ts.map +1 -0
- package/dist/core/disk/constants.js +16 -0
- package/dist/core/disk/constants.js.map +1 -0
- package/dist/core/disk/copy.d.ts +4 -0
- package/dist/core/disk/copy.d.ts.map +1 -0
- package/dist/core/disk/copy.js +38 -0
- package/dist/core/disk/copy.js.map +1 -0
- package/dist/core/disk/create.d.ts +4 -0
- package/dist/core/disk/create.d.ts.map +1 -0
- package/dist/core/disk/create.js +18 -0
- package/dist/core/disk/create.js.map +1 -0
- package/dist/core/disk/dest.d.ts +4 -0
- package/dist/core/disk/dest.d.ts.map +1 -0
- package/dist/core/disk/dest.js +44 -0
- package/dist/core/disk/dest.js.map +1 -0
- package/dist/core/disk/du/entries.d.ts +4 -0
- package/dist/core/disk/du/entries.d.ts.map +1 -0
- package/dist/core/disk/du/entries.js +25 -0
- package/dist/core/disk/du/entries.js.map +1 -0
- package/dist/core/disk/du/index.d.ts +3 -0
- package/dist/core/disk/du/index.d.ts.map +1 -0
- package/dist/core/disk/du/index.js +16 -0
- package/dist/core/disk/du/index.js.map +1 -0
- package/dist/core/disk/du/size.d.ts +4 -0
- package/dist/core/disk/du/size.d.ts.map +1 -0
- package/dist/core/disk/du/size.js +21 -0
- package/dist/core/disk/du/size.js.map +1 -0
- package/dist/core/disk/du/walk.d.ts +4 -0
- package/dist/core/disk/du/walk.d.ts.map +1 -0
- package/dist/core/disk/du/walk.js +82 -0
- package/dist/core/disk/du/walk.js.map +1 -0
- package/dist/core/disk/entry.d.ts +11 -0
- package/dist/core/disk/entry.d.ts.map +1 -0
- package/dist/core/disk/entry.js +42 -0
- package/dist/core/disk/entry.js.map +1 -0
- package/dist/core/disk/errors.d.ts +3 -0
- package/dist/core/disk/errors.d.ts.map +1 -0
- package/dist/core/disk/errors.js +31 -0
- package/dist/core/disk/errors.js.map +1 -0
- package/dist/core/disk/exists.d.ts +4 -0
- package/dist/core/disk/exists.d.ts.map +1 -0
- package/dist/core/disk/exists.js +26 -0
- package/dist/core/disk/exists.js.map +1 -0
- package/dist/core/disk/find.d.ts +21 -0
- package/dist/core/disk/find.d.ts.map +1 -0
- package/dist/core/disk/find.js +143 -0
- package/dist/core/disk/find.js.map +1 -0
- package/dist/core/disk/mkdir.d.ts +4 -0
- package/dist/core/disk/mkdir.d.ts.map +1 -0
- package/dist/core/disk/mkdir.js +51 -0
- package/dist/core/disk/mkdir.js.map +1 -0
- package/dist/core/disk/read.d.ts +18 -0
- package/dist/core/disk/read.d.ts.map +1 -0
- package/dist/core/disk/read.js +92 -0
- package/dist/core/disk/read.js.map +1 -0
- package/dist/core/disk/readdir.d.ts +5 -0
- package/dist/core/disk/readdir.d.ts.map +1 -0
- package/dist/core/disk/readdir.js +73 -0
- package/dist/core/disk/readdir.js.map +1 -0
- package/dist/core/disk/rename.d.ts +4 -0
- package/dist/core/disk/rename.d.ts.map +1 -0
- package/dist/core/disk/rename.js +36 -0
- package/dist/core/disk/rename.js.map +1 -0
- package/dist/core/disk/rm.d.ts +4 -0
- package/dist/core/disk/rm.d.ts.map +1 -0
- package/dist/core/disk/rm.js +22 -0
- package/dist/core/disk/rm.js.map +1 -0
- package/dist/core/disk/rmdir.d.ts +4 -0
- package/dist/core/disk/rmdir.d.ts.map +1 -0
- package/dist/core/disk/rmdir.js +29 -0
- package/dist/core/disk/rmdir.js.map +1 -0
- package/dist/core/disk/set_attrs.d.ts +11 -0
- package/dist/core/disk/set_attrs.d.ts.map +1 -0
- package/dist/core/disk/set_attrs.js +53 -0
- package/dist/core/disk/set_attrs.js.map +1 -0
- package/dist/core/disk/stat.d.ts +5 -0
- package/dist/core/disk/stat.d.ts.map +1 -0
- package/dist/core/disk/stat.js +58 -0
- package/dist/core/disk/stat.js.map +1 -0
- package/dist/core/disk/stream.d.ts +4 -0
- package/dist/core/disk/stream.d.ts.map +1 -0
- package/dist/core/disk/stream.js +40 -0
- package/dist/core/disk/stream.js.map +1 -0
- package/dist/core/disk/truncate.d.ts +4 -0
- package/dist/core/disk/truncate.d.ts.map +1 -0
- package/dist/core/disk/truncate.js +40 -0
- package/dist/core/disk/truncate.js.map +1 -0
- package/dist/core/disk/unlink.d.ts +4 -0
- package/dist/core/disk/unlink.d.ts.map +1 -0
- package/dist/core/disk/unlink.js +29 -0
- package/dist/core/disk/unlink.js.map +1 -0
- package/dist/core/disk/utils.d.ts +3 -0
- package/dist/core/disk/utils.d.ts.map +1 -0
- package/dist/core/disk/utils.js +26 -0
- package/dist/core/disk/utils.js.map +1 -0
- package/dist/core/disk/watch/constants.d.ts +3 -0
- package/dist/core/disk/watch/constants.d.ts.map +1 -0
- package/dist/core/disk/watch/constants.js +20 -0
- package/dist/core/disk/watch/constants.js.map +1 -0
- package/dist/core/disk/watch/hook.d.ts +54 -0
- package/dist/core/disk/watch/hook.d.ts.map +1 -0
- package/dist/core/disk/watch/hook.js +108 -0
- package/dist/core/disk/watch/hook.js.map +1 -0
- package/dist/core/disk/watch/index.d.ts +2 -0
- package/dist/core/disk/watch/index.d.ts.map +1 -0
- package/dist/core/disk/watch/index.js +15 -0
- package/dist/core/disk/watch/index.js.map +1 -0
- package/dist/core/disk/watch/walk.d.ts +22 -0
- package/dist/core/disk/watch/walk.d.ts.map +1 -0
- package/dist/core/disk/watch/walk.js +100 -0
- package/dist/core/disk/watch/walk.js.map +1 -0
- package/dist/core/disk/write.d.ts +4 -0
- package/dist/core/disk/write.d.ts.map +1 -0
- package/dist/core/disk/write.js +36 -0
- package/dist/core/disk/write.js.map +1 -0
- package/dist/core/email/_parse.d.ts +32 -0
- package/dist/core/email/_parse.d.ts.map +1 -0
- package/dist/core/email/_parse.js +87 -0
- package/dist/core/email/_parse.js.map +1 -0
- package/dist/core/email/client.d.ts +58 -0
- package/dist/core/email/client.d.ts.map +1 -0
- package/dist/core/email/client.js +328 -0
- package/dist/core/email/client.js.map +1 -0
- package/dist/core/email/config.d.ts +21 -0
- package/dist/core/email/config.d.ts.map +1 -0
- package/dist/core/email/config.js +55 -0
- package/dist/core/email/config.js.map +1 -0
- package/dist/core/email/folders.d.ts +3 -0
- package/dist/core/email/folders.d.ts.map +1 -0
- package/dist/core/email/folders.js +18 -0
- package/dist/core/email/folders.js.map +1 -0
- package/dist/core/email/read.d.ts +5 -0
- package/dist/core/email/read.d.ts.map +1 -0
- package/dist/core/email/read.js +41 -0
- package/dist/core/email/read.js.map +1 -0
- package/dist/core/email/readdir.d.ts +16 -0
- package/dist/core/email/readdir.d.ts.map +1 -0
- package/dist/core/email/readdir.js +222 -0
- package/dist/core/email/readdir.js.map +1 -0
- package/dist/core/email/render.d.ts +5 -0
- package/dist/core/email/render.d.ts.map +1 -0
- package/dist/core/email/render.js +42 -0
- package/dist/core/email/render.js.map +1 -0
- package/dist/core/email/scope.d.ts +3 -0
- package/dist/core/email/scope.d.ts.map +1 -0
- package/dist/core/email/scope.js +49 -0
- package/dist/core/email/scope.js.map +1 -0
- package/dist/core/email/search.d.ts +5 -0
- package/dist/core/email/search.d.ts.map +1 -0
- package/dist/core/email/search.js +67 -0
- package/dist/core/email/search.js.map +1 -0
- package/dist/core/email/stat.d.ts +5 -0
- package/dist/core/email/stat.d.ts.map +1 -0
- package/dist/core/email/stat.js +56 -0
- package/dist/core/email/stat.js.map +1 -0
- package/dist/core/gridfs/client.d.ts +37 -0
- package/dist/core/gridfs/client.d.ts.map +1 -0
- package/dist/core/gridfs/client.js +129 -0
- package/dist/core/gridfs/client.js.map +1 -0
- package/dist/core/gridfs/constants.d.ts +2 -0
- package/dist/core/gridfs/constants.d.ts.map +1 -0
- package/dist/core/gridfs/constants.js +15 -0
- package/dist/core/gridfs/constants.js.map +1 -0
- package/dist/core/gridfs/copy.d.ts +2 -0
- package/dist/core/gridfs/copy.d.ts.map +1 -0
- package/dist/core/gridfs/copy.js +18 -0
- package/dist/core/gridfs/copy.js.map +1 -0
- package/dist/core/gridfs/create.d.ts +2 -0
- package/dist/core/gridfs/create.d.ts.map +1 -0
- package/dist/core/gridfs/create.js +17 -0
- package/dist/core/gridfs/create.js.map +1 -0
- package/dist/core/gridfs/driver.d.ts +20 -0
- package/dist/core/gridfs/driver.d.ts.map +1 -0
- package/dist/core/gridfs/driver.js +284 -0
- package/dist/core/gridfs/driver.js.map +1 -0
- package/dist/core/gridfs/du/entries.d.ts +2 -0
- package/dist/core/gridfs/du/entries.d.ts.map +1 -0
- package/dist/core/gridfs/du/entries.js +17 -0
- package/dist/core/gridfs/du/entries.js.map +1 -0
- package/dist/core/gridfs/du/index.d.ts +3 -0
- package/dist/core/gridfs/du/index.d.ts.map +1 -0
- package/dist/core/gridfs/du/index.js +16 -0
- package/dist/core/gridfs/du/index.js.map +1 -0
- package/dist/core/gridfs/du/size.d.ts +2 -0
- package/dist/core/gridfs/du/size.d.ts.map +1 -0
- package/dist/core/gridfs/du/size.js +17 -0
- package/dist/core/gridfs/du/size.js.map +1 -0
- package/dist/core/gridfs/exists.d.ts +2 -0
- package/dist/core/gridfs/exists.d.ts.map +1 -0
- package/dist/core/gridfs/exists.js +17 -0
- package/dist/core/gridfs/exists.js.map +1 -0
- package/dist/core/gridfs/find.d.ts +2 -0
- package/dist/core/gridfs/find.d.ts.map +1 -0
- package/dist/core/gridfs/find.js +17 -0
- package/dist/core/gridfs/find.js.map +1 -0
- package/dist/core/gridfs/mkdir.d.ts +2 -0
- package/dist/core/gridfs/mkdir.d.ts.map +1 -0
- package/dist/core/gridfs/mkdir.js +17 -0
- package/dist/core/gridfs/mkdir.js.map +1 -0
- package/dist/core/gridfs/read.d.ts +12 -0
- package/dist/core/gridfs/read.d.ts.map +1 -0
- package/dist/core/gridfs/read.js +99 -0
- package/dist/core/gridfs/read.js.map +1 -0
- package/dist/core/gridfs/readdir.d.ts +2 -0
- package/dist/core/gridfs/readdir.d.ts.map +1 -0
- package/dist/core/gridfs/readdir.js +17 -0
- package/dist/core/gridfs/readdir.js.map +1 -0
- package/dist/core/gridfs/rename.d.ts +2 -0
- package/dist/core/gridfs/rename.d.ts.map +1 -0
- package/dist/core/gridfs/rename.js +18 -0
- package/dist/core/gridfs/rename.js.map +1 -0
- package/dist/core/gridfs/rm.d.ts +2 -0
- package/dist/core/gridfs/rm.d.ts.map +1 -0
- package/dist/core/gridfs/rm.js +17 -0
- package/dist/core/gridfs/rm.js.map +1 -0
- package/dist/core/gridfs/rmdir.d.ts +2 -0
- package/dist/core/gridfs/rmdir.d.ts.map +1 -0
- package/dist/core/gridfs/rmdir.js +17 -0
- package/dist/core/gridfs/rmdir.js.map +1 -0
- package/dist/core/gridfs/stat.d.ts +2 -0
- package/dist/core/gridfs/stat.d.ts.map +1 -0
- package/dist/core/gridfs/stat.js +17 -0
- package/dist/core/gridfs/stat.js.map +1 -0
- package/dist/core/gridfs/stream.d.ts +17 -0
- package/dist/core/gridfs/stream.d.ts.map +1 -0
- package/dist/core/gridfs/stream.js +75 -0
- package/dist/core/gridfs/stream.js.map +1 -0
- package/dist/core/gridfs/truncate.d.ts +2 -0
- package/dist/core/gridfs/truncate.d.ts.map +1 -0
- package/dist/core/gridfs/truncate.js +17 -0
- package/dist/core/gridfs/truncate.js.map +1 -0
- package/dist/core/gridfs/unlink.d.ts +2 -0
- package/dist/core/gridfs/unlink.d.ts.map +1 -0
- package/dist/core/gridfs/unlink.js +17 -0
- package/dist/core/gridfs/unlink.js.map +1 -0
- package/dist/core/gridfs/watch.d.ts +4 -0
- package/dist/core/gridfs/watch.d.ts.map +1 -0
- package/dist/core/gridfs/watch.js +68 -0
- package/dist/core/gridfs/watch.js.map +1 -0
- package/dist/core/gridfs/write.d.ts +2 -0
- package/dist/core/gridfs/write.d.ts.map +1 -0
- package/dist/core/gridfs/write.js +17 -0
- package/dist/core/gridfs/write.js.map +1 -0
- package/dist/core/hf/constants.d.ts +3 -0
- package/dist/core/hf/constants.d.ts.map +1 -0
- package/dist/core/hf/constants.js +16 -0
- package/dist/core/hf/constants.js.map +1 -0
- package/dist/core/hf/create.d.ts +2 -0
- package/dist/core/hf/create.d.ts.map +1 -0
- package/dist/core/hf/create.js +17 -0
- package/dist/core/hf/create.js.map +1 -0
- package/dist/core/hf/driver.d.ts +5 -0
- package/dist/core/hf/driver.d.ts.map +1 -0
- package/dist/core/hf/driver.js +222 -0
- package/dist/core/hf/driver.js.map +1 -0
- package/dist/core/hf/du/entries.d.ts +2 -0
- package/dist/core/hf/du/entries.d.ts.map +1 -0
- package/dist/core/hf/du/entries.js +17 -0
- package/dist/core/hf/du/entries.js.map +1 -0
- package/dist/core/hf/du/index.d.ts +3 -0
- package/dist/core/hf/du/index.d.ts.map +1 -0
- package/dist/core/hf/du/index.js +16 -0
- package/dist/core/hf/du/index.js.map +1 -0
- package/dist/core/hf/du/size.d.ts +2 -0
- package/dist/core/hf/du/size.d.ts.map +1 -0
- package/dist/core/hf/du/size.js +17 -0
- package/dist/core/hf/du/size.js.map +1 -0
- package/dist/core/hf/exists.d.ts +2 -0
- package/dist/core/hf/exists.d.ts.map +1 -0
- package/dist/core/hf/exists.js +17 -0
- package/dist/core/hf/exists.js.map +1 -0
- package/dist/core/hf/find.d.ts +2 -0
- package/dist/core/hf/find.d.ts.map +1 -0
- package/dist/core/hf/find.js +17 -0
- package/dist/core/hf/find.js.map +1 -0
- package/dist/core/hf/mkdir.d.ts +2 -0
- package/dist/core/hf/mkdir.d.ts.map +1 -0
- package/dist/core/hf/mkdir.js +17 -0
- package/dist/core/hf/mkdir.js.map +1 -0
- package/dist/core/hf/mock.d.ts +34 -0
- package/dist/core/hf/mock.d.ts.map +1 -0
- package/dist/core/hf/mock.js +147 -0
- package/dist/core/hf/mock.js.map +1 -0
- package/dist/core/hf/read.d.ts +9 -0
- package/dist/core/hf/read.d.ts.map +1 -0
- package/dist/core/hf/read.js +53 -0
- package/dist/core/hf/read.js.map +1 -0
- package/dist/core/hf/readdir.d.ts +2 -0
- package/dist/core/hf/readdir.d.ts.map +1 -0
- package/dist/core/hf/readdir.js +17 -0
- package/dist/core/hf/readdir.js.map +1 -0
- package/dist/core/hf/rm.d.ts +2 -0
- package/dist/core/hf/rm.d.ts.map +1 -0
- package/dist/core/hf/rm.js +17 -0
- package/dist/core/hf/rm.js.map +1 -0
- package/dist/core/hf/stat.d.ts +2 -0
- package/dist/core/hf/stat.d.ts.map +1 -0
- package/dist/core/hf/stat.js +17 -0
- package/dist/core/hf/stat.js.map +1 -0
- package/dist/core/hf/stream.d.ts +6 -0
- package/dist/core/hf/stream.d.ts.map +1 -0
- package/dist/core/hf/stream.js +48 -0
- package/dist/core/hf/stream.js.map +1 -0
- package/dist/core/hf/unlink.d.ts +2 -0
- package/dist/core/hf/unlink.d.ts.map +1 -0
- package/dist/core/hf/unlink.js +17 -0
- package/dist/core/hf/unlink.js.map +1 -0
- package/dist/core/hf/util.d.ts +5 -0
- package/dist/core/hf/util.d.ts.map +1 -0
- package/dist/core/hf/util.js +30 -0
- package/dist/core/hf/util.js.map +1 -0
- package/dist/core/hf/watch.d.ts +12 -0
- package/dist/core/hf/watch.d.ts.map +1 -0
- package/dist/core/hf/watch.js +28 -0
- package/dist/core/hf/watch.js.map +1 -0
- package/dist/core/hf/write.d.ts +2 -0
- package/dist/core/hf/write.d.ts.map +1 -0
- package/dist/core/hf/write.js +17 -0
- package/dist/core/hf/write.js.map +1 -0
- package/dist/core/hf_hub/account.d.ts +4 -0
- package/dist/core/hf_hub/account.d.ts.map +1 -0
- package/dist/core/hf_hub/account.js +22 -0
- package/dist/core/hf_hub/account.js.map +1 -0
- package/dist/core/hf_hub/admin.d.ts +41 -0
- package/dist/core/hf_hub/admin.d.ts.map +1 -0
- package/dist/core/hf_hub/admin.js +98 -0
- package/dist/core/hf_hub/admin.js.map +1 -0
- package/dist/core/hf_hub/cache.d.ts +47 -0
- package/dist/core/hf_hub/cache.d.ts.map +1 -0
- package/dist/core/hf_hub/cache.js +81 -0
- package/dist/core/hf_hub/cache.js.map +1 -0
- package/dist/core/hf_hub/client.d.ts +81 -0
- package/dist/core/hf_hub/client.d.ts.map +1 -0
- package/dist/core/hf_hub/client.js +197 -0
- package/dist/core/hf_hub/client.js.map +1 -0
- package/dist/core/hf_hub/commit.d.ts +54 -0
- package/dist/core/hf_hub/commit.d.ts.map +1 -0
- package/dist/core/hf_hub/commit.js +124 -0
- package/dist/core/hf_hub/commit.js.map +1 -0
- package/dist/core/hf_hub/config.d.ts +18 -0
- package/dist/core/hf_hub/config.d.ts.map +1 -0
- package/dist/core/hf_hub/config.js +33 -0
- package/dist/core/hf_hub/config.js.map +1 -0
- package/dist/core/hf_hub/constants.d.ts +18 -0
- package/dist/core/hf_hub/constants.d.ts.map +1 -0
- package/dist/core/hf_hub/constants.js +80 -0
- package/dist/core/hf_hub/constants.js.map +1 -0
- package/dist/core/hf_hub/exists.d.ts +6 -0
- package/dist/core/hf_hub/exists.d.ts.map +1 -0
- package/dist/core/hf_hub/exists.js +25 -0
- package/dist/core/hf_hub/exists.js.map +1 -0
- package/dist/core/hf_hub/lookup.d.ts +33 -0
- package/dist/core/hf_hub/lookup.d.ts.map +1 -0
- package/dist/core/hf_hub/lookup.js +80 -0
- package/dist/core/hf_hub/lookup.js.map +1 -0
- package/dist/core/hf_hub/read.d.ts +18 -0
- package/dist/core/hf_hub/read.d.ts.map +1 -0
- package/dist/core/hf_hub/read.js +54 -0
- package/dist/core/hf_hub/read.js.map +1 -0
- package/dist/core/hf_hub/readdir.d.ts +10 -0
- package/dist/core/hf_hub/readdir.d.ts.map +1 -0
- package/dist/core/hf_hub/readdir.js +35 -0
- package/dist/core/hf_hub/readdir.js.map +1 -0
- package/dist/core/hf_hub/repo.d.ts +40 -0
- package/dist/core/hf_hub/repo.d.ts.map +1 -0
- package/dist/core/hf_hub/repo.js +80 -0
- package/dist/core/hf_hub/repo.js.map +1 -0
- package/dist/core/hf_hub/stat.d.ts +6 -0
- package/dist/core/hf_hub/stat.d.ts.map +1 -0
- package/dist/core/hf_hub/stat.js +66 -0
- package/dist/core/hf_hub/stat.js.map +1 -0
- package/dist/core/hf_hub/stream.d.ts +7 -0
- package/dist/core/hf_hub/stream.d.ts.map +1 -0
- package/dist/core/hf_hub/stream.js +32 -0
- package/dist/core/hf_hub/stream.js.map +1 -0
- package/dist/core/hf_hub/tree.d.ts +105 -0
- package/dist/core/hf_hub/tree.d.ts.map +1 -0
- package/dist/core/hf_hub/tree.js +334 -0
- package/dist/core/hf_hub/tree.js.map +1 -0
- package/dist/core/hf_hub/tree_entry.d.ts +31 -0
- package/dist/core/hf_hub/tree_entry.d.ts.map +1 -0
- package/dist/core/hf_hub/tree_entry.js +17 -0
- package/dist/core/hf_hub/tree_entry.js.map +1 -0
- package/dist/core/hf_hub/watch.d.ts +4 -0
- package/dist/core/hf_hub/watch.d.ts.map +1 -0
- package/dist/core/hf_hub/watch.js +63 -0
- package/dist/core/hf_hub/watch.js.map +1 -0
- package/dist/core/nextcloud/constants.d.ts +3 -0
- package/dist/core/nextcloud/constants.d.ts.map +1 -0
- package/dist/core/nextcloud/constants.js +3 -0
- package/dist/core/nextcloud/constants.js.map +1 -0
- package/dist/core/nextcloud/copy.d.ts +4 -0
- package/dist/core/nextcloud/copy.d.ts.map +1 -0
- package/dist/core/nextcloud/copy.js +16 -0
- package/dist/core/nextcloud/copy.js.map +1 -0
- package/dist/core/nextcloud/create.d.ts +5 -0
- package/dist/core/nextcloud/create.d.ts.map +1 -0
- package/dist/core/nextcloud/create.js +5 -0
- package/dist/core/nextcloud/create.js.map +1 -0
- package/dist/core/nextcloud/du/entries.d.ts +4 -0
- package/dist/core/nextcloud/du/entries.d.ts.map +1 -0
- package/dist/core/nextcloud/du/entries.js +36 -0
- package/dist/core/nextcloud/du/entries.js.map +1 -0
- package/dist/core/nextcloud/du/index.d.ts +3 -0
- package/dist/core/nextcloud/du/index.d.ts.map +1 -0
- package/dist/core/nextcloud/du/index.js +3 -0
- package/dist/core/nextcloud/du/index.js.map +1 -0
- package/dist/core/nextcloud/du/size.d.ts +4 -0
- package/dist/core/nextcloud/du/size.d.ts.map +1 -0
- package/dist/core/nextcloud/du/size.js +28 -0
- package/dist/core/nextcloud/du/size.js.map +1 -0
- package/dist/core/nextcloud/du/walk.d.ts +4 -0
- package/dist/core/nextcloud/du/walk.d.ts.map +1 -0
- package/dist/core/nextcloud/du/walk.js +12 -0
- package/dist/core/nextcloud/du/walk.js.map +1 -0
- package/dist/core/nextcloud/exists.d.ts +4 -0
- package/dist/core/nextcloud/exists.d.ts.map +1 -0
- package/dist/core/nextcloud/exists.js +13 -0
- package/dist/core/nextcloud/exists.js.map +1 -0
- package/dist/core/nextcloud/find.d.ts +5 -0
- package/dist/core/nextcloud/find.d.ts.map +1 -0
- package/dist/core/nextcloud/find.js +230 -0
- package/dist/core/nextcloud/find.js.map +1 -0
- package/dist/core/nextcloud/mkdir.d.ts +15 -0
- package/dist/core/nextcloud/mkdir.d.ts.map +1 -0
- package/dist/core/nextcloud/mkdir.js +22 -0
- package/dist/core/nextcloud/mkdir.js.map +1 -0
- package/dist/core/nextcloud/mock.d.ts +28 -0
- package/dist/core/nextcloud/mock.d.ts.map +1 -0
- package/dist/core/nextcloud/mock.js +117 -0
- package/dist/core/nextcloud/mock.js.map +1 -0
- package/dist/core/nextcloud/read.d.ts +9 -0
- package/dist/core/nextcloud/read.d.ts.map +1 -0
- package/dist/core/nextcloud/read.js +46 -0
- package/dist/core/nextcloud/read.js.map +1 -0
- package/dist/core/nextcloud/readdir.d.ts +5 -0
- package/dist/core/nextcloud/readdir.d.ts.map +1 -0
- package/dist/core/nextcloud/readdir.js +120 -0
- package/dist/core/nextcloud/readdir.js.map +1 -0
- package/dist/core/nextcloud/rename.d.ts +4 -0
- package/dist/core/nextcloud/rename.d.ts.map +1 -0
- package/dist/core/nextcloud/rename.js +17 -0
- package/dist/core/nextcloud/rename.js.map +1 -0
- package/dist/core/nextcloud/rm.d.ts +4 -0
- package/dist/core/nextcloud/rm.d.ts.map +1 -0
- package/dist/core/nextcloud/rm.js +18 -0
- package/dist/core/nextcloud/rm.js.map +1 -0
- package/dist/core/nextcloud/rmdir.d.ts +18 -0
- package/dist/core/nextcloud/rmdir.d.ts.map +1 -0
- package/dist/core/nextcloud/rmdir.js +39 -0
- package/dist/core/nextcloud/rmdir.js.map +1 -0
- package/dist/core/nextcloud/search/client.d.ts +5 -0
- package/dist/core/nextcloud/search/client.d.ts.map +1 -0
- package/dist/core/nextcloud/search/client.js +51 -0
- package/dist/core/nextcloud/search/client.js.map +1 -0
- package/dist/core/nextcloud/search/constants.d.ts +18 -0
- package/dist/core/nextcloud/search/constants.d.ts.map +1 -0
- package/dist/core/nextcloud/search/constants.js +38 -0
- package/dist/core/nextcloud/search/constants.js.map +1 -0
- package/dist/core/nextcloud/search/index.d.ts +4 -0
- package/dist/core/nextcloud/search/index.d.ts.map +1 -0
- package/dist/core/nextcloud/search/index.js +3 -0
- package/dist/core/nextcloud/search/index.js.map +1 -0
- package/dist/core/nextcloud/search/query.d.ts +6 -0
- package/dist/core/nextcloud/search/query.d.ts.map +1 -0
- package/dist/core/nextcloud/search/query.js +181 -0
- package/dist/core/nextcloud/search/query.js.map +1 -0
- package/dist/core/nextcloud/search/response.d.ts +3 -0
- package/dist/core/nextcloud/search/response.d.ts.map +1 -0
- package/dist/core/nextcloud/search/response.js +108 -0
- package/dist/core/nextcloud/search/response.js.map +1 -0
- package/dist/core/nextcloud/search/target.d.ts +6 -0
- package/dist/core/nextcloud/search/target.d.ts.map +1 -0
- package/dist/core/nextcloud/search/target.js +54 -0
- package/dist/core/nextcloud/search/target.js.map +1 -0
- package/dist/core/nextcloud/search/types.d.ts +49 -0
- package/dist/core/nextcloud/search/types.d.ts.map +1 -0
- package/dist/core/nextcloud/search/types.js +16 -0
- package/dist/core/nextcloud/search/types.js.map +1 -0
- package/dist/core/nextcloud/stat.d.ts +6 -0
- package/dist/core/nextcloud/stat.d.ts.map +1 -0
- package/dist/core/nextcloud/stat.js +78 -0
- package/dist/core/nextcloud/stat.js.map +1 -0
- package/dist/core/nextcloud/stream.d.ts +6 -0
- package/dist/core/nextcloud/stream.d.ts.map +1 -0
- package/dist/core/nextcloud/stream.js +32 -0
- package/dist/core/nextcloud/stream.js.map +1 -0
- package/dist/core/nextcloud/truncate.d.ts +4 -0
- package/dist/core/nextcloud/truncate.d.ts.map +1 -0
- package/dist/core/nextcloud/truncate.js +24 -0
- package/dist/core/nextcloud/truncate.js.map +1 -0
- package/dist/core/nextcloud/unlink.d.ts +4 -0
- package/dist/core/nextcloud/unlink.d.ts.map +1 -0
- package/dist/core/nextcloud/unlink.js +20 -0
- package/dist/core/nextcloud/unlink.js.map +1 -0
- package/dist/core/nextcloud/util.d.ts +5 -0
- package/dist/core/nextcloud/util.d.ts.map +1 -0
- package/dist/core/nextcloud/util.js +15 -0
- package/dist/core/nextcloud/util.js.map +1 -0
- package/dist/core/nextcloud/watch.d.ts +6 -0
- package/dist/core/nextcloud/watch.d.ts.map +1 -0
- package/dist/core/nextcloud/watch.js +22 -0
- package/dist/core/nextcloud/watch.js.map +1 -0
- package/dist/core/nextcloud/write.d.ts +5 -0
- package/dist/core/nextcloud/write.d.ts.map +1 -0
- package/dist/core/nextcloud/write.js +20 -0
- package/dist/core/nextcloud/write.js.map +1 -0
- package/dist/core/opendal/types.d.ts +5 -0
- package/dist/core/opendal/types.d.ts.map +1 -0
- package/dist/core/opendal/types.js +15 -0
- package/dist/core/opendal/types.js.map +1 -0
- package/dist/core/opendal/watch.d.ts +23 -0
- package/dist/core/opendal/watch.d.ts.map +1 -0
- package/dist/core/opendal/watch.js +96 -0
- package/dist/core/opendal/watch.js.map +1 -0
- package/dist/core/ssh/append.d.ts +4 -0
- package/dist/core/ssh/append.d.ts.map +1 -0
- package/dist/core/ssh/append.js +30 -0
- package/dist/core/ssh/append.js.map +1 -0
- package/dist/core/ssh/constants.d.ts +3 -0
- package/dist/core/ssh/constants.d.ts.map +1 -0
- package/dist/core/ssh/constants.js +16 -0
- package/dist/core/ssh/constants.js.map +1 -0
- package/dist/core/ssh/copy.d.ts +4 -0
- package/dist/core/ssh/copy.d.ts.map +1 -0
- package/dist/core/ssh/copy.js +20 -0
- package/dist/core/ssh/copy.js.map +1 -0
- package/dist/core/ssh/create.d.ts +4 -0
- package/dist/core/ssh/create.d.ts.map +1 -0
- package/dist/core/ssh/create.js +18 -0
- package/dist/core/ssh/create.js.map +1 -0
- package/dist/core/ssh/du/entries.d.ts +4 -0
- package/dist/core/ssh/du/entries.d.ts.map +1 -0
- package/dist/core/ssh/du/entries.js +25 -0
- package/dist/core/ssh/du/entries.js.map +1 -0
- package/dist/core/ssh/du/index.d.ts +3 -0
- package/dist/core/ssh/du/index.d.ts.map +1 -0
- package/dist/core/ssh/du/index.js +16 -0
- package/dist/core/ssh/du/index.js.map +1 -0
- package/dist/core/ssh/du/size.d.ts +4 -0
- package/dist/core/ssh/du/size.d.ts.map +1 -0
- package/dist/core/ssh/du/size.js +20 -0
- package/dist/core/ssh/du/size.js.map +1 -0
- package/dist/core/ssh/du/walk.d.ts +4 -0
- package/dist/core/ssh/du/walk.d.ts.map +1 -0
- package/dist/core/ssh/du/walk.js +105 -0
- package/dist/core/ssh/du/walk.js.map +1 -0
- package/dist/core/ssh/entry.d.ts +11 -0
- package/dist/core/ssh/entry.d.ts.map +1 -0
- package/dist/core/ssh/entry.js +61 -0
- package/dist/core/ssh/entry.js.map +1 -0
- package/dist/core/ssh/exists.d.ts +4 -0
- package/dist/core/ssh/exists.d.ts.map +1 -0
- package/dist/core/ssh/exists.js +24 -0
- package/dist/core/ssh/exists.js.map +1 -0
- package/dist/core/ssh/find.d.ts +21 -0
- package/dist/core/ssh/find.d.ts.map +1 -0
- package/dist/core/ssh/find.js +139 -0
- package/dist/core/ssh/find.js.map +1 -0
- package/dist/core/ssh/mkdir.d.ts +4 -0
- package/dist/core/ssh/mkdir.d.ts.map +1 -0
- package/dist/core/ssh/mkdir.js +76 -0
- package/dist/core/ssh/mkdir.js.map +1 -0
- package/dist/core/ssh/read.d.ts +21 -0
- package/dist/core/ssh/read.d.ts.map +1 -0
- package/dist/core/ssh/read.js +65 -0
- package/dist/core/ssh/read.js.map +1 -0
- package/dist/core/ssh/readdir.d.ts +4 -0
- package/dist/core/ssh/readdir.d.ts.map +1 -0
- package/dist/core/ssh/readdir.js +80 -0
- package/dist/core/ssh/readdir.js.map +1 -0
- package/dist/core/ssh/rename.d.ts +4 -0
- package/dist/core/ssh/rename.d.ts.map +1 -0
- package/dist/core/ssh/rename.js +50 -0
- package/dist/core/ssh/rename.js.map +1 -0
- package/dist/core/ssh/rm.d.ts +4 -0
- package/dist/core/ssh/rm.d.ts.map +1 -0
- package/dist/core/ssh/rm.js +86 -0
- package/dist/core/ssh/rm.js.map +1 -0
- package/dist/core/ssh/rmdir.d.ts +4 -0
- package/dist/core/ssh/rmdir.d.ts.map +1 -0
- package/dist/core/ssh/rmdir.js +69 -0
- package/dist/core/ssh/rmdir.js.map +1 -0
- package/dist/core/ssh/set_attrs.d.ts +11 -0
- package/dist/core/ssh/set_attrs.d.ts.map +1 -0
- package/dist/core/ssh/set_attrs.js +81 -0
- package/dist/core/ssh/set_attrs.js.map +1 -0
- package/dist/core/ssh/stat.d.ts +4 -0
- package/dist/core/ssh/stat.d.ts.map +1 -0
- package/dist/core/ssh/stat.js +40 -0
- package/dist/core/ssh/stat.js.map +1 -0
- package/dist/core/ssh/stream.d.ts +7 -0
- package/dist/core/ssh/stream.d.ts.map +1 -0
- package/dist/core/ssh/stream.js +83 -0
- package/dist/core/ssh/stream.js.map +1 -0
- package/dist/core/ssh/truncate.d.ts +4 -0
- package/dist/core/ssh/truncate.d.ts.map +1 -0
- package/dist/core/ssh/truncate.js +33 -0
- package/dist/core/ssh/truncate.js.map +1 -0
- package/dist/core/ssh/unlink.d.ts +4 -0
- package/dist/core/ssh/unlink.d.ts.map +1 -0
- package/dist/core/ssh/unlink.js +35 -0
- package/dist/core/ssh/unlink.js.map +1 -0
- package/dist/core/ssh/utils.d.ts +12 -0
- package/dist/core/ssh/utils.d.ts.map +1 -0
- package/dist/core/ssh/utils.js +63 -0
- package/dist/core/ssh/utils.js.map +1 -0
- package/dist/core/ssh/watch.d.ts +4 -0
- package/dist/core/ssh/watch.d.ts.map +1 -0
- package/dist/core/ssh/watch.js +89 -0
- package/dist/core/ssh/watch.js.map +1 -0
- package/dist/core/ssh/write.d.ts +4 -0
- package/dist/core/ssh/write.d.ts.map +1 -0
- package/dist/core/ssh/write.js +34 -0
- package/dist/core/ssh/write.js.map +1 -0
- package/dist/fs_monkey.d.ts +11 -0
- package/dist/fs_monkey.d.ts.map +1 -0
- package/dist/fs_monkey.js +187 -0
- package/dist/fs_monkey.js.map +1 -0
- package/dist/fuse/backend.d.ts +73 -0
- package/dist/fuse/backend.d.ts.map +1 -0
- package/dist/fuse/backend.js +170 -0
- package/dist/fuse/backend.js.map +1 -0
- package/dist/fuse/core.d.ts +157 -0
- package/dist/fuse/core.d.ts.map +1 -0
- package/dist/fuse/core.js +478 -0
- package/dist/fuse/core.js.map +1 -0
- package/dist/fuse/errors.d.ts +31 -0
- package/dist/fuse/errors.d.ts.map +1 -0
- package/dist/fuse/errors.js +102 -0
- package/dist/fuse/errors.js.map +1 -0
- package/dist/fuse/fs.d.ts +58 -0
- package/dist/fuse/fs.d.ts.map +1 -0
- package/dist/fuse/fs.js +280 -0
- package/dist/fuse/fs.js.map +1 -0
- package/dist/fuse/mount.d.ts +74 -0
- package/dist/fuse/mount.d.ts.map +1 -0
- package/dist/fuse/mount.js +180 -0
- package/dist/fuse/mount.js.map +1 -0
- package/dist/fuse/platform/macos.d.ts +2 -0
- package/dist/fuse/platform/macos.d.ts.map +1 -0
- package/dist/fuse/platform/macos.js +23 -0
- package/dist/fuse/platform/macos.js.map +1 -0
- package/dist/index.d.ts +201 -2923
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +210 -4624
- package/dist/index.js.map +1 -1
- package/dist/observe/disk_store.d.ts +17 -0
- package/dist/observe/disk_store.d.ts.map +1 -0
- package/dist/observe/disk_store.js +98 -0
- package/dist/observe/disk_store.js.map +1 -0
- package/dist/observe/redis_store.d.ts +28 -0
- package/dist/observe/redis_store.d.ts.map +1 -0
- package/dist/observe/redis_store.js +100 -0
- package/dist/observe/redis_store.js.map +1 -0
- package/dist/ops/disk/index.d.ts +3 -0
- package/dist/ops/disk/index.d.ts.map +1 -0
- package/dist/ops/disk/index.js +20 -0
- package/dist/ops/disk/index.js.map +1 -0
- package/dist/ops/email/index.d.ts +3 -0
- package/dist/ops/email/index.d.ts.map +1 -0
- package/dist/ops/email/index.js +18 -0
- package/dist/ops/email/index.js.map +1 -0
- package/dist/ops/gridfs/index.d.ts +3 -0
- package/dist/ops/gridfs/index.d.ts.map +1 -0
- package/dist/ops/gridfs/index.js +18 -0
- package/dist/ops/gridfs/index.js.map +1 -0
- package/dist/ops/hf/index.d.ts +3 -0
- package/dist/ops/hf/index.d.ts.map +1 -0
- package/dist/ops/hf/index.js +18 -0
- package/dist/ops/hf/index.js.map +1 -0
- package/dist/ops/hf_hub/index.d.ts +3 -0
- package/dist/ops/hf_hub/index.d.ts.map +1 -0
- package/dist/ops/hf_hub/index.js +18 -0
- package/dist/ops/hf_hub/index.js.map +1 -0
- package/dist/ops/nextcloud/index.d.ts +3 -0
- package/dist/ops/nextcloud/index.d.ts.map +1 -0
- package/dist/ops/nextcloud/index.js +5 -0
- package/dist/ops/nextcloud/index.js.map +1 -0
- package/dist/ops/ssh/index.d.ts +3 -0
- package/dist/ops/ssh/index.d.ts.map +1 -0
- package/dist/ops/ssh/index.js +20 -0
- package/dist/ops/ssh/index.js.map +1 -0
- package/dist/optional_peer.d.ts +2 -0
- package/dist/optional_peer.d.ts.map +1 -0
- package/dist/optional_peer.js +15 -0
- package/dist/optional_peer.js.map +1 -0
- package/dist/resource/aliyun/aliyun.d.ts +8 -0
- package/dist/resource/aliyun/aliyun.d.ts.map +1 -0
- package/dist/resource/aliyun/aliyun.js +24 -0
- package/dist/resource/aliyun/aliyun.js.map +1 -0
- package/dist/resource/aliyun/config.d.ts +10 -0
- package/dist/resource/aliyun/config.d.ts.map +1 -0
- package/dist/resource/aliyun/config.js +20 -0
- package/dist/resource/aliyun/config.js.map +1 -0
- package/dist/resource/aliyun/prompt.d.ts +2 -0
- package/dist/resource/aliyun/prompt.d.ts.map +1 -0
- package/dist/resource/aliyun/prompt.js +19 -0
- package/dist/resource/aliyun/prompt.js.map +1 -0
- package/dist/resource/backblaze/backblaze.d.ts +8 -0
- package/dist/resource/backblaze/backblaze.d.ts.map +1 -0
- package/dist/resource/backblaze/backblaze.js +24 -0
- package/dist/resource/backblaze/backblaze.js.map +1 -0
- package/dist/resource/backblaze/config.d.ts +10 -0
- package/dist/resource/backblaze/config.d.ts.map +1 -0
- package/dist/resource/backblaze/config.js +20 -0
- package/dist/resource/backblaze/config.js.map +1 -0
- package/dist/resource/backblaze/prompt.d.ts +2 -0
- package/dist/resource/backblaze/prompt.d.ts.map +1 -0
- package/dist/resource/backblaze/prompt.js +19 -0
- package/dist/resource/backblaze/prompt.js.map +1 -0
- package/dist/resource/box/box.d.ts +34 -0
- package/dist/resource/box/box.d.ts.map +1 -0
- package/dist/resource/box/box.js +99 -0
- package/dist/resource/box/box.js.map +1 -0
- package/dist/resource/box/config.d.ts +43 -0
- package/dist/resource/box/config.d.ts.map +1 -0
- package/dist/resource/box/config.js +39 -0
- package/dist/resource/box/config.js.map +1 -0
- package/dist/resource/ceph/ceph.d.ts +8 -0
- package/dist/resource/ceph/ceph.d.ts.map +1 -0
- package/dist/resource/ceph/ceph.js +24 -0
- package/dist/resource/ceph/ceph.js.map +1 -0
- package/dist/resource/ceph/config.d.ts +9 -0
- package/dist/resource/ceph/config.d.ts.map +1 -0
- package/dist/resource/ceph/config.js +19 -0
- package/dist/resource/ceph/config.js.map +1 -0
- package/dist/resource/ceph/prompt.d.ts +2 -0
- package/dist/resource/ceph/prompt.d.ts.map +1 -0
- package/dist/resource/ceph/prompt.js +19 -0
- package/dist/resource/ceph/prompt.js.map +1 -0
- package/dist/resource/databricks_volume/config.d.ts +3 -0
- package/dist/resource/databricks_volume/config.d.ts.map +1 -0
- package/dist/resource/databricks_volume/config.js +15 -0
- package/dist/resource/databricks_volume/config.js.map +1 -0
- package/dist/resource/databricks_volume/databricks_volume.d.ts +45 -0
- package/dist/resource/databricks_volume/databricks_volume.d.ts.map +1 -0
- package/dist/resource/databricks_volume/databricks_volume.js +186 -0
- package/dist/resource/databricks_volume/databricks_volume.js.map +1 -0
- package/dist/resource/databricks_volume/profile.d.ts +7 -0
- package/dist/resource/databricks_volume/profile.d.ts.map +1 -0
- package/dist/resource/databricks_volume/profile.js +55 -0
- package/dist/resource/databricks_volume/profile.js.map +1 -0
- package/dist/resource/digitalocean/config.d.ts +10 -0
- package/dist/resource/digitalocean/config.d.ts.map +1 -0
- package/dist/resource/digitalocean/config.js +20 -0
- package/dist/resource/digitalocean/config.js.map +1 -0
- package/dist/resource/digitalocean/digitalocean.d.ts +8 -0
- package/dist/resource/digitalocean/digitalocean.d.ts.map +1 -0
- package/dist/resource/digitalocean/digitalocean.js +24 -0
- package/dist/resource/digitalocean/digitalocean.js.map +1 -0
- package/dist/resource/digitalocean/prompt.d.ts +2 -0
- package/dist/resource/digitalocean/prompt.d.ts.map +1 -0
- package/dist/resource/digitalocean/prompt.js +19 -0
- package/dist/resource/digitalocean/prompt.js.map +1 -0
- package/dist/resource/discord/discord.d.ts +33 -0
- package/dist/resource/discord/discord.d.ts.map +1 -0
- package/dist/resource/discord/discord.js +87 -0
- package/dist/resource/discord/discord.js.map +1 -0
- package/dist/resource/disk/disk.d.ts +55 -0
- package/dist/resource/disk/disk.d.ts.map +1 -0
- package/dist/resource/disk/disk.js +218 -0
- package/dist/resource/disk/disk.js.map +1 -0
- package/dist/resource/disk/prompt.d.ts +2 -0
- package/dist/resource/disk/prompt.d.ts.map +1 -0
- package/dist/resource/disk/prompt.js +17 -0
- package/dist/resource/disk/prompt.js.map +1 -0
- package/dist/resource/dropbox/config.d.ts +34 -0
- package/dist/resource/dropbox/config.d.ts.map +1 -0
- package/dist/resource/dropbox/config.js +31 -0
- package/dist/resource/dropbox/config.js.map +1 -0
- package/dist/resource/dropbox/dropbox.d.ts +34 -0
- package/dist/resource/dropbox/dropbox.d.ts.map +1 -0
- package/dist/resource/dropbox/dropbox.js +95 -0
- package/dist/resource/dropbox/dropbox.js.map +1 -0
- package/dist/resource/email/email.d.ts +33 -0
- package/dist/resource/email/email.d.ts.map +1 -0
- package/dist/resource/email/email.js +89 -0
- package/dist/resource/email/email.js.map +1 -0
- package/dist/resource/email/index.d.ts +3 -0
- package/dist/resource/email/index.d.ts.map +1 -0
- package/dist/resource/email/index.js +16 -0
- package/dist/resource/email/index.js.map +1 -0
- package/dist/resource/email/prompt.d.ts +3 -0
- package/dist/resource/email/prompt.d.ts.map +1 -0
- package/dist/resource/email/prompt.js +26 -0
- package/dist/resource/email/prompt.js.map +1 -0
- package/dist/resource/gcal/gcal.d.ts +32 -0
- package/dist/resource/gcal/gcal.d.ts.map +1 -0
- package/dist/resource/gcal/gcal.js +87 -0
- package/dist/resource/gcal/gcal.js.map +1 -0
- package/dist/resource/gcs/config.d.ts +36 -0
- package/dist/resource/gcs/config.d.ts.map +1 -0
- package/dist/resource/gcs/config.js +55 -0
- package/dist/resource/gcs/config.js.map +1 -0
- package/dist/resource/gcs/gcs.d.ts +8 -0
- package/dist/resource/gcs/gcs.d.ts.map +1 -0
- package/dist/resource/gcs/gcs.js +24 -0
- package/dist/resource/gcs/gcs.js.map +1 -0
- package/dist/resource/gcs/prompt.d.ts +2 -0
- package/dist/resource/gcs/prompt.d.ts.map +1 -0
- package/dist/resource/gcs/prompt.js +19 -0
- package/dist/resource/gcs/prompt.js.map +1 -0
- package/dist/resource/gdocs/gdocs.d.ts +32 -0
- package/dist/resource/gdocs/gdocs.d.ts.map +1 -0
- package/dist/resource/gdocs/gdocs.js +84 -0
- package/dist/resource/gdocs/gdocs.js.map +1 -0
- package/dist/resource/gdrive/gdrive.d.ts +34 -0
- package/dist/resource/gdrive/gdrive.d.ts.map +1 -0
- package/dist/resource/gdrive/gdrive.js +89 -0
- package/dist/resource/gdrive/gdrive.js.map +1 -0
- package/dist/resource/github/github.d.ts +37 -0
- package/dist/resource/github/github.d.ts.map +1 -0
- package/dist/resource/github/github.js +119 -0
- package/dist/resource/github/github.js.map +1 -0
- package/dist/resource/gmail/gmail.d.ts +33 -0
- package/dist/resource/gmail/gmail.d.ts.map +1 -0
- package/dist/resource/gmail/gmail.js +88 -0
- package/dist/resource/gmail/gmail.js.map +1 -0
- package/dist/resource/gridfs/config.d.ts +20 -0
- package/dist/resource/gridfs/config.d.ts.map +1 -0
- package/dist/resource/gridfs/config.js +42 -0
- package/dist/resource/gridfs/config.js.map +1 -0
- package/dist/resource/gridfs/gridfs.d.ts +50 -0
- package/dist/resource/gridfs/gridfs.d.ts.map +1 -0
- package/dist/resource/gridfs/gridfs.js +190 -0
- package/dist/resource/gridfs/gridfs.js.map +1 -0
- package/dist/resource/gridfs/prompt.d.ts +2 -0
- package/dist/resource/gridfs/prompt.d.ts.map +1 -0
- package/dist/resource/gridfs/prompt.js +19 -0
- package/dist/resource/gridfs/prompt.js.map +1 -0
- package/dist/resource/gsheets/gsheets.d.ts +32 -0
- package/dist/resource/gsheets/gsheets.d.ts.map +1 -0
- package/dist/resource/gsheets/gsheets.js +84 -0
- package/dist/resource/gsheets/gsheets.js.map +1 -0
- package/dist/resource/gslides/gslides.d.ts +32 -0
- package/dist/resource/gslides/gslides.d.ts.map +1 -0
- package/dist/resource/gslides/gslides.js +84 -0
- package/dist/resource/gslides/gslides.js.map +1 -0
- package/dist/resource/hf_buckets/base.d.ts +34 -0
- package/dist/resource/hf_buckets/base.d.ts.map +1 -0
- package/dist/resource/hf_buckets/base.js +117 -0
- package/dist/resource/hf_buckets/base.js.map +1 -0
- package/dist/resource/hf_buckets/config.d.ts +58 -0
- package/dist/resource/hf_buckets/config.d.ts.map +1 -0
- package/dist/resource/hf_buckets/config.js +89 -0
- package/dist/resource/hf_buckets/config.js.map +1 -0
- package/dist/resource/hf_buckets/hf_buckets.d.ts +16 -0
- package/dist/resource/hf_buckets/hf_buckets.d.ts.map +1 -0
- package/dist/resource/hf_buckets/hf_buckets.js +46 -0
- package/dist/resource/hf_buckets/hf_buckets.js.map +1 -0
- package/dist/resource/hf_buckets/prompt.d.ts +2 -0
- package/dist/resource/hf_buckets/prompt.d.ts.map +1 -0
- package/dist/resource/hf_buckets/prompt.js +18 -0
- package/dist/resource/hf_buckets/prompt.js.map +1 -0
- package/dist/resource/hf_datasets/hf_datasets.d.ts +16 -0
- package/dist/resource/hf_datasets/hf_datasets.d.ts.map +1 -0
- package/dist/resource/hf_datasets/hf_datasets.js +46 -0
- package/dist/resource/hf_datasets/hf_datasets.js.map +1 -0
- package/dist/resource/hf_datasets/prompt.d.ts +2 -0
- package/dist/resource/hf_datasets/prompt.d.ts.map +1 -0
- package/dist/resource/hf_datasets/prompt.js +18 -0
- package/dist/resource/hf_datasets/prompt.js.map +1 -0
- package/dist/resource/hf_hub/base.d.ts +43 -0
- package/dist/resource/hf_hub/base.d.ts.map +1 -0
- package/dist/resource/hf_hub/base.js +111 -0
- package/dist/resource/hf_hub/base.js.map +1 -0
- package/dist/resource/hf_models/config.d.ts +6 -0
- package/dist/resource/hf_models/config.d.ts.map +1 -0
- package/dist/resource/hf_models/config.js +17 -0
- package/dist/resource/hf_models/config.js.map +1 -0
- package/dist/resource/hf_models/hf_models.d.ts +16 -0
- package/dist/resource/hf_models/hf_models.d.ts.map +1 -0
- package/dist/resource/hf_models/hf_models.js +46 -0
- package/dist/resource/hf_models/hf_models.js.map +1 -0
- package/dist/resource/hf_models/prompt.d.ts +2 -0
- package/dist/resource/hf_models/prompt.d.ts.map +1 -0
- package/dist/resource/hf_models/prompt.js +18 -0
- package/dist/resource/hf_models/prompt.js.map +1 -0
- package/dist/resource/hf_spaces/hf_spaces.d.ts +16 -0
- package/dist/resource/hf_spaces/hf_spaces.d.ts.map +1 -0
- package/dist/resource/hf_spaces/hf_spaces.js +46 -0
- package/dist/resource/hf_spaces/hf_spaces.js.map +1 -0
- package/dist/resource/hf_spaces/prompt.d.ts +2 -0
- package/dist/resource/hf_spaces/prompt.d.ts.map +1 -0
- package/dist/resource/hf_spaces/prompt.js +18 -0
- package/dist/resource/hf_spaces/prompt.js.map +1 -0
- package/dist/resource/jaeger/config.d.ts +15 -0
- package/dist/resource/jaeger/config.d.ts.map +1 -0
- package/dist/resource/jaeger/config.js +28 -0
- package/dist/resource/jaeger/config.js.map +1 -0
- package/dist/resource/jaeger/jaeger.d.ts +32 -0
- package/dist/resource/jaeger/jaeger.d.ts.map +1 -0
- package/dist/resource/jaeger/jaeger.js +101 -0
- package/dist/resource/jaeger/jaeger.js.map +1 -0
- package/dist/resource/lancedb/lancedb.d.ts +37 -0
- package/dist/resource/lancedb/lancedb.d.ts.map +1 -0
- package/dist/resource/lancedb/lancedb.js +85 -0
- package/dist/resource/lancedb/lancedb.js.map +1 -0
- package/dist/resource/lancedb/store.d.ts +29 -0
- package/dist/resource/lancedb/store.d.ts.map +1 -0
- package/dist/resource/lancedb/store.js +159 -0
- package/dist/resource/lancedb/store.js.map +1 -0
- package/dist/resource/langfuse/config.d.ts +16 -0
- package/dist/resource/langfuse/config.d.ts.map +1 -0
- package/dist/resource/langfuse/config.js +29 -0
- package/dist/resource/langfuse/config.js.map +1 -0
- package/dist/resource/langfuse/langfuse.d.ts +31 -0
- package/dist/resource/langfuse/langfuse.d.ts.map +1 -0
- package/dist/resource/langfuse/langfuse.js +98 -0
- package/dist/resource/langfuse/langfuse.js.map +1 -0
- package/dist/resource/linear/linear.d.ts +33 -0
- package/dist/resource/linear/linear.d.ts.map +1 -0
- package/dist/resource/linear/linear.js +93 -0
- package/dist/resource/linear/linear.js.map +1 -0
- package/dist/resource/loader.d.ts +46 -0
- package/dist/resource/loader.d.ts.map +1 -0
- package/dist/resource/loader.js +127 -0
- package/dist/resource/loader.js.map +1 -0
- package/dist/resource/minio/config.d.ts +9 -0
- package/dist/resource/minio/config.d.ts.map +1 -0
- package/dist/resource/minio/config.js +19 -0
- package/dist/resource/minio/config.js.map +1 -0
- package/dist/resource/minio/minio.d.ts +8 -0
- package/dist/resource/minio/minio.d.ts.map +1 -0
- package/dist/resource/minio/minio.js +24 -0
- package/dist/resource/minio/minio.js.map +1 -0
- package/dist/resource/minio/prompt.d.ts +2 -0
- package/dist/resource/minio/prompt.d.ts.map +1 -0
- package/dist/resource/minio/prompt.js +19 -0
- package/dist/resource/minio/prompt.js.map +1 -0
- package/dist/resource/mongodb/mongodb.d.ts +39 -0
- package/dist/resource/mongodb/mongodb.d.ts.map +1 -0
- package/dist/resource/mongodb/mongodb.js +100 -0
- package/dist/resource/mongodb/mongodb.js.map +1 -0
- package/dist/resource/mongodb/store.d.ts +71 -0
- package/dist/resource/mongodb/store.d.ts.map +1 -0
- package/dist/resource/mongodb/store.js +148 -0
- package/dist/resource/mongodb/store.js.map +1 -0
- package/dist/resource/nextcloud/config.d.ts +14 -0
- package/dist/resource/nextcloud/config.d.ts.map +1 -0
- package/dist/resource/nextcloud/config.js +17 -0
- package/dist/resource/nextcloud/config.js.map +1 -0
- package/dist/resource/nextcloud/nextcloud.d.ts +48 -0
- package/dist/resource/nextcloud/nextcloud.d.ts.map +1 -0
- package/dist/resource/nextcloud/nextcloud.js +157 -0
- package/dist/resource/nextcloud/nextcloud.js.map +1 -0
- package/dist/resource/nextcloud/prompt.d.ts +2 -0
- package/dist/resource/nextcloud/prompt.d.ts.map +1 -0
- package/dist/resource/nextcloud/prompt.js +2 -0
- package/dist/resource/nextcloud/prompt.js.map +1 -0
- package/dist/resource/notion/notion.d.ts +32 -0
- package/dist/resource/notion/notion.d.ts.map +1 -0
- package/dist/resource/notion/notion.js +90 -0
- package/dist/resource/notion/notion.js.map +1 -0
- package/dist/resource/oci/config.d.ts +37 -0
- package/dist/resource/oci/config.d.ts.map +1 -0
- package/dist/resource/oci/config.js +60 -0
- package/dist/resource/oci/config.js.map +1 -0
- package/dist/resource/oci/oci.d.ts +8 -0
- package/dist/resource/oci/oci.d.ts.map +1 -0
- package/dist/resource/oci/oci.js +24 -0
- package/dist/resource/oci/oci.js.map +1 -0
- package/dist/resource/oci/prompt.d.ts +2 -0
- package/dist/resource/oci/prompt.d.ts.map +1 -0
- package/dist/resource/oci/prompt.js +19 -0
- package/dist/resource/oci/prompt.js.map +1 -0
- package/dist/resource/postgres/postgres.d.ts +39 -0
- package/dist/resource/postgres/postgres.d.ts.map +1 -0
- package/dist/resource/postgres/postgres.js +98 -0
- package/dist/resource/postgres/postgres.js.map +1 -0
- package/dist/resource/postgres/store.d.ts +21 -0
- package/dist/resource/postgres/store.d.ts.map +1 -0
- package/dist/resource/postgres/store.js +53 -0
- package/dist/resource/postgres/store.js.map +1 -0
- package/dist/resource/qingstor/config.d.ts +10 -0
- package/dist/resource/qingstor/config.d.ts.map +1 -0
- package/dist/resource/qingstor/config.js +20 -0
- package/dist/resource/qingstor/config.js.map +1 -0
- package/dist/resource/qingstor/prompt.d.ts +2 -0
- package/dist/resource/qingstor/prompt.d.ts.map +1 -0
- package/dist/resource/qingstor/prompt.js +19 -0
- package/dist/resource/qingstor/prompt.js.map +1 -0
- package/dist/resource/qingstor/qingstor.d.ts +8 -0
- package/dist/resource/qingstor/qingstor.d.ts.map +1 -0
- package/dist/resource/qingstor/qingstor.js +24 -0
- package/dist/resource/qingstor/qingstor.js.map +1 -0
- package/dist/resource/r2/config.d.ts +37 -0
- package/dist/resource/r2/config.d.ts.map +1 -0
- package/dist/resource/r2/config.js +63 -0
- package/dist/resource/r2/config.js.map +1 -0
- package/dist/resource/r2/prompt.d.ts +2 -0
- package/dist/resource/r2/prompt.d.ts.map +1 -0
- package/dist/resource/r2/prompt.js +19 -0
- package/dist/resource/r2/prompt.js.map +1 -0
- package/dist/resource/r2/r2.d.ts +8 -0
- package/dist/resource/r2/r2.d.ts.map +1 -0
- package/dist/resource/r2/r2.js +24 -0
- package/dist/resource/r2/r2.js.map +1 -0
- package/dist/resource/redis/redis.d.ts +30 -0
- package/dist/resource/redis/redis.d.ts.map +1 -0
- package/dist/resource/redis/redis.js +37 -0
- package/dist/resource/redis/redis.js.map +1 -0
- package/dist/resource/redis/store.d.ts +63 -0
- package/dist/resource/redis/store.d.ts.map +1 -0
- package/dist/resource/redis/store.js +246 -0
- package/dist/resource/redis/store.js.map +1 -0
- package/dist/resource/registry.d.ts +42 -0
- package/dist/resource/registry.d.ts.map +1 -0
- package/dist/resource/registry.js +410 -0
- package/dist/resource/registry.js.map +1 -0
- package/dist/resource/s3/config.d.ts +36 -0
- package/dist/resource/s3/config.d.ts.map +1 -0
- package/dist/resource/s3/config.js +61 -0
- package/dist/resource/s3/config.js.map +1 -0
- package/dist/resource/s3/mock.d.ts +17 -0
- package/dist/resource/s3/mock.d.ts.map +1 -0
- package/dist/resource/s3/mock.js +214 -0
- package/dist/resource/s3/mock.js.map +1 -0
- package/dist/resource/s3/s3.d.ts +50 -0
- package/dist/resource/s3/s3.d.ts.map +1 -0
- package/dist/resource/s3/s3.js +201 -0
- package/dist/resource/s3/s3.js.map +1 -0
- package/dist/resource/s3_alias.d.ts +112 -0
- package/dist/resource/s3_alias.d.ts.map +1 -0
- package/dist/resource/s3_alias.js +155 -0
- package/dist/resource/s3_alias.js.map +1 -0
- package/dist/resource/scaleway/config.d.ts +10 -0
- package/dist/resource/scaleway/config.d.ts.map +1 -0
- package/dist/resource/scaleway/config.js +20 -0
- package/dist/resource/scaleway/config.js.map +1 -0
- package/dist/resource/scaleway/prompt.d.ts +2 -0
- package/dist/resource/scaleway/prompt.d.ts.map +1 -0
- package/dist/resource/scaleway/prompt.js +19 -0
- package/dist/resource/scaleway/prompt.js.map +1 -0
- package/dist/resource/scaleway/scaleway.d.ts +8 -0
- package/dist/resource/scaleway/scaleway.d.ts.map +1 -0
- package/dist/resource/scaleway/scaleway.js +24 -0
- package/dist/resource/scaleway/scaleway.js.map +1 -0
- package/dist/resource/seaweedfs/config.d.ts +9 -0
- package/dist/resource/seaweedfs/config.d.ts.map +1 -0
- package/dist/resource/seaweedfs/config.js +19 -0
- package/dist/resource/seaweedfs/config.js.map +1 -0
- package/dist/resource/seaweedfs/prompt.d.ts +2 -0
- package/dist/resource/seaweedfs/prompt.d.ts.map +1 -0
- package/dist/resource/seaweedfs/prompt.js +19 -0
- package/dist/resource/seaweedfs/prompt.js.map +1 -0
- package/dist/resource/seaweedfs/seaweedfs.d.ts +8 -0
- package/dist/resource/seaweedfs/seaweedfs.d.ts.map +1 -0
- package/dist/resource/seaweedfs/seaweedfs.js +24 -0
- package/dist/resource/seaweedfs/seaweedfs.js.map +1 -0
- package/dist/resource/slack/slack.d.ts +33 -0
- package/dist/resource/slack/slack.d.ts.map +1 -0
- package/dist/resource/slack/slack.js +88 -0
- package/dist/resource/slack/slack.js.map +1 -0
- package/dist/resource/ssh/config.d.ts +20 -0
- package/dist/resource/ssh/config.d.ts.map +1 -0
- package/dist/resource/ssh/config.js +33 -0
- package/dist/resource/ssh/config.js.map +1 -0
- package/dist/resource/ssh/prompt.d.ts +2 -0
- package/dist/resource/ssh/prompt.d.ts.map +1 -0
- package/dist/resource/ssh/prompt.js +18 -0
- package/dist/resource/ssh/prompt.js.map +1 -0
- package/dist/resource/ssh/ssh.d.ts +51 -0
- package/dist/resource/ssh/ssh.d.ts.map +1 -0
- package/dist/resource/ssh/ssh.js +169 -0
- package/dist/resource/ssh/ssh.js.map +1 -0
- package/dist/resource/supabase/config.d.ts +38 -0
- package/dist/resource/supabase/config.d.ts.map +1 -0
- package/dist/resource/supabase/config.js +63 -0
- package/dist/resource/supabase/config.js.map +1 -0
- package/dist/resource/supabase/prompt.d.ts +2 -0
- package/dist/resource/supabase/prompt.d.ts.map +1 -0
- package/dist/resource/supabase/prompt.js +19 -0
- package/dist/resource/supabase/prompt.js.map +1 -0
- package/dist/resource/supabase/supabase.d.ts +8 -0
- package/dist/resource/supabase/supabase.d.ts.map +1 -0
- package/dist/resource/supabase/supabase.js +24 -0
- package/dist/resource/supabase/supabase.js.map +1 -0
- package/dist/resource/tencent/config.d.ts +10 -0
- package/dist/resource/tencent/config.d.ts.map +1 -0
- package/dist/resource/tencent/config.js +20 -0
- package/dist/resource/tencent/config.js.map +1 -0
- package/dist/resource/tencent/prompt.d.ts +2 -0
- package/dist/resource/tencent/prompt.d.ts.map +1 -0
- package/dist/resource/tencent/prompt.js +19 -0
- package/dist/resource/tencent/prompt.js.map +1 -0
- package/dist/resource/tencent/tencent.d.ts +8 -0
- package/dist/resource/tencent/tencent.d.ts.map +1 -0
- package/dist/resource/tencent/tencent.js +24 -0
- package/dist/resource/tencent/tencent.js.map +1 -0
- package/dist/resource/trello/config.d.ts +15 -0
- package/dist/resource/trello/config.d.ts.map +1 -0
- package/dist/resource/trello/config.js +28 -0
- package/dist/resource/trello/config.js.map +1 -0
- package/dist/resource/trello/trello.d.ts +32 -0
- package/dist/resource/trello/trello.d.ts.map +1 -0
- package/dist/resource/trello/trello.js +94 -0
- package/dist/resource/trello/trello.js.map +1 -0
- package/dist/resource/wasabi/config.d.ts +36 -0
- package/dist/resource/wasabi/config.d.ts.map +1 -0
- package/dist/resource/wasabi/config.js +60 -0
- package/dist/resource/wasabi/config.js.map +1 -0
- package/dist/resource/wasabi/prompt.d.ts +2 -0
- package/dist/resource/wasabi/prompt.d.ts.map +1 -0
- package/dist/resource/wasabi/prompt.js +19 -0
- package/dist/resource/wasabi/prompt.js.map +1 -0
- package/dist/resource/wasabi/wasabi.d.ts +8 -0
- package/dist/resource/wasabi/wasabi.d.ts.map +1 -0
- package/dist/resource/wasabi/wasabi.js +24 -0
- package/dist/resource/wasabi/wasabi.js.map +1 -0
- package/dist/runtime/python/local.d.ts +23 -0
- package/dist/runtime/python/local.d.ts.map +1 -0
- package/dist/runtime/python/local.js +98 -0
- package/dist/runtime/python/local.js.map +1 -0
- package/dist/runtime/sandbox/daytona/config.d.ts +14 -0
- package/dist/runtime/sandbox/daytona/config.d.ts.map +1 -0
- package/dist/runtime/sandbox/daytona/config.js +15 -0
- package/dist/runtime/sandbox/daytona/config.js.map +1 -0
- package/dist/runtime/sandbox/daytona/runtime.d.ts +28 -0
- package/dist/runtime/sandbox/daytona/runtime.d.ts.map +1 -0
- package/dist/runtime/sandbox/daytona/runtime.js +89 -0
- package/dist/runtime/sandbox/daytona/runtime.js.map +1 -0
- package/dist/runtime/sandbox/docker/config.d.ts +13 -0
- package/dist/runtime/sandbox/docker/config.d.ts.map +1 -0
- package/dist/runtime/sandbox/docker/config.js +15 -0
- package/dist/runtime/sandbox/docker/config.js.map +1 -0
- package/dist/runtime/sandbox/docker/constants.d.ts +2 -0
- package/dist/runtime/sandbox/docker/constants.d.ts.map +1 -0
- package/dist/runtime/sandbox/docker/constants.js +15 -0
- package/dist/runtime/sandbox/docker/constants.js.map +1 -0
- package/dist/runtime/sandbox/docker/runtime.d.ts +27 -0
- package/dist/runtime/sandbox/docker/runtime.d.ts.map +1 -0
- package/dist/runtime/sandbox/docker/runtime.js +95 -0
- package/dist/runtime/sandbox/docker/runtime.js.map +1 -0
- package/dist/runtime/sandbox/e2b/config.d.ts +2 -0
- package/dist/runtime/sandbox/e2b/config.d.ts.map +1 -0
- package/dist/runtime/sandbox/e2b/config.js +15 -0
- package/dist/runtime/sandbox/e2b/config.js.map +1 -0
- package/dist/runtime/sandbox/e2b/runtime.d.ts +2 -0
- package/dist/runtime/sandbox/e2b/runtime.d.ts.map +1 -0
- package/dist/runtime/sandbox/e2b/runtime.js +15 -0
- package/dist/runtime/sandbox/e2b/runtime.js.map +1 -0
- package/dist/runtime/sandbox/smolvm/config.d.ts +15 -0
- package/dist/runtime/sandbox/smolvm/config.d.ts.map +1 -0
- package/dist/runtime/sandbox/smolvm/config.js +15 -0
- package/dist/runtime/sandbox/smolvm/config.js.map +1 -0
- package/dist/runtime/sandbox/smolvm/constants.d.ts +11 -0
- package/dist/runtime/sandbox/smolvm/constants.d.ts.map +1 -0
- package/dist/runtime/sandbox/smolvm/constants.js +39 -0
- package/dist/runtime/sandbox/smolvm/constants.js.map +1 -0
- package/dist/runtime/sandbox/smolvm/runtime.d.ts +39 -0
- package/dist/runtime/sandbox/smolvm/runtime.d.ts.map +1 -0
- package/dist/runtime/sandbox/smolvm/runtime.js +111 -0
- package/dist/runtime/sandbox/smolvm/runtime.js.map +1 -0
- package/dist/runtime/sandbox/ssh/config.d.ts +25 -0
- package/dist/runtime/sandbox/ssh/config.d.ts.map +1 -0
- package/dist/runtime/sandbox/ssh/config.js +23 -0
- package/dist/runtime/sandbox/ssh/config.js.map +1 -0
- package/dist/runtime/sandbox/ssh/constants.d.ts +12 -0
- package/dist/runtime/sandbox/ssh/constants.d.ts.map +1 -0
- package/dist/runtime/sandbox/ssh/constants.js +32 -0
- package/dist/runtime/sandbox/ssh/constants.js.map +1 -0
- package/dist/runtime/sandbox/ssh/runtime.d.ts +40 -0
- package/dist/runtime/sandbox/ssh/runtime.d.ts.map +1 -0
- package/dist/runtime/sandbox/ssh/runtime.js +139 -0
- package/dist/runtime/sandbox/ssh/runtime.js.map +1 -0
- package/dist/secrets/aws.d.ts +22 -0
- package/dist/secrets/aws.d.ts.map +1 -0
- package/dist/secrets/aws.js +80 -0
- package/dist/secrets/aws.js.map +1 -0
- package/dist/secrets/config.d.ts +39 -0
- package/dist/secrets/config.d.ts.map +1 -0
- package/dist/secrets/config.js +95 -0
- package/dist/secrets/config.js.map +1 -0
- package/dist/secrets/constants.d.ts +3 -0
- package/dist/secrets/constants.d.ts.map +1 -0
- package/dist/secrets/constants.js +58 -0
- package/dist/secrets/constants.js.map +1 -0
- package/dist/secrets/dotenv.d.ts +13 -0
- package/dist/secrets/dotenv.d.ts.map +1 -0
- package/dist/secrets/dotenv.js +40 -0
- package/dist/secrets/dotenv.js.map +1 -0
- package/dist/secrets/env.d.ts +10 -0
- package/dist/secrets/env.d.ts.map +1 -0
- package/dist/secrets/env.js +32 -0
- package/dist/secrets/env.js.map +1 -0
- package/dist/secrets/onepassword.d.ts +79 -0
- package/dist/secrets/onepassword.d.ts.map +1 -0
- package/dist/secrets/onepassword.js +141 -0
- package/dist/secrets/onepassword.js.map +1 -0
- package/dist/shell/console/redis/constants.d.ts +3 -0
- package/dist/shell/console/redis/constants.d.ts.map +1 -0
- package/dist/shell/console/redis/constants.js +22 -0
- package/dist/shell/console/redis/constants.js.map +1 -0
- package/dist/shell/console/redis/index.d.ts +2 -0
- package/dist/shell/console/redis/index.d.ts.map +1 -0
- package/dist/shell/console/redis/index.js +15 -0
- package/dist/shell/console/redis/index.js.map +1 -0
- package/dist/shell/console/redis/store.d.ts +67 -0
- package/dist/shell/console/redis/store.d.ts.map +1 -0
- package/dist/shell/console/redis/store.js +176 -0
- package/dist/shell/console/redis/store.js.map +1 -0
- package/dist/test-utils.d.ts +11 -0
- package/dist/test-utils.d.ts.map +1 -0
- package/dist/test-utils.js +38 -0
- package/dist/test-utils.js.map +1 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +21 -0
- package/dist/version.js.map +1 -0
- package/dist/workspace/fuse.d.ts +11 -0
- package/dist/workspace/fuse.d.ts.map +1 -0
- package/dist/workspace/fuse.js +129 -0
- package/dist/workspace/fuse.js.map +1 -0
- package/dist/workspace/namespace/disk.d.ts +28 -0
- package/dist/workspace/namespace/disk.d.ts.map +1 -0
- package/dist/workspace/namespace/disk.js +110 -0
- package/dist/workspace/namespace/disk.js.map +1 -0
- package/dist/workspace/namespace/redis.d.ts +31 -0
- package/dist/workspace/namespace/redis.d.ts.map +1 -0
- package/dist/workspace/namespace/redis.js +99 -0
- package/dist/workspace/namespace/redis.js.map +1 -0
- package/dist/workspace/record/disk.d.ts +47 -0
- package/dist/workspace/record/disk.d.ts.map +1 -0
- package/dist/workspace/record/disk.js +229 -0
- package/dist/workspace/record/disk.js.map +1 -0
- package/dist/workspace/session/disk.d.ts +22 -0
- package/dist/workspace/session/disk.d.ts.map +1 -0
- package/dist/workspace/session/disk.js +54 -0
- package/dist/workspace/session/disk.js.map +1 -0
- package/dist/workspace/session/redis.d.ts +32 -0
- package/dist/workspace/session/redis.d.ts.map +1 -0
- package/dist/workspace/session/redis.js +106 -0
- package/dist/workspace/session/redis.js.map +1 -0
- package/dist/workspace/store/disk.d.ts +46 -0
- package/dist/workspace/store/disk.d.ts.map +1 -0
- package/dist/workspace/store/disk.js +119 -0
- package/dist/workspace/store/disk.js.map +1 -0
- package/dist/workspace/store/redis.d.ts +43 -0
- package/dist/workspace/store/redis.d.ts.map +1 -0
- package/dist/workspace/store/redis.js +126 -0
- package/dist/workspace/store/redis.js.map +1 -0
- package/dist/workspace/workspace/kernel_mounts.d.ts +48 -0
- package/dist/workspace/workspace/kernel_mounts.d.ts.map +1 -0
- package/dist/workspace/workspace/kernel_mounts.js +117 -0
- package/dist/workspace/workspace/kernel_mounts.js.map +1 -0
- package/dist/workspace.d.ts +44 -0
- package/dist/workspace.d.ts.map +1 -0
- package/dist/workspace.js +127 -0
- package/dist/workspace.js.map +1 -0
- package/package.json +25 -10
- package/dist/aliyun-S62BR3TB.js +0 -11
- package/dist/aliyun-S62BR3TB.js.map +0 -1
- package/dist/backblaze-4EKSW63F.js +0 -11
- package/dist/backblaze-4EKSW63F.js.map +0 -1
- package/dist/box-ZPLZAGMK.js +0 -8
- package/dist/box-ZPLZAGMK.js.map +0 -1
- package/dist/ceph-ALKLD3MO.js +0 -11
- package/dist/ceph-ALKLD3MO.js.map +0 -1
- package/dist/chunk-2A4YGVBM.js +0 -81
- package/dist/chunk-2A4YGVBM.js.map +0 -1
- package/dist/chunk-2HCYLVGY.js +0 -28
- package/dist/chunk-2HCYLVGY.js.map +0 -1
- package/dist/chunk-2VPZAH5Q.js +0 -20
- package/dist/chunk-2VPZAH5Q.js.map +0 -1
- package/dist/chunk-3JZQ6VSZ.js +0 -38
- package/dist/chunk-3JZQ6VSZ.js.map +0 -1
- package/dist/chunk-4IF4TGAI.js +0 -11
- package/dist/chunk-4IF4TGAI.js.map +0 -1
- package/dist/chunk-5H6KNEPP.js +0 -56
- package/dist/chunk-5H6KNEPP.js.map +0 -1
- package/dist/chunk-5K2MWDCE.js +0 -56
- package/dist/chunk-5K2MWDCE.js.map +0 -1
- package/dist/chunk-6SVXWRKX.js +0 -56
- package/dist/chunk-6SVXWRKX.js.map +0 -1
- package/dist/chunk-6VOIUGAD.js +0 -68
- package/dist/chunk-6VOIUGAD.js.map +0 -1
- package/dist/chunk-7JYHFXXC.js +0 -82
- package/dist/chunk-7JYHFXXC.js.map +0 -1
- package/dist/chunk-7VQQFWV6.js +0 -20
- package/dist/chunk-7VQQFWV6.js.map +0 -1
- package/dist/chunk-7ZP6TPHX.js +0 -87
- package/dist/chunk-7ZP6TPHX.js.map +0 -1
- package/dist/chunk-ADEXNSYU.js +0 -87
- package/dist/chunk-ADEXNSYU.js.map +0 -1
- package/dist/chunk-AQSYAXL4.js +0 -16
- package/dist/chunk-AQSYAXL4.js.map +0 -1
- package/dist/chunk-ATLXMNKD.js +0 -34
- package/dist/chunk-ATLXMNKD.js.map +0 -1
- package/dist/chunk-BYCUGFRF.js +0 -86
- package/dist/chunk-BYCUGFRF.js.map +0 -1
- package/dist/chunk-BZTVYOES.js +0 -50
- package/dist/chunk-BZTVYOES.js.map +0 -1
- package/dist/chunk-CRC4YWXB.js +0 -79
- package/dist/chunk-CRC4YWXB.js.map +0 -1
- package/dist/chunk-CTGXJHO5.js +0 -39
- package/dist/chunk-CTGXJHO5.js.map +0 -1
- package/dist/chunk-DCDBIXVZ.js +0 -35
- package/dist/chunk-DCDBIXVZ.js.map +0 -1
- package/dist/chunk-DDAFNROK.js +0 -750
- package/dist/chunk-DDAFNROK.js.map +0 -1
- package/dist/chunk-DQIEWEAW.js +0 -85
- package/dist/chunk-DQIEWEAW.js.map +0 -1
- package/dist/chunk-EBI4IHDC.js +0 -73
- package/dist/chunk-EBI4IHDC.js.map +0 -1
- package/dist/chunk-EIUTZ6N7.js +0 -84
- package/dist/chunk-EIUTZ6N7.js.map +0 -1
- package/dist/chunk-EJZG5VUF.js +0 -190
- package/dist/chunk-EJZG5VUF.js.map +0 -1
- package/dist/chunk-ENW5BVYN.js +0 -50
- package/dist/chunk-ENW5BVYN.js.map +0 -1
- package/dist/chunk-ETIAW4YD.js +0 -56
- package/dist/chunk-ETIAW4YD.js.map +0 -1
- package/dist/chunk-EUPXAYPB.js +0 -20
- package/dist/chunk-EUPXAYPB.js.map +0 -1
- package/dist/chunk-FA6YNU75.js +0 -56
- package/dist/chunk-FA6YNU75.js.map +0 -1
- package/dist/chunk-FFH6R5VQ.js +0 -28
- package/dist/chunk-FFH6R5VQ.js.map +0 -1
- package/dist/chunk-GE6H2COM.js +0 -82
- package/dist/chunk-GE6H2COM.js.map +0 -1
- package/dist/chunk-GMMQ3ZK4.js +0 -56
- package/dist/chunk-GMMQ3ZK4.js.map +0 -1
- package/dist/chunk-GSGE3M5P.js +0 -82
- package/dist/chunk-GSGE3M5P.js.map +0 -1
- package/dist/chunk-HCRYAFBI.js +0 -50
- package/dist/chunk-HCRYAFBI.js.map +0 -1
- package/dist/chunk-HOPUP6LA.js +0 -982
- package/dist/chunk-HOPUP6LA.js.map +0 -1
- package/dist/chunk-HS24BL6W.js +0 -160
- package/dist/chunk-HS24BL6W.js.map +0 -1
- package/dist/chunk-HVYVG5KQ.js +0 -16
- package/dist/chunk-HVYVG5KQ.js.map +0 -1
- package/dist/chunk-I7CPLZNW.js +0 -56
- package/dist/chunk-I7CPLZNW.js.map +0 -1
- package/dist/chunk-IFUCGI4I.js +0 -35
- package/dist/chunk-IFUCGI4I.js.map +0 -1
- package/dist/chunk-IFYXSSKR.js +0 -227
- package/dist/chunk-IFYXSSKR.js.map +0 -1
- package/dist/chunk-IXA4DQE4.js +0 -20
- package/dist/chunk-IXA4DQE4.js.map +0 -1
- package/dist/chunk-IZMKMD3O.js +0 -11
- package/dist/chunk-IZMKMD3O.js.map +0 -1
- package/dist/chunk-JJERW2BI.js +0 -56
- package/dist/chunk-JJERW2BI.js.map +0 -1
- package/dist/chunk-JQR4HVUX.js +0 -94
- package/dist/chunk-JQR4HVUX.js.map +0 -1
- package/dist/chunk-JXOMDLFS.js +0 -87
- package/dist/chunk-JXOMDLFS.js.map +0 -1
- package/dist/chunk-KIX6N7NT.js +0 -1001
- package/dist/chunk-KIX6N7NT.js.map +0 -1
- package/dist/chunk-L42UTDFK.js +0 -40
- package/dist/chunk-L42UTDFK.js.map +0 -1
- package/dist/chunk-LPDLPRPS.js +0 -11
- package/dist/chunk-LPDLPRPS.js.map +0 -1
- package/dist/chunk-M2UF2JHJ.js +0 -11
- package/dist/chunk-M2UF2JHJ.js.map +0 -1
- package/dist/chunk-MONC734W.js +0 -36
- package/dist/chunk-MONC734W.js.map +0 -1
- package/dist/chunk-N72RLCMU.js +0 -56
- package/dist/chunk-N72RLCMU.js.map +0 -1
- package/dist/chunk-ND4IWJ4V.js +0 -29
- package/dist/chunk-ND4IWJ4V.js.map +0 -1
- package/dist/chunk-NZ3EKGW4.js +0 -1312
- package/dist/chunk-NZ3EKGW4.js.map +0 -1
- package/dist/chunk-OAE57MNL.js +0 -68
- package/dist/chunk-OAE57MNL.js.map +0 -1
- package/dist/chunk-OHKGIQB4.js +0 -87
- package/dist/chunk-OHKGIQB4.js.map +0 -1
- package/dist/chunk-OQKNDS66.js +0 -7
- package/dist/chunk-OQKNDS66.js.map +0 -1
- package/dist/chunk-OXEQSPND.js +0 -50
- package/dist/chunk-OXEQSPND.js.map +0 -1
- package/dist/chunk-PKNE5J2B.js +0 -82
- package/dist/chunk-PKNE5J2B.js.map +0 -1
- package/dist/chunk-PSXXEGYQ.js +0 -16
- package/dist/chunk-PSXXEGYQ.js.map +0 -1
- package/dist/chunk-QAOVABCR.js +0 -79
- package/dist/chunk-QAOVABCR.js.map +0 -1
- package/dist/chunk-QQ7FP4GD.js +0 -56
- package/dist/chunk-QQ7FP4GD.js.map +0 -1
- package/dist/chunk-QYLVMC6B.js +0 -94
- package/dist/chunk-QYLVMC6B.js.map +0 -1
- package/dist/chunk-RX3XR65X.js +0 -56
- package/dist/chunk-RX3XR65X.js.map +0 -1
- package/dist/chunk-RYQJJB4C.js +0 -30
- package/dist/chunk-RYQJJB4C.js.map +0 -1
- package/dist/chunk-TUF7TCN7.js +0 -56
- package/dist/chunk-TUF7TCN7.js.map +0 -1
- package/dist/chunk-TUX36JY5.js +0 -56
- package/dist/chunk-TUX36JY5.js.map +0 -1
- package/dist/chunk-TWRQCQWU.js +0 -1153
- package/dist/chunk-TWRQCQWU.js.map +0 -1
- package/dist/chunk-U6DFQRG3.js +0 -20
- package/dist/chunk-U6DFQRG3.js.map +0 -1
- package/dist/chunk-VI5YTKNY.js +0 -20
- package/dist/chunk-VI5YTKNY.js.map +0 -1
- package/dist/chunk-VQDF2UH5.js +0 -335
- package/dist/chunk-VQDF2UH5.js.map +0 -1
- package/dist/chunk-WG5YS6TC.js +0 -872
- package/dist/chunk-WG5YS6TC.js.map +0 -1
- package/dist/chunk-WMJJ4WGF.js +0 -56
- package/dist/chunk-WMJJ4WGF.js.map +0 -1
- package/dist/chunk-WY4FNH42.js +0 -113
- package/dist/chunk-WY4FNH42.js.map +0 -1
- package/dist/chunk-XIG5BWWH.js +0 -75
- package/dist/chunk-XIG5BWWH.js.map +0 -1
- package/dist/chunk-XJBC3OYX.js +0 -11
- package/dist/chunk-XJBC3OYX.js.map +0 -1
- package/dist/chunk-XPRDXWK7.js +0 -93
- package/dist/chunk-XPRDXWK7.js.map +0 -1
- package/dist/chunk-YKRQSZS7.js +0 -96
- package/dist/chunk-YKRQSZS7.js.map +0 -1
- package/dist/chunk-YMBL3VJB.js +0 -87
- package/dist/chunk-YMBL3VJB.js.map +0 -1
- package/dist/chunk-YUJBXFYK.js +0 -1205
- package/dist/chunk-YUJBXFYK.js.map +0 -1
- package/dist/chunk-YZ4ZJNOL.js +0 -72
- package/dist/chunk-YZ4ZJNOL.js.map +0 -1
- package/dist/chunk-ZTHVEXIV.js +0 -11
- package/dist/chunk-ZTHVEXIV.js.map +0 -1
- package/dist/chunk-ZVSYUCYS.js +0 -120
- package/dist/chunk-ZVSYUCYS.js.map +0 -1
- package/dist/config-2YBCHU2W.js +0 -13
- package/dist/config-2YBCHU2W.js.map +0 -1
- package/dist/config-3YRGRW72.js +0 -14
- package/dist/config-3YRGRW72.js.map +0 -1
- package/dist/config-4GSOMUMF.js +0 -9
- package/dist/config-4GSOMUMF.js.map +0 -1
- package/dist/config-5YBUWFUP.js +0 -9
- package/dist/config-5YBUWFUP.js.map +0 -1
- package/dist/config-5ZRKJTKG.js +0 -12
- package/dist/config-5ZRKJTKG.js.map +0 -1
- package/dist/config-A25LTL5W.js +0 -11
- package/dist/config-A25LTL5W.js.map +0 -1
- package/dist/config-CLU7JABG.js +0 -9
- package/dist/config-CLU7JABG.js.map +0 -1
- package/dist/config-D2RF7L3N.js +0 -9
- package/dist/config-D2RF7L3N.js.map +0 -1
- package/dist/config-E55TKM6K.js +0 -9
- package/dist/config-E55TKM6K.js.map +0 -1
- package/dist/config-ELDOFRJW.js +0 -9
- package/dist/config-ELDOFRJW.js.map +0 -1
- package/dist/config-FPC3RBFD.js +0 -13
- package/dist/config-FPC3RBFD.js.map +0 -1
- package/dist/config-FPM3LAW7.js +0 -9
- package/dist/config-FPM3LAW7.js.map +0 -1
- package/dist/config-G3F54CS4.js +0 -14
- package/dist/config-G3F54CS4.js.map +0 -1
- package/dist/config-G43HRUI3.js +0 -9
- package/dist/config-G43HRUI3.js.map +0 -1
- package/dist/config-GG3WO5PB.js +0 -14
- package/dist/config-GG3WO5PB.js.map +0 -1
- package/dist/config-JUYBWAZE.js +0 -9
- package/dist/config-JUYBWAZE.js.map +0 -1
- package/dist/config-LJ5T6TVA.js +0 -17
- package/dist/config-LJ5T6TVA.js.map +0 -1
- package/dist/config-MDSAE4O3.js +0 -11
- package/dist/config-MDSAE4O3.js.map +0 -1
- package/dist/config-NRIOKK5T.js +0 -9
- package/dist/config-NRIOKK5T.js.map +0 -1
- package/dist/config-OYK2BSJK.js +0 -9
- package/dist/config-OYK2BSJK.js.map +0 -1
- package/dist/config-PB3KA2CE.js +0 -9
- package/dist/config-PB3KA2CE.js.map +0 -1
- package/dist/config-QY4IL3PH.js +0 -12
- package/dist/config-QY4IL3PH.js.map +0 -1
- package/dist/config-R4LAOEDS.js +0 -9
- package/dist/config-R4LAOEDS.js.map +0 -1
- package/dist/config-RIAAD6RW.js +0 -14
- package/dist/config-RIAAD6RW.js.map +0 -1
- package/dist/config-SYNEQAUB.js +0 -9
- package/dist/config-SYNEQAUB.js.map +0 -1
- package/dist/config-TJKGYA2B.js +0 -14
- package/dist/config-TJKGYA2B.js.map +0 -1
- package/dist/config-UU27ALAA.js +0 -9
- package/dist/config-UU27ALAA.js.map +0 -1
- package/dist/config-UURRGA7U.js +0 -13
- package/dist/config-UURRGA7U.js.map +0 -1
- package/dist/config-VPLHQXVE.js +0 -13
- package/dist/config-VPLHQXVE.js.map +0 -1
- package/dist/config-WRACCRPN.js +0 -9
- package/dist/config-WRACCRPN.js.map +0 -1
- package/dist/config-WVHKXEVE.js +0 -12
- package/dist/config-WVHKXEVE.js.map +0 -1
- package/dist/config-XU7R36IE.js +0 -14
- package/dist/config-XU7R36IE.js.map +0 -1
- package/dist/config-Y2KOUYSS.js +0 -9
- package/dist/config-Y2KOUYSS.js.map +0 -1
- package/dist/databricks_volume-CNCPTZHS.js +0 -7
- package/dist/databricks_volume-CNCPTZHS.js.map +0 -1
- package/dist/digitalocean-DJZOUB6Q.js +0 -11
- package/dist/digitalocean-DJZOUB6Q.js.map +0 -1
- package/dist/discord-ETB2CADR.js +0 -7
- package/dist/discord-ETB2CADR.js.map +0 -1
- package/dist/disk-WEHSTK3F.js +0 -7
- package/dist/disk-WEHSTK3F.js.map +0 -1
- package/dist/dropbox-XN6PGLNE.js +0 -8
- package/dist/dropbox-XN6PGLNE.js.map +0 -1
- package/dist/email-OV7XCP3T.js +0 -8
- package/dist/email-OV7XCP3T.js.map +0 -1
- package/dist/gcal-P56MRCGU.js +0 -8
- package/dist/gcal-P56MRCGU.js.map +0 -1
- package/dist/gcs-HFBIAE2C.js +0 -10
- package/dist/gcs-HFBIAE2C.js.map +0 -1
- package/dist/gdocs-LQ3UXP3J.js +0 -8
- package/dist/gdocs-LQ3UXP3J.js.map +0 -1
- package/dist/gdrive-N6UBYLON.js +0 -8
- package/dist/gdrive-N6UBYLON.js.map +0 -1
- package/dist/github-BPZREGPI.js +0 -8
- package/dist/github-BPZREGPI.js.map +0 -1
- package/dist/github_ci-7A4LUIZ7.js +0 -8
- package/dist/github_ci-7A4LUIZ7.js.map +0 -1
- package/dist/gmail-YED2MF6H.js +0 -8
- package/dist/gmail-YED2MF6H.js.map +0 -1
- package/dist/gridfs-CPLQ4G62.js +0 -9
- package/dist/gridfs-CPLQ4G62.js.map +0 -1
- package/dist/gsheets-4BNIJPQ6.js +0 -8
- package/dist/gsheets-4BNIJPQ6.js.map +0 -1
- package/dist/gslides-GDBYLO5A.js +0 -8
- package/dist/gslides-GDBYLO5A.js.map +0 -1
- package/dist/hf_buckets-FTJITQ3P.js +0 -10
- package/dist/hf_buckets-FTJITQ3P.js.map +0 -1
- package/dist/hf_datasets-6GXVKQD7.js +0 -10
- package/dist/hf_datasets-6GXVKQD7.js.map +0 -1
- package/dist/hf_models-PJPGZAC5.js +0 -10
- package/dist/hf_models-PJPGZAC5.js.map +0 -1
- package/dist/hf_spaces-LFNFOLBF.js +0 -10
- package/dist/hf_spaces-LFNFOLBF.js.map +0 -1
- package/dist/jaeger-GCA6MJ6E.js +0 -8
- package/dist/jaeger-GCA6MJ6E.js.map +0 -1
- package/dist/lancedb-TJ5YSJY5.js +0 -7
- package/dist/lancedb-TJ5YSJY5.js.map +0 -1
- package/dist/langfuse-RUMTUMXS.js +0 -8
- package/dist/langfuse-RUMTUMXS.js.map +0 -1
- package/dist/linear-BCE4KEAC.js +0 -7
- package/dist/linear-BCE4KEAC.js.map +0 -1
- package/dist/minio-5SO6KBTK.js +0 -11
- package/dist/minio-5SO6KBTK.js.map +0 -1
- package/dist/mongodb-7C5MBESV.js +0 -7
- package/dist/mongodb-7C5MBESV.js.map +0 -1
- package/dist/nextcloud-4O2LZVW2.js +0 -9
- package/dist/nextcloud-4O2LZVW2.js.map +0 -1
- package/dist/notion-RVKEAQ2M.js +0 -7
- package/dist/notion-RVKEAQ2M.js.map +0 -1
- package/dist/oci-OQXOIC62.js +0 -10
- package/dist/oci-OQXOIC62.js.map +0 -1
- package/dist/postgres-AV45GNRS.js +0 -7
- package/dist/postgres-AV45GNRS.js.map +0 -1
- package/dist/qingstor-W277YA4K.js +0 -11
- package/dist/qingstor-W277YA4K.js.map +0 -1
- package/dist/r2-FUA4IORE.js +0 -10
- package/dist/r2-FUA4IORE.js.map +0 -1
- package/dist/redis-LPS357NF.js +0 -8
- package/dist/redis-LPS357NF.js.map +0 -1
- package/dist/s3-FPNWWIVM.js +0 -8
- package/dist/s3-FPNWWIVM.js.map +0 -1
- package/dist/scaleway-BP3732U7.js +0 -11
- package/dist/scaleway-BP3732U7.js.map +0 -1
- package/dist/seaweedfs-MC6HIEP4.js +0 -11
- package/dist/seaweedfs-MC6HIEP4.js.map +0 -1
- package/dist/slack-JFGW7VLN.js +0 -7
- package/dist/slack-JFGW7VLN.js.map +0 -1
- package/dist/ssh-UYPG42LM.js +0 -8
- package/dist/ssh-UYPG42LM.js.map +0 -1
- package/dist/supabase-A3KUFMDC.js +0 -10
- package/dist/supabase-A3KUFMDC.js.map +0 -1
- package/dist/tencent-5464UQ2X.js +0 -11
- package/dist/tencent-5464UQ2X.js.map +0 -1
- package/dist/trello-O2KB3FUO.js +0 -8
- package/dist/trello-O2KB3FUO.js.map +0 -1
- package/dist/wasabi-2IKBIWNO.js +0 -10
- package/dist/wasabi-2IKBIWNO.js.map +0 -1
- /package/dist/{append.lua → shell/console/redis/append.lua} +0 -0
- /package/dist/{cas.lua → workspace/session/cas.lua} +0 -0
package/dist/config.js
ADDED
|
@@ -0,0 +1,967 @@
|
|
|
1
|
+
// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========
|
|
2
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
3
|
+
// you may not use this file except in compliance with the License.
|
|
4
|
+
// You may obtain a copy of the License at
|
|
5
|
+
//
|
|
6
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
7
|
+
//
|
|
8
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
9
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
10
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
11
|
+
// See the License for the specific language governing permissions and
|
|
12
|
+
// limitations under the License.
|
|
13
|
+
// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========
|
|
14
|
+
import { randomBytes } from 'node:crypto';
|
|
15
|
+
import { readFileSync } from 'node:fs';
|
|
16
|
+
import { dirname, isAbsolute, join, resolve } from 'node:path';
|
|
17
|
+
import { parse as parseYaml } from 'yaml';
|
|
18
|
+
import { CLISpec } from '@struktoai/mirage-core/commands/cli/types';
|
|
19
|
+
import { Runtime } from '@struktoai/mirage-core/runtime/base';
|
|
20
|
+
import { ScriptSource } from '@struktoai/mirage-core/runtime/routing/index';
|
|
21
|
+
import { buildRuntime, checkRuntimeOptions } from '@struktoai/mirage-core/runtime/table';
|
|
22
|
+
import { EnvVarSchema, SecretSourceSchema, } from '@struktoai/mirage-core/secrets/config';
|
|
23
|
+
import { ConsistencyPolicy, KERNEL_BACKENDS, Limit, MountBackend, MountMode, OnExceed, parseMountMode, } from '@struktoai/mirage-core/types';
|
|
24
|
+
import { snakeToCamel } from '@struktoai/mirage-core/utils/normalize';
|
|
25
|
+
import { parseSessionProfile } from '@struktoai/mirage-core/policy/profile';
|
|
26
|
+
import { RAMWorkspaceStateStore } from '@struktoai/mirage-core/workspace/store/ram';
|
|
27
|
+
import { S3WorkspaceStateStore } from '@struktoai/mirage-core/workspace/store/s3';
|
|
28
|
+
import { normalizeS3Config } from "./resource/s3/config.js";
|
|
29
|
+
import { isModulePath, loadAttr, splitRef } from "./resource/loader.js";
|
|
30
|
+
// The config door is a workspace entry point of its own (the daemon
|
|
31
|
+
// builds from here), so it arms the builtin secrets sources like the
|
|
32
|
+
// node Workspace module does.
|
|
33
|
+
import { configHoldsPointer, resolveConfigSecrets, resolveSourcesFor, } from '@struktoai/mirage-core/secrets/sources';
|
|
34
|
+
import "./secrets/constants.js";
|
|
35
|
+
import { buildResource } from "./resource/registry.js";
|
|
36
|
+
import { RedisConsoleStore } from "./shell/console/redis/index.js";
|
|
37
|
+
import { DiskWorkspaceStateStore } from "./workspace/store/disk.js";
|
|
38
|
+
import { RedisWorkspaceStateStore } from "./workspace/store/redis.js";
|
|
39
|
+
import { JobConsole } from '@struktoai/mirage-core/shell/console/index';
|
|
40
|
+
import { compareCodePoints } from '@struktoai/mirage-core/utils/sort';
|
|
41
|
+
function coerceMountMode(value, fallback) {
|
|
42
|
+
if (value === undefined)
|
|
43
|
+
return fallback;
|
|
44
|
+
return parseMountMode(value.toLowerCase());
|
|
45
|
+
}
|
|
46
|
+
const VALID_CONSISTENCY = new Set([ConsistencyPolicy.LAZY, ConsistencyPolicy.ALWAYS]);
|
|
47
|
+
/** True for the docker-style single-line script path form (.py/.js/.mjs). */
|
|
48
|
+
function isScriptPath(value) {
|
|
49
|
+
return !value.includes('\n') && ['.py', '.js', '.mjs'].some((ext) => value.trim().endsWith(ext));
|
|
50
|
+
}
|
|
51
|
+
// Config carries a reference, the wire carries content (the docker
|
|
52
|
+
// build-context model): the value must be a path to a .py/.js file,
|
|
53
|
+
// read at load time. In code, scripts are functions; config is the
|
|
54
|
+
// only door for script source. The extension stamps the script's
|
|
55
|
+
// language so the policy engine can pick a matching evaluator.
|
|
56
|
+
function loadScriptSource(value) {
|
|
57
|
+
if (!isScriptPath(value)) {
|
|
58
|
+
throw new Error(`a config script must reference a .py/.js file (e.g. script: guard.py), got '${value}'`);
|
|
59
|
+
}
|
|
60
|
+
const path = value.trim();
|
|
61
|
+
const language = path.endsWith('.js') || path.endsWith('.mjs') ? 'js' : 'python';
|
|
62
|
+
return new ScriptSource(readFileSync(path, 'utf-8'), language, path.endsWith('.mjs'));
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Load the `Runtime` subclass a `source:Class` reference names.
|
|
66
|
+
*
|
|
67
|
+
* The runtime twin of the `resource:` and `cli:` reference forms: a
|
|
68
|
+
* deployment ships a runtime as a file and names it from yaml with no
|
|
69
|
+
* host program calling `registerRuntime`. The class is constructed with
|
|
70
|
+
* the uniform `(captures, config, script)` options like a builtin, so
|
|
71
|
+
* the entry's other keys reach it unchanged. Mirrors `_runtime_class` in
|
|
72
|
+
* `mirage/config.py`.
|
|
73
|
+
*/
|
|
74
|
+
async function loadRuntimeClass(ref) {
|
|
75
|
+
const loaded = await loadAttr(ref);
|
|
76
|
+
if (typeof loaded !== 'function' || !(loaded.prototype instanceof Runtime)) {
|
|
77
|
+
throw new Error(`${JSON.stringify(ref)} is not a Runtime subclass`);
|
|
78
|
+
}
|
|
79
|
+
return loaded;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Turn config runtime entries into workspace runtime entries: names, or
|
|
83
|
+
* mappings carrying a name plus the uniform runtime options. A name is a
|
|
84
|
+
* registered runtime or a `source:Class` reference to a `Runtime`
|
|
85
|
+
* subclass.
|
|
86
|
+
*/
|
|
87
|
+
async function buildRuntimeEntries(entries) {
|
|
88
|
+
const out = [];
|
|
89
|
+
for (const entry of entries) {
|
|
90
|
+
if (typeof entry === 'string') {
|
|
91
|
+
out.push(entry.includes(':') ? new (await loadRuntimeClass(entry))() : buildRuntime(entry));
|
|
92
|
+
continue;
|
|
93
|
+
}
|
|
94
|
+
if (!isPlainObject(entry))
|
|
95
|
+
throw new Error('runtime entry must be a name or a mapping');
|
|
96
|
+
const { name, script, ...options } = entry;
|
|
97
|
+
if (typeof name !== 'string' || name === '') {
|
|
98
|
+
throw new Error("runtime entry needs a non-empty 'name'");
|
|
99
|
+
}
|
|
100
|
+
if (script !== undefined && typeof script !== 'string') {
|
|
101
|
+
throw new Error('a runtime entry script must be a .py path string');
|
|
102
|
+
}
|
|
103
|
+
const withScript = script !== undefined ? { ...options, script: loadScriptSource(script) } : options;
|
|
104
|
+
if (name.includes(':')) {
|
|
105
|
+
// The key check `buildRuntime` runs for a name: the base
|
|
106
|
+
// constructor ignores a key it does not read, so without it a typo
|
|
107
|
+
// would leave the runtime on its defaults where Python's
|
|
108
|
+
// `**options` refuses the entry.
|
|
109
|
+
const cls = await loadRuntimeClass(name);
|
|
110
|
+
checkRuntimeOptions(name, withScript);
|
|
111
|
+
out.push(new cls(withScript));
|
|
112
|
+
continue;
|
|
113
|
+
}
|
|
114
|
+
out.push(buildRuntime(name, withScript));
|
|
115
|
+
}
|
|
116
|
+
return out;
|
|
117
|
+
}
|
|
118
|
+
function coerceConsistency(value) {
|
|
119
|
+
if (value === undefined)
|
|
120
|
+
return ConsistencyPolicy.LAZY;
|
|
121
|
+
const lower = value.toLowerCase();
|
|
122
|
+
if (!VALID_CONSISTENCY.has(lower))
|
|
123
|
+
throw new Error(`invalid consistency: ${value}`);
|
|
124
|
+
return lower;
|
|
125
|
+
}
|
|
126
|
+
const VALID_ON_EXCEED = new Set([OnExceed.ERROR, OnExceed.TRUNCATE]);
|
|
127
|
+
function coerceOnExceed(value) {
|
|
128
|
+
if (!VALID_ON_EXCEED.has(value.toLowerCase())) {
|
|
129
|
+
throw new Error(`invalid onExceed: ${value}`);
|
|
130
|
+
}
|
|
131
|
+
return value.toLowerCase();
|
|
132
|
+
}
|
|
133
|
+
function camelizeKeys(obj) {
|
|
134
|
+
const out = {};
|
|
135
|
+
for (const [k, v] of Object.entries(obj))
|
|
136
|
+
out[snakeToCamel(k)] = v;
|
|
137
|
+
return out;
|
|
138
|
+
}
|
|
139
|
+
function isPlainObject(v) {
|
|
140
|
+
return v !== null && typeof v === 'object' && !Array.isArray(v);
|
|
141
|
+
}
|
|
142
|
+
// Python sets extra="forbid" on every workspace-config block, so a typo
|
|
143
|
+
// like `mount_point:` for `mountpoint:`, `consistancy:` or `limitt:` is
|
|
144
|
+
// a hard ValueError there. These tables mirror those models field for
|
|
145
|
+
// field so the same YAML is accepted (and rejected) by both languages.
|
|
146
|
+
//
|
|
147
|
+
// The spellings are Python's canonical snake_case ones on purpose: a
|
|
148
|
+
// camelCase alias that TS would accept for free is a key Python rejects,
|
|
149
|
+
// which is the same portability break pointing the other way.
|
|
150
|
+
//
|
|
151
|
+
// `mounts.*.config` is the one block with no table, because Python types
|
|
152
|
+
// it as a bare dict and validates it in the resource's own model. Do not
|
|
153
|
+
// generalize that to every credential-carrying block: an s3 store group
|
|
154
|
+
// has a strict Python model (`S3StoreBlock`, extra="forbid"), so it is
|
|
155
|
+
// tabled here like the rest.
|
|
156
|
+
const TOP_LEVEL_KEYS = [
|
|
157
|
+
'mounts',
|
|
158
|
+
'clis',
|
|
159
|
+
'runtimes',
|
|
160
|
+
'route_policy',
|
|
161
|
+
'profiles',
|
|
162
|
+
'profile',
|
|
163
|
+
'mode',
|
|
164
|
+
'consistency',
|
|
165
|
+
'default_session_id',
|
|
166
|
+
'default_agent_id',
|
|
167
|
+
'workspace_id',
|
|
168
|
+
'cache',
|
|
169
|
+
'index',
|
|
170
|
+
'store',
|
|
171
|
+
'console',
|
|
172
|
+
'env',
|
|
173
|
+
'secrets',
|
|
174
|
+
];
|
|
175
|
+
const MOUNT_KEYS = [
|
|
176
|
+
'resource',
|
|
177
|
+
'mode',
|
|
178
|
+
'config',
|
|
179
|
+
'command_limits',
|
|
180
|
+
'backend',
|
|
181
|
+
'mountpoint',
|
|
182
|
+
];
|
|
183
|
+
// A source instance is a type beside a config, the way a mount is. Its
|
|
184
|
+
// `config:` block has no table for the same reason `mounts.*.config`
|
|
185
|
+
// has none: each source owns its own model and validates there.
|
|
186
|
+
const SOURCE_KEYS = ['source', 'config'];
|
|
187
|
+
const CACHE_KEYS = {
|
|
188
|
+
ram: ['type', 'limit', 'max_drain_bytes'],
|
|
189
|
+
redis: ['type', 'limit', 'max_drain_bytes', 'url', 'key_prefix'],
|
|
190
|
+
};
|
|
191
|
+
const INDEX_KEYS = {
|
|
192
|
+
ram: ['type', 'ttl'],
|
|
193
|
+
redis: ['type', 'ttl', 'url', 'key_prefix'],
|
|
194
|
+
};
|
|
195
|
+
const CONSOLE_KEYS = {
|
|
196
|
+
ram: ['type'],
|
|
197
|
+
redis: ['type', 'url', 'key_prefix', 'ttl_seconds'],
|
|
198
|
+
};
|
|
199
|
+
const STORE_GROUPS = ['namespace', 'observer', 'workspace'];
|
|
200
|
+
const STORE_KEYS = ['type', 'url', 'key_prefix', 'root', ...STORE_GROUPS];
|
|
201
|
+
// An s3 group IS `S3Config` plus the discriminator, so its keys are that
|
|
202
|
+
// model's, spelled Python's way. Python declares it as
|
|
203
|
+
// `S3StoreBlock(S3Config)` with extra="forbid" — a strict model, unlike
|
|
204
|
+
// the untyped `mounts.*.config` — so a typo is a load error there and
|
|
205
|
+
// must be one here.
|
|
206
|
+
const STORE_GROUP_KEYS = {
|
|
207
|
+
ram: ['type'],
|
|
208
|
+
disk: ['type', 'root'],
|
|
209
|
+
redis: ['type', 'url', 'key_prefix'],
|
|
210
|
+
s3: [
|
|
211
|
+
'type',
|
|
212
|
+
'bucket',
|
|
213
|
+
'region',
|
|
214
|
+
'endpoint_url',
|
|
215
|
+
'aws_access_key_id',
|
|
216
|
+
'aws_secret_access_key',
|
|
217
|
+
'aws_session_token',
|
|
218
|
+
'aws_profile',
|
|
219
|
+
'path_style',
|
|
220
|
+
'timeout',
|
|
221
|
+
'proxy',
|
|
222
|
+
'key_prefix',
|
|
223
|
+
],
|
|
224
|
+
};
|
|
225
|
+
// The s3 store hosts only the sessions+meta plane, so it is valid as the
|
|
226
|
+
// `workspace` override and nowhere else — as the top-level default it is
|
|
227
|
+
// already refused above. Its store raises when asked to build another
|
|
228
|
+
// plane; both languages now refuse the config instead of the plane.
|
|
229
|
+
const S3_HOSTED_GROUP = 'workspace';
|
|
230
|
+
const PLAIN_STORE_GROUP_KEYS = Object.fromEntries(Object.entries(STORE_GROUP_KEYS).filter(([type]) => type !== 's3'));
|
|
231
|
+
const CLI_KEYS = ['cli', 'script', 'runtime', 'config'];
|
|
232
|
+
// A store group whose `type` names a backend carries that backend's own
|
|
233
|
+
// spellings: `aws_access_key_id` is `accessKeyId`, not `awsAccessKeyId`,
|
|
234
|
+
// so camelizing here would hide the key from the translation that does
|
|
235
|
+
// know it. Its *keys* are still checked — the backend's model declares
|
|
236
|
+
// them (see STORE_GROUP_KEYS above) — only the renaming is skipped.
|
|
237
|
+
const BACKEND_SPELLED_TYPES = new Set(['s3']);
|
|
238
|
+
function keepsBackendSpellings(block) {
|
|
239
|
+
return typeof block.type === 'string' && BACKEND_SPELLED_TYPES.has(block.type);
|
|
240
|
+
}
|
|
241
|
+
function rejectUnknownKeys(block, allowed, what) {
|
|
242
|
+
for (const key of Object.keys(block)) {
|
|
243
|
+
if (allowed.includes(key))
|
|
244
|
+
continue;
|
|
245
|
+
throw new Error(`unknown ${what} key \`${key}\` (allowed: ${allowed.join(', ')})`);
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* The `type:` discriminator of a typed block. `fallback` is the type
|
|
250
|
+
* assumed when the key is absent; leave it out where Python models the
|
|
251
|
+
* block as a discriminated union, which makes `type` mandatory.
|
|
252
|
+
*/
|
|
253
|
+
function blockType(block, what, known, fallback) {
|
|
254
|
+
const type = block.type ?? fallback;
|
|
255
|
+
if (type === undefined) {
|
|
256
|
+
throw new Error(`config \`${what}\` needs a \`type\` (one of ${known.join(', ')})`);
|
|
257
|
+
}
|
|
258
|
+
if (typeof type !== 'string') {
|
|
259
|
+
throw new Error(`config \`${what}\` type must be a string (one of ${known.join(', ')})`);
|
|
260
|
+
}
|
|
261
|
+
if (!known.includes(type)) {
|
|
262
|
+
throw new Error(`unknown ${what} type \`${type}\` (expected one of ${known.join(', ')})`);
|
|
263
|
+
}
|
|
264
|
+
return type;
|
|
265
|
+
}
|
|
266
|
+
function validateTypedBlock(value, table, what, fallback) {
|
|
267
|
+
if (value === undefined || value === null)
|
|
268
|
+
return;
|
|
269
|
+
if (!isPlainObject(value))
|
|
270
|
+
throw new Error(`config \`${what}\` must be a mapping`);
|
|
271
|
+
const type = blockType(value, what, Object.keys(table), fallback);
|
|
272
|
+
rejectUnknownKeys(value, table[type] ?? [], `${what} (${type})`);
|
|
273
|
+
}
|
|
274
|
+
// Key names alone are not enough here: Python's Pydantic model rejects
|
|
275
|
+
// `url: 123` at load, so the TS loader must refuse the same file at the
|
|
276
|
+
// same boundary instead of deferring it to Redis client creation.
|
|
277
|
+
function validateConsoleValues(value) {
|
|
278
|
+
if (!isPlainObject(value))
|
|
279
|
+
return;
|
|
280
|
+
if (value.url !== undefined && typeof value.url !== 'string') {
|
|
281
|
+
throw new Error('config `console.url` must be a string');
|
|
282
|
+
}
|
|
283
|
+
if (value.key_prefix !== undefined && typeof value.key_prefix !== 'string') {
|
|
284
|
+
throw new Error('config `console.key_prefix` must be a string');
|
|
285
|
+
}
|
|
286
|
+
const ttl = value.ttl_seconds;
|
|
287
|
+
if (ttl !== undefined &&
|
|
288
|
+
ttl !== null &&
|
|
289
|
+
!(typeof ttl === 'number' && Number.isFinite(ttl) && ttl > 0)) {
|
|
290
|
+
throw new Error('config `console.ttl_seconds` must be a positive number or null');
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
function validateStoreBlock(value) {
|
|
294
|
+
if (value === undefined || value === null)
|
|
295
|
+
return;
|
|
296
|
+
if (!isPlainObject(value))
|
|
297
|
+
throw new Error('config `store` must be a mapping');
|
|
298
|
+
// The top level picks the default backend for every plane; s3 hosts
|
|
299
|
+
// only the sessions+meta group, so it is a `workspace` override and
|
|
300
|
+
// never the default. Mirrors Python's StoreBlock.
|
|
301
|
+
blockType(value, 'store', ['ram', 'disk', 'redis'], 'ram');
|
|
302
|
+
rejectUnknownKeys(value, STORE_KEYS, 'store');
|
|
303
|
+
for (const group of STORE_GROUPS) {
|
|
304
|
+
const block = value[group];
|
|
305
|
+
if (block === undefined || block === null)
|
|
306
|
+
continue;
|
|
307
|
+
if (!isPlainObject(block))
|
|
308
|
+
throw new Error(`config \`store.${group}\` must be a mapping`);
|
|
309
|
+
if (block.type === 's3' && group !== S3_HOSTED_GROUP) {
|
|
310
|
+
throw new Error(`config \`store.${group}\` cannot be s3: the s3 store hosts only the ` +
|
|
311
|
+
`sessions+meta group; keep the ${group} plane on ram or redis and pass ` +
|
|
312
|
+
`the s3 store as the '${S3_HOSTED_GROUP}' group override`);
|
|
313
|
+
}
|
|
314
|
+
const table = group === S3_HOSTED_GROUP ? STORE_GROUP_KEYS : PLAIN_STORE_GROUP_KEYS;
|
|
315
|
+
validateTypedBlock(block, table, `store.${group}`, 'ram');
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
/** A raw block's `config`, or an empty mapping when it is absent or not one. */
|
|
319
|
+
function asConfig(value) {
|
|
320
|
+
return isPlainObject(value) ? value : {};
|
|
321
|
+
}
|
|
322
|
+
/**
|
|
323
|
+
* Reject any key no Python config model declares, before normalization
|
|
324
|
+
* folds snake_case into camelCase and the distinction is gone.
|
|
325
|
+
*/
|
|
326
|
+
function validateConfigKeys(raw) {
|
|
327
|
+
rejectUnknownKeys(raw, TOP_LEVEL_KEYS, 'config');
|
|
328
|
+
if (isPlainObject(raw.mounts)) {
|
|
329
|
+
for (const [prefix, block] of Object.entries(raw.mounts)) {
|
|
330
|
+
if (!isPlainObject(block))
|
|
331
|
+
throw new Error(`mount \`${prefix}\` must be a mapping`);
|
|
332
|
+
rejectUnknownKeys(block, MOUNT_KEYS, `mount \`${prefix}\``);
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
if (isPlainObject(raw.clis)) {
|
|
336
|
+
for (const [name, block] of Object.entries(raw.clis)) {
|
|
337
|
+
if (!isPlainObject(block))
|
|
338
|
+
throw new Error(`cli \`${name}\` must be a mapping`);
|
|
339
|
+
rejectUnknownKeys(block, CLI_KEYS, `cli \`${name}\``);
|
|
340
|
+
// A pointer may only fill a config that a model validates, because
|
|
341
|
+
// the model is what a snapshot redacts by. A script's config is
|
|
342
|
+
// opaque: nothing declares which key is a credential, so the
|
|
343
|
+
// snapshot captures it verbatim, and a pointer resolved into it
|
|
344
|
+
// would be written out as the value it fetched. Refused here, on
|
|
345
|
+
// the block, so every door that reads a config inherits the rule.
|
|
346
|
+
if (typeof block.script === 'string' && configHoldsPointer(asConfig(block.config))) {
|
|
347
|
+
throw new Error(`clis entry '${name}': a script's config is opaque and a pointer in it would be ` +
|
|
348
|
+
'written into every snapshot; read the credential from a managed env var instead');
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
// The profiles validate through the core's own validators (the same
|
|
353
|
+
// shape the SDK and REST take), so a typo like `path:` on a deny rule
|
|
354
|
+
// fails here rather than widening the rule.
|
|
355
|
+
if (raw.profiles !== undefined && raw.profiles !== null) {
|
|
356
|
+
parseProfiles(raw.profiles);
|
|
357
|
+
}
|
|
358
|
+
if (raw.profile !== undefined && raw.profile !== null) {
|
|
359
|
+
if (typeof raw.profile !== 'string')
|
|
360
|
+
throw new Error('profile must be a string');
|
|
361
|
+
const known = isPlainObject(raw.profiles) ? Object.keys(raw.profiles) : [];
|
|
362
|
+
if (!known.includes(raw.profile)) {
|
|
363
|
+
throw new Error(`unknown profile ${JSON.stringify(raw.profile)}`);
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
validateTypedBlock(raw.cache, CACHE_KEYS, 'cache');
|
|
367
|
+
validateTypedBlock(raw.index, INDEX_KEYS, 'index');
|
|
368
|
+
validateTypedBlock(raw.console, CONSOLE_KEYS, 'console');
|
|
369
|
+
validateConsoleValues(raw.console);
|
|
370
|
+
validateStoreBlock(raw.store);
|
|
371
|
+
validateEnvBlock(raw.env);
|
|
372
|
+
validateSecretsBlock(raw.secrets);
|
|
373
|
+
}
|
|
374
|
+
/**
|
|
375
|
+
* The source table: one map, instance name -> declaration. Blocks
|
|
376
|
+
* validate through the core schema (the same one the workspace applies
|
|
377
|
+
* at build), so a pointer at a source that cannot bootstrap another
|
|
378
|
+
* fails at load naming the instance. The block travels raw: an
|
|
379
|
+
* instance name must not be camelized, and a source's own config keys
|
|
380
|
+
* are snake_case for the same reason a mount's are.
|
|
381
|
+
*/
|
|
382
|
+
function validateSecretsBlock(value) {
|
|
383
|
+
if (value === undefined || value === null)
|
|
384
|
+
return;
|
|
385
|
+
if (!isPlainObject(value))
|
|
386
|
+
throw new Error('config `secrets` must be a mapping');
|
|
387
|
+
for (const [name, block] of Object.entries(value)) {
|
|
388
|
+
if (!isPlainObject(block))
|
|
389
|
+
throw new Error(`config \`secrets.${name}\` must be a mapping`);
|
|
390
|
+
rejectUnknownKeys(block, SOURCE_KEYS, `config \`secrets.${name}\``);
|
|
391
|
+
const parsed = SecretSourceSchema.safeParse(block);
|
|
392
|
+
if (!parsed.success) {
|
|
393
|
+
const detail = parsed.error.issues[0]?.message ?? parsed.error.message;
|
|
394
|
+
throw new Error(`config \`secrets.${name}\`: ${detail}`);
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
/**
|
|
399
|
+
* The env block: one map, name -> entry. Entries validate through the
|
|
400
|
+
* core schema (the same one `varsFromEntries` applies at build), so a
|
|
401
|
+
* bad entry fails at load naming the variable, and the block travels
|
|
402
|
+
* raw -- variable names must not be camelized and a literal's text must
|
|
403
|
+
* arrive verbatim.
|
|
404
|
+
*/
|
|
405
|
+
function validateEnvBlock(value) {
|
|
406
|
+
if (value === undefined || value === null)
|
|
407
|
+
return;
|
|
408
|
+
if (!isPlainObject(value))
|
|
409
|
+
throw new Error('config `env` must be a mapping');
|
|
410
|
+
for (const [name, entry] of Object.entries(value)) {
|
|
411
|
+
if (typeof entry === 'string')
|
|
412
|
+
continue;
|
|
413
|
+
if (!isPlainObject(entry)) {
|
|
414
|
+
throw new Error(`config \`env.${name}\` must be a string or a mapping`);
|
|
415
|
+
}
|
|
416
|
+
const parsed = EnvVarSchema.safeParse(entry);
|
|
417
|
+
if (!parsed.success) {
|
|
418
|
+
const detail = parsed.error.issues[0]?.message ?? parsed.error.message;
|
|
419
|
+
throw new Error(`config \`env.${name}\`: ${detail}`);
|
|
420
|
+
}
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
// Workspace YAML uses Python's snake_case keys (default_session_id, the
|
|
424
|
+
// cache/index key_prefix/max_drain_bytes, ...). TS code stays camelCase, so
|
|
425
|
+
// normalize at the boundary: camelize the top-level keys plus the cache and
|
|
426
|
+
// index blocks. Mounts are left untouched on purpose, their `config:` blocks
|
|
427
|
+
// carry resource credentials whose snake_case keys (aws_access_key_id, ...)
|
|
428
|
+
// are consumed downstream as-is, and command_limits is camelized later.
|
|
429
|
+
function normalizeConfigKeys(raw) {
|
|
430
|
+
const out = camelizeKeys(raw);
|
|
431
|
+
if (isPlainObject(out.cache))
|
|
432
|
+
out.cache = camelizeKeys(out.cache);
|
|
433
|
+
if (isPlainObject(out.index))
|
|
434
|
+
out.index = camelizeKeys(out.index);
|
|
435
|
+
if (isPlainObject(out.console))
|
|
436
|
+
out.console = camelizeKeys(out.console);
|
|
437
|
+
if (isPlainObject(out.store)) {
|
|
438
|
+
const store = camelizeKeys(out.store);
|
|
439
|
+
for (const group of STORE_GROUPS) {
|
|
440
|
+
const block = store[group];
|
|
441
|
+
if (!isPlainObject(block))
|
|
442
|
+
continue;
|
|
443
|
+
if (keepsBackendSpellings(block))
|
|
444
|
+
continue;
|
|
445
|
+
store[group] = camelizeKeys(block);
|
|
446
|
+
}
|
|
447
|
+
out.store = store;
|
|
448
|
+
}
|
|
449
|
+
if (Array.isArray(out.runtimes)) {
|
|
450
|
+
// A runtime entry's config block carries the runtime's own knobs
|
|
451
|
+
// (sandbox_id, api_key, home, ...), snake_case in yaml like every
|
|
452
|
+
// Python-shaped key; the TS runtime config classes are camelCase,
|
|
453
|
+
// so camelize the block's keys too. Only the keys: values such as
|
|
454
|
+
// the env map pass through untouched.
|
|
455
|
+
out.runtimes = out.runtimes.map((entry) => {
|
|
456
|
+
if (!isPlainObject(entry))
|
|
457
|
+
return entry;
|
|
458
|
+
const normalized = camelizeKeys(entry);
|
|
459
|
+
if (isPlainObject(normalized.config)) {
|
|
460
|
+
normalized.config = camelizeKeys(normalized.config);
|
|
461
|
+
}
|
|
462
|
+
return normalized;
|
|
463
|
+
});
|
|
464
|
+
}
|
|
465
|
+
return out;
|
|
466
|
+
}
|
|
467
|
+
// Workspace YAML uses Python's snake_case keys (command_limits, max_lines,
|
|
468
|
+
// on_exceed, ...). The in-memory config stays camelCase, so normalize each
|
|
469
|
+
// block's keys at the boundary before constructing the limit.
|
|
470
|
+
function parseLimits(raw) {
|
|
471
|
+
const out = {};
|
|
472
|
+
for (const [cmd, rawBlock] of Object.entries(raw ?? {})) {
|
|
473
|
+
const block = camelizeKeys(rawBlock);
|
|
474
|
+
out[cmd] = new Limit({
|
|
475
|
+
...(block.maxBytes !== undefined ? { maxBytes: block.maxBytes } : {}),
|
|
476
|
+
...(block.maxLines !== undefined ? { maxLines: block.maxLines } : {}),
|
|
477
|
+
...(block.timeoutSeconds !== undefined ? { timeoutSeconds: block.timeoutSeconds } : {}),
|
|
478
|
+
...(block.onExceed !== undefined ? { onExceed: coerceOnExceed(block.onExceed) } : {}),
|
|
479
|
+
});
|
|
480
|
+
}
|
|
481
|
+
return out;
|
|
482
|
+
}
|
|
483
|
+
/**
|
|
484
|
+
* Validate the `profiles:` block: every entry through the core profile
|
|
485
|
+
* validator, so a misspelled field is a load error rather than a
|
|
486
|
+
* first-session one. A profile is the whole document it runs under, so
|
|
487
|
+
* there is no chain to resolve here.
|
|
488
|
+
*/
|
|
489
|
+
function parseProfiles(raw) {
|
|
490
|
+
if (!isPlainObject(raw))
|
|
491
|
+
throw new Error('config `profiles` must be a mapping');
|
|
492
|
+
const out = {};
|
|
493
|
+
for (const [name, block] of Object.entries(raw)) {
|
|
494
|
+
// A path-form script stays the string the config wrote: the check
|
|
495
|
+
// door validates shape only, and runs before `absolutizeScripts`
|
|
496
|
+
// has rebased the path onto the config file's directory, so reading
|
|
497
|
+
// it here would resolve against the process cwd. The workspace door
|
|
498
|
+
// (`toWorkspaceOptions`) loads it, the python loader's split.
|
|
499
|
+
out[name] = parseSessionProfile(block, `profile \`${name}\``);
|
|
500
|
+
}
|
|
501
|
+
return out;
|
|
502
|
+
}
|
|
503
|
+
/**
|
|
504
|
+
* Load each profile's path-form policy into a ScriptSource.
|
|
505
|
+
*
|
|
506
|
+
* By this door the path is absolute for a file config (the check door
|
|
507
|
+
* rebased it onto the config file's directory); an object config's
|
|
508
|
+
* relative path resolves against the process cwd, as in Python. Code
|
|
509
|
+
* that passes a loaded ScriptSource is left alone.
|
|
510
|
+
*/
|
|
511
|
+
function loadProfileScripts(profiles) {
|
|
512
|
+
const out = {};
|
|
513
|
+
for (const [name, profile] of Object.entries(profiles)) {
|
|
514
|
+
const policy = profile.policy;
|
|
515
|
+
out[name] =
|
|
516
|
+
policy != null && typeof policy.script === 'string'
|
|
517
|
+
? { ...profile, policy: { ...policy, script: loadScriptSource(policy.script) } }
|
|
518
|
+
: profile;
|
|
519
|
+
}
|
|
520
|
+
return out;
|
|
521
|
+
}
|
|
522
|
+
const VAR_RE = /\$\{([A-Z_][A-Z0-9_]*)\}/g;
|
|
523
|
+
function walkInterpolate(v, env, missing) {
|
|
524
|
+
if (typeof v === 'string') {
|
|
525
|
+
return v.replace(VAR_RE, (_m, name) => {
|
|
526
|
+
const resolved = env[name];
|
|
527
|
+
if (resolved === undefined) {
|
|
528
|
+
missing.push(name);
|
|
529
|
+
return '';
|
|
530
|
+
}
|
|
531
|
+
return resolved;
|
|
532
|
+
});
|
|
533
|
+
}
|
|
534
|
+
if (Array.isArray(v)) {
|
|
535
|
+
return v.map((item) => walkInterpolate(item, env, missing));
|
|
536
|
+
}
|
|
537
|
+
if (v !== null && typeof v === 'object') {
|
|
538
|
+
// fromEntries, not keyed assignment: this copy walks the whole
|
|
539
|
+
// config, so a `__proto__` key anywhere in it (a source instance,
|
|
540
|
+
// a source's own config field) would assign through the prototype
|
|
541
|
+
// setter and vanish before anything downstream saw it.
|
|
542
|
+
const out = Object.fromEntries(Object.entries(v).map(([k, val]) => [
|
|
543
|
+
k,
|
|
544
|
+
walkInterpolate(val, env, missing),
|
|
545
|
+
]));
|
|
546
|
+
return out;
|
|
547
|
+
}
|
|
548
|
+
return v;
|
|
549
|
+
}
|
|
550
|
+
export function interpolateEnv(value, env) {
|
|
551
|
+
const missing = [];
|
|
552
|
+
const out = walkInterpolate(value, env, missing);
|
|
553
|
+
if (missing.length > 0) {
|
|
554
|
+
const unique = Array.from(new Set(missing)).sort(compareCodePoints);
|
|
555
|
+
throw new Error(`missing environment variables: ${unique.join(', ')}`);
|
|
556
|
+
}
|
|
557
|
+
return out;
|
|
558
|
+
}
|
|
559
|
+
function readProcessEnv() {
|
|
560
|
+
const out = {};
|
|
561
|
+
for (const [k, v] of Object.entries(process.env)) {
|
|
562
|
+
if (typeof v === 'string')
|
|
563
|
+
out[k] = v;
|
|
564
|
+
}
|
|
565
|
+
return out;
|
|
566
|
+
}
|
|
567
|
+
/**
|
|
568
|
+
* Interpolate `${VAR}` and check every key, leaving the spelling alone.
|
|
569
|
+
*
|
|
570
|
+
* This is the shape that travels: the CLI prepares a config here and
|
|
571
|
+
* POSTs it, and the daemon runs the same check on what arrives, so the
|
|
572
|
+
* wire carries Python's snake_case exactly as `model_dump()` does on
|
|
573
|
+
* that side. Camelizing before sending would make the loader have to
|
|
574
|
+
* accept its own output, which is how a camelCase spelling Python
|
|
575
|
+
* rejects would creep back in.
|
|
576
|
+
*/
|
|
577
|
+
export function checkWorkspaceConfig(source, env) {
|
|
578
|
+
const raw = { ...source };
|
|
579
|
+
const useEnv = env ?? readProcessEnv();
|
|
580
|
+
const interpolated = interpolateEnv(raw, useEnv);
|
|
581
|
+
const mounts = interpolated.mounts;
|
|
582
|
+
if (mounts === undefined ||
|
|
583
|
+
typeof mounts !== 'object' ||
|
|
584
|
+
mounts === null ||
|
|
585
|
+
Array.isArray(mounts)) {
|
|
586
|
+
throw new Error('config requires a `mounts` mapping');
|
|
587
|
+
}
|
|
588
|
+
validateConfigKeys(interpolated);
|
|
589
|
+
return interpolated;
|
|
590
|
+
}
|
|
591
|
+
export function loadWorkspaceConfig(source, env) {
|
|
592
|
+
return normalizeConfigKeys(checkWorkspaceConfig(source, env));
|
|
593
|
+
}
|
|
594
|
+
/**
|
|
595
|
+
* Resolve relative script paths and code refs against the config file's
|
|
596
|
+
* directory.
|
|
597
|
+
*
|
|
598
|
+
* A path-form `script`/`route_policy`, a `cli: ./tool.mjs:TREE`, a
|
|
599
|
+
* `resource: ./wiki.mjs:WikiResource` and a runtime entry's
|
|
600
|
+
* `name: ./box.mjs:EchoBox` in a config file all mean "next to the file"
|
|
601
|
+
* (the docker build-context model), never "wherever the server happens
|
|
602
|
+
* to run". In-memory object configs are untouched. Exported so
|
|
603
|
+
* the CLI applies the same rebase to a `load`/`clone` override, which is
|
|
604
|
+
* read without validation and so cannot go through
|
|
605
|
+
* `checkWorkspaceConfigFile`; mirrors `_absolutize_scripts` in
|
|
606
|
+
* `mirage/config.py`.
|
|
607
|
+
*/
|
|
608
|
+
export function absolutizeScripts(raw, base) {
|
|
609
|
+
const policy = raw.route_policy;
|
|
610
|
+
if (typeof policy === 'string' && isScriptPath(policy) && !isAbsolute(policy.trim())) {
|
|
611
|
+
raw.route_policy = join(base, policy.trim());
|
|
612
|
+
}
|
|
613
|
+
if (Array.isArray(raw.runtimes)) {
|
|
614
|
+
raw.runtimes.forEach((entry, i) => {
|
|
615
|
+
if (isPlainObject(entry)) {
|
|
616
|
+
absolutizeScriptKey(entry, base);
|
|
617
|
+
absolutizeCodeRef(entry, 'name', base);
|
|
618
|
+
}
|
|
619
|
+
else if (typeof entry === 'string') {
|
|
620
|
+
;
|
|
621
|
+
raw.runtimes[i] = rebaseCodeRef(entry, base);
|
|
622
|
+
}
|
|
623
|
+
});
|
|
624
|
+
}
|
|
625
|
+
if (isPlainObject(raw.clis)) {
|
|
626
|
+
for (const block of Object.values(raw.clis)) {
|
|
627
|
+
if (!isPlainObject(block))
|
|
628
|
+
continue;
|
|
629
|
+
absolutizeScriptKey(block, base);
|
|
630
|
+
absolutizeCodeRef(block, 'cli', base);
|
|
631
|
+
}
|
|
632
|
+
}
|
|
633
|
+
if (isPlainObject(raw.mounts)) {
|
|
634
|
+
for (const block of Object.values(raw.mounts)) {
|
|
635
|
+
if (isPlainObject(block))
|
|
636
|
+
absolutizeCodeRef(block, 'resource', base);
|
|
637
|
+
}
|
|
638
|
+
}
|
|
639
|
+
if (isPlainObject(raw.profiles)) {
|
|
640
|
+
for (const block of Object.values(raw.profiles)) {
|
|
641
|
+
// A profile's policy block carries its program the way a clis
|
|
642
|
+
// entry does, so its `script` rebases the same way.
|
|
643
|
+
if (isPlainObject(block) && isPlainObject(block.policy)) {
|
|
644
|
+
absolutizeScriptKey(block.policy, base);
|
|
645
|
+
}
|
|
646
|
+
}
|
|
647
|
+
}
|
|
648
|
+
}
|
|
649
|
+
/** Rebase one runtimes/clis/policy entry's relative `script` path onto `base`. */
|
|
650
|
+
function absolutizeScriptKey(entry, base) {
|
|
651
|
+
const script = entry.script;
|
|
652
|
+
if (typeof script === 'string' && isScriptPath(script) && !isAbsolute(script.trim())) {
|
|
653
|
+
entry.script = join(base, script.trim());
|
|
654
|
+
}
|
|
655
|
+
}
|
|
656
|
+
/**
|
|
657
|
+
* Rebase a path-form colon reference under `key` onto `base`.
|
|
658
|
+
*
|
|
659
|
+
* `cli: ./tool.mjs:TREE`, `resource: ./wiki.mjs:WikiResource` and a
|
|
660
|
+
* runtime entry's `name: ./box.mjs:EchoBox` all mean "next to the config
|
|
661
|
+
* file", the same build-context rule `script:` follows; without this the
|
|
662
|
+
* pointer reaches `loadAttr` relative and
|
|
663
|
+
* resolves against the server process's cwd. A package specifier
|
|
664
|
+
* (`my-clis:JIRA`) is left alone: Node resolves it, not the filesystem.
|
|
665
|
+
* The split is `splitRef`/`isModulePath`, the same pair `loadAttr` uses,
|
|
666
|
+
* so the two cannot disagree about what a path is.
|
|
667
|
+
*/
|
|
668
|
+
function absolutizeCodeRef(entry, key, base) {
|
|
669
|
+
const ref = entry[key];
|
|
670
|
+
if (typeof ref === 'string')
|
|
671
|
+
entry[key] = rebaseCodeRef(ref, base);
|
|
672
|
+
}
|
|
673
|
+
/**
|
|
674
|
+
* `ref` with a relative path-form source rebased onto `base`. Anything
|
|
675
|
+
* that is not a relative path-form reference (a bare name, a package
|
|
676
|
+
* specifier, an absolute path) comes back unchanged, so the bare string
|
|
677
|
+
* runtime entry (`- ./box.mjs:EchoBox` beside `- monty`) reads the same
|
|
678
|
+
* way the keyed forms do.
|
|
679
|
+
*/
|
|
680
|
+
function rebaseCodeRef(ref, base) {
|
|
681
|
+
if (!ref.includes(':'))
|
|
682
|
+
return ref;
|
|
683
|
+
const [source, attr] = splitRef(ref);
|
|
684
|
+
if (!isModulePath(source) || isAbsolute(source))
|
|
685
|
+
return ref;
|
|
686
|
+
return `${join(base, source)}:${attr}`;
|
|
687
|
+
}
|
|
688
|
+
/**
|
|
689
|
+
* Read a config file into the shape that travels: checked, env
|
|
690
|
+
* interpolated, script paths resolved against the file's directory —
|
|
691
|
+
* and still spelled the way the file spelled it. What a CLI sends to
|
|
692
|
+
* the daemon.
|
|
693
|
+
*/
|
|
694
|
+
export function checkWorkspaceConfigFile(path, env) {
|
|
695
|
+
const text = readFileSync(path, 'utf-8');
|
|
696
|
+
const parsed = parseYaml(text);
|
|
697
|
+
if (parsed === null || typeof parsed !== 'object' || Array.isArray(parsed)) {
|
|
698
|
+
throw new Error(`config source must be a mapping`);
|
|
699
|
+
}
|
|
700
|
+
const config = checkWorkspaceConfig(parsed, env);
|
|
701
|
+
absolutizeScripts(config, dirname(resolve(path)));
|
|
702
|
+
return config;
|
|
703
|
+
}
|
|
704
|
+
export function loadWorkspaceConfigFile(path, env) {
|
|
705
|
+
return normalizeConfigKeys(checkWorkspaceConfigFile(path, env));
|
|
706
|
+
}
|
|
707
|
+
function buildIndex(block) {
|
|
708
|
+
if (block === null || block === undefined)
|
|
709
|
+
return undefined;
|
|
710
|
+
if (block.type === 'redis') {
|
|
711
|
+
const cfg = { type: 'redis' };
|
|
712
|
+
if (block.ttl !== undefined)
|
|
713
|
+
cfg.ttl = block.ttl;
|
|
714
|
+
if (block.url !== undefined)
|
|
715
|
+
cfg.url = block.url;
|
|
716
|
+
if (block.keyPrefix !== undefined)
|
|
717
|
+
cfg.keyPrefix = block.keyPrefix;
|
|
718
|
+
return cfg;
|
|
719
|
+
}
|
|
720
|
+
const cfg = { type: 'ram' };
|
|
721
|
+
if (block.ttl !== undefined)
|
|
722
|
+
cfg.ttl = block.ttl;
|
|
723
|
+
return cfg;
|
|
724
|
+
}
|
|
725
|
+
function buildStoreGroup(block) {
|
|
726
|
+
if (block.type === 'redis') {
|
|
727
|
+
return new RedisWorkspaceStateStore({
|
|
728
|
+
...(block.url !== undefined ? { url: block.url } : {}),
|
|
729
|
+
...(block.keyPrefix !== undefined ? { keyPrefix: block.keyPrefix } : {}),
|
|
730
|
+
});
|
|
731
|
+
}
|
|
732
|
+
if (block.type === 'disk') {
|
|
733
|
+
return new DiskWorkspaceStateStore({
|
|
734
|
+
...(block.root !== undefined ? { root: block.root } : {}),
|
|
735
|
+
});
|
|
736
|
+
}
|
|
737
|
+
if (block.type === 's3') {
|
|
738
|
+
// The block IS the S3Config once the discriminator is dropped, so
|
|
739
|
+
// new S3Config fields flow through without being re-declared here
|
|
740
|
+
// (the same reason Python's S3StoreBlock subclasses S3Config). The
|
|
741
|
+
// keys are still the file's snake_case ones, so they go through the
|
|
742
|
+
// same translation the s3 mount uses — `key_prefix` and friends do
|
|
743
|
+
// not survive a plain camelize.
|
|
744
|
+
const s3 = { key_prefix: 'mirage/', ...block };
|
|
745
|
+
delete s3.type;
|
|
746
|
+
return new S3WorkspaceStateStore(normalizeS3Config(s3));
|
|
747
|
+
}
|
|
748
|
+
return new RAMWorkspaceStateStore();
|
|
749
|
+
}
|
|
750
|
+
// Build one job's console on its own Redis stream. The key carries a
|
|
751
|
+
// fresh nonce beside the job id, because job ids restart at 1 when the
|
|
752
|
+
// table empties and a reused stream would replay the previous job's
|
|
753
|
+
// chunks. The minted prefix is published as the store's keyPrefix
|
|
754
|
+
// (reachable as job.console.store), so an embedder can hand a reader
|
|
755
|
+
// in another process the console's address. Keys expire ttl_seconds
|
|
756
|
+
// after the last append (default one day) so finished jobs cannot
|
|
757
|
+
// accumulate in Redis forever. The workspace closes what this builds
|
|
758
|
+
// at teardown (JobTable.closeConsoles). Mirrors Python's
|
|
759
|
+
// _redis_console.
|
|
760
|
+
function buildConsoleFactory(block) {
|
|
761
|
+
if (block?.type !== 'redis')
|
|
762
|
+
return undefined;
|
|
763
|
+
const url = block.url ?? 'redis://localhost:6379/0';
|
|
764
|
+
const keyPrefix = block.keyPrefix ?? 'mirage:console:';
|
|
765
|
+
const ttlSeconds = block.ttlSeconds === undefined ? 86400 : block.ttlSeconds;
|
|
766
|
+
return (jobId) => new JobConsole(new RedisConsoleStore({
|
|
767
|
+
url,
|
|
768
|
+
keyPrefix: `${keyPrefix}${randomBytes(6).toString('hex')}:${jobId.toString()}:`,
|
|
769
|
+
...(ttlSeconds !== null ? { ttlSeconds } : {}),
|
|
770
|
+
}));
|
|
771
|
+
}
|
|
772
|
+
function buildStateStore(block) {
|
|
773
|
+
if (block === null || block === undefined)
|
|
774
|
+
return undefined;
|
|
775
|
+
const overrides = {
|
|
776
|
+
...(block.namespace != null ? { namespace: buildStoreGroup(block.namespace) } : {}),
|
|
777
|
+
...(block.observer != null ? { observer: buildStoreGroup(block.observer) } : {}),
|
|
778
|
+
...(block.workspace != null ? { workspace: buildStoreGroup(block.workspace) } : {}),
|
|
779
|
+
};
|
|
780
|
+
if (block.type === 'redis') {
|
|
781
|
+
return new RedisWorkspaceStateStore({
|
|
782
|
+
...(block.url !== undefined ? { url: block.url } : {}),
|
|
783
|
+
...(block.keyPrefix !== undefined ? { keyPrefix: block.keyPrefix } : {}),
|
|
784
|
+
...overrides,
|
|
785
|
+
});
|
|
786
|
+
}
|
|
787
|
+
if (block.type === 'disk') {
|
|
788
|
+
return new DiskWorkspaceStateStore({
|
|
789
|
+
...(block.root !== undefined ? { root: block.root } : {}),
|
|
790
|
+
...overrides,
|
|
791
|
+
});
|
|
792
|
+
}
|
|
793
|
+
return new RAMWorkspaceStateStore(overrides);
|
|
794
|
+
}
|
|
795
|
+
export async function configToWorkspaceArgs(cfg) {
|
|
796
|
+
const wsMode = coerceMountMode(cfg.mode, MountMode.WRITE);
|
|
797
|
+
const consistency = coerceConsistency(cfg.consistency);
|
|
798
|
+
const resources = {};
|
|
799
|
+
const kernelMounts = {};
|
|
800
|
+
// Built before the mounts, because a mount's config may point at one:
|
|
801
|
+
// `resolveConfigSecrets` inside `buildResource` fetches through these.
|
|
802
|
+
const blocks = [...Object.values(cfg.mounts), ...Object.values(cfg.clis ?? {})];
|
|
803
|
+
const sources = await resolveSourcesFor(cfg.secrets, blocks.map((block) => block.config ?? {}));
|
|
804
|
+
for (const [prefix, block] of Object.entries(cfg.mounts)) {
|
|
805
|
+
const r = await buildResource(block.resource, block.config ?? {}, sources);
|
|
806
|
+
const m = coerceMountMode(block.mode, wsMode);
|
|
807
|
+
resources[prefix] = [r, m, parseLimits(block.command_limits)];
|
|
808
|
+
const backend = (block.backend ?? MountBackend.VFS);
|
|
809
|
+
if (KERNEL_BACKENDS.includes(backend))
|
|
810
|
+
kernelMounts[prefix] = [backend, block.mountpoint];
|
|
811
|
+
}
|
|
812
|
+
const index = buildIndex(cfg.index);
|
|
813
|
+
const stateStore = buildStateStore(cfg.store);
|
|
814
|
+
const cliEntries = cfg.clis !== undefined && cfg.clis !== null
|
|
815
|
+
? await buildCliEntries(cfg.clis, sources)
|
|
816
|
+
: undefined;
|
|
817
|
+
const runtimeEntries = cfg.runtimes !== undefined && cfg.runtimes !== null
|
|
818
|
+
? await buildRuntimeEntries(cfg.runtimes)
|
|
819
|
+
: undefined;
|
|
820
|
+
const consoleFactory = buildConsoleFactory(cfg.console);
|
|
821
|
+
return {
|
|
822
|
+
resources,
|
|
823
|
+
options: {
|
|
824
|
+
mode: wsMode,
|
|
825
|
+
consistency,
|
|
826
|
+
...(cfg.defaultSessionId !== undefined ? { sessionId: cfg.defaultSessionId } : {}),
|
|
827
|
+
...(cfg.defaultAgentId !== undefined ? { agentId: cfg.defaultAgentId } : {}),
|
|
828
|
+
...(cfg.workspaceId !== undefined ? { workspaceId: cfg.workspaceId } : {}),
|
|
829
|
+
...(cfg.cache !== undefined && cfg.cache !== null ? { cache: cfg.cache } : {}),
|
|
830
|
+
...(index !== undefined ? { index } : {}),
|
|
831
|
+
// Built here for this workspace alone, so it is the workspace's
|
|
832
|
+
// to close — a redis or s3 store has a client that nothing else
|
|
833
|
+
// would ever release. Mirrors the `owns_store` Python's loader
|
|
834
|
+
// sets beside the same store.
|
|
835
|
+
...(stateStore !== undefined ? { store: stateStore, ownsStore: true } : {}),
|
|
836
|
+
...(consoleFactory !== undefined ? { consoleFactory } : {}),
|
|
837
|
+
...(runtimeEntries !== undefined ? { runtimes: runtimeEntries } : {}),
|
|
838
|
+
...(cfg.routePolicy !== undefined && cfg.routePolicy !== null
|
|
839
|
+
? { routePolicy: loadScriptSource(cfg.routePolicy) }
|
|
840
|
+
: {}),
|
|
841
|
+
...(cfg.profiles !== undefined && cfg.profiles !== null
|
|
842
|
+
? { profiles: loadProfileScripts(parseProfiles(cfg.profiles)) }
|
|
843
|
+
: {}),
|
|
844
|
+
...(cfg.profile !== undefined && cfg.profile !== null
|
|
845
|
+
? { profile: cfg.profile }
|
|
846
|
+
: {}),
|
|
847
|
+
...(cliEntries !== undefined ? { clis: cliEntries } : {}),
|
|
848
|
+
// Passed through as-is: this door resolves resources, and
|
|
849
|
+
// env-plane fetching is async at command time, so no fetching
|
|
850
|
+
// here (the workspace translates and validates sources).
|
|
851
|
+
...(cfg.env !== undefined && cfg.env !== null ? { env: cfg.env } : {}),
|
|
852
|
+
// Same reason: building a source reads its bootstrap pointers,
|
|
853
|
+
// which the workspace does once, before its first fetch.
|
|
854
|
+
...(cfg.secrets !== undefined && cfg.secrets !== null
|
|
855
|
+
? { secrets: cfg.secrets }
|
|
856
|
+
: {}),
|
|
857
|
+
},
|
|
858
|
+
kernelMounts,
|
|
859
|
+
};
|
|
860
|
+
}
|
|
861
|
+
/** Resolve a `cli:` value: a bare name stays a name, a ref loads a spec. */
|
|
862
|
+
async function resolveCliRef(ref, name) {
|
|
863
|
+
if (!ref.includes(':'))
|
|
864
|
+
return ref;
|
|
865
|
+
return asCliSpec(await loadAttr(ref), name, ref);
|
|
866
|
+
}
|
|
867
|
+
/**
|
|
868
|
+
* True when a value carries every field the CLI walker reads, at every
|
|
869
|
+
* level of the tree.
|
|
870
|
+
*
|
|
871
|
+
* This is the invariant `CLISpec`'s own constructor enforces, checked
|
|
872
|
+
* again here because the constructor that ran was not necessarily ours.
|
|
873
|
+
* The fields are the ones dispatch and `man` actually touch
|
|
874
|
+
* (`subcommands.find`, `aliases.includes`, `options.some`), so a value
|
|
875
|
+
* that passes cannot fail later reading a missing one. A class name is
|
|
876
|
+
* not enough on its own: any class called `CLISpec`, or an object with a
|
|
877
|
+
* `constructor` property that says so, would answer to that and then
|
|
878
|
+
* crash on the first line an agent types.
|
|
879
|
+
*/
|
|
880
|
+
function looksLikeCliSpec(value) {
|
|
881
|
+
if (value === null || typeof value !== 'object')
|
|
882
|
+
return false;
|
|
883
|
+
const node = value;
|
|
884
|
+
if (typeof node.name !== 'string' || node.name === '' || /\s/.test(node.name))
|
|
885
|
+
return false;
|
|
886
|
+
if (!Array.isArray(node.aliases) || !Array.isArray(node.options))
|
|
887
|
+
return false;
|
|
888
|
+
if (!Array.isArray(node.subcommands))
|
|
889
|
+
return false;
|
|
890
|
+
const runnable = typeof node.fn === 'function' ||
|
|
891
|
+
(node.script !== null && node.script !== undefined) ||
|
|
892
|
+
node.subcommands.length > 0;
|
|
893
|
+
if (!runnable)
|
|
894
|
+
return false;
|
|
895
|
+
return node.subcommands.every(looksLikeCliSpec);
|
|
896
|
+
}
|
|
897
|
+
/**
|
|
898
|
+
* Check that a `cli:` reference resolved to a program tree.
|
|
899
|
+
*
|
|
900
|
+
* `instanceof` is the fast path, not the test. The referenced file lives
|
|
901
|
+
* in someone else's project, which is the whole point of the ref form,
|
|
902
|
+
* and that project may resolve its own copy of `@struktoai/mirage-core`:
|
|
903
|
+
* a real CLISpec carrying every method, built off a different class
|
|
904
|
+
* object. Demanding `instanceof` would refuse exactly the case this
|
|
905
|
+
* exists to serve, so anything else is admitted on its shape instead,
|
|
906
|
+
* and refused at create time rather than when an agent first types the
|
|
907
|
+
* head word.
|
|
908
|
+
*/
|
|
909
|
+
function asCliSpec(value, name, ref) {
|
|
910
|
+
if (value instanceof CLISpec)
|
|
911
|
+
return value;
|
|
912
|
+
if (looksLikeCliSpec(value))
|
|
913
|
+
return value;
|
|
914
|
+
throw new Error(`clis entry '${name}': ${ref} is not a CLISpec`);
|
|
915
|
+
}
|
|
916
|
+
async function buildCliEntries(clis, sources) {
|
|
917
|
+
const out = {};
|
|
918
|
+
for (const [name, block] of Object.entries(clis)) {
|
|
919
|
+
// The raw config arrives as unvalidated YAML: the CLIBlock type is
|
|
920
|
+
// a claim, not a guarantee, so validate the shape here.
|
|
921
|
+
if (!isPlainObject(block)) {
|
|
922
|
+
throw new Error(`clis entry '${name}' must be a mapping`);
|
|
923
|
+
}
|
|
924
|
+
const unknown = Object.keys(block).filter((k) => !CLI_KEYS.includes(k));
|
|
925
|
+
if (unknown.length > 0) {
|
|
926
|
+
throw new Error(`clis entry '${name}': unknown keys: ${unknown.sort(compareCodePoints).join(', ')}`);
|
|
927
|
+
}
|
|
928
|
+
const hasCli = typeof block.cli === 'string';
|
|
929
|
+
const hasScript = typeof block.script === 'string';
|
|
930
|
+
if (hasCli === hasScript) {
|
|
931
|
+
throw new Error(`clis entry '${name}' takes exactly one of cli or script`);
|
|
932
|
+
}
|
|
933
|
+
if (block.runtime !== undefined && !hasScript) {
|
|
934
|
+
throw new Error(`clis entry '${name}': runtime pins the script's runtime; it takes script`);
|
|
935
|
+
}
|
|
936
|
+
if (block.runtime !== undefined && typeof block.runtime !== 'string') {
|
|
937
|
+
throw new Error(`clis entry '${name}': runtime must be a string`);
|
|
938
|
+
}
|
|
939
|
+
if (block.config !== undefined && !isPlainObject(block.config)) {
|
|
940
|
+
throw new Error(`clis entry '${name}': config must be a mapping`);
|
|
941
|
+
}
|
|
942
|
+
// A `cli` value carrying a colon points at code: `./tool.mjs:TALLY`
|
|
943
|
+
// (a file) or `my-clis:JIRA` (a package specifier). A bare name stays
|
|
944
|
+
// a name for the workspace to resolve against the registered specs.
|
|
945
|
+
// Mirrors the `":" in name` branch of Python's `cli_spec_for`, one
|
|
946
|
+
// layer up: `cliSpecFor` lives in core, which has no filesystem and
|
|
947
|
+
// is synchronous. A `resource:` value reads the same way, resolved by
|
|
948
|
+
// `buildResource` rather than here, because a mount block reaches the
|
|
949
|
+
// registry and a `clis` block does not.
|
|
950
|
+
const entry = hasScript
|
|
951
|
+
? new CLISpec({
|
|
952
|
+
name,
|
|
953
|
+
script: loadScriptSource(block.script),
|
|
954
|
+
runtime: block.runtime ?? null,
|
|
955
|
+
})
|
|
956
|
+
: await resolveCliRef(block.cli, name);
|
|
957
|
+
// A CLI credential reads a pointer the way a mount's does: the
|
|
958
|
+
// account CLI's `config_model` is the same model a resource
|
|
959
|
+
// parses, so it must receive the credential, not the pointer.
|
|
960
|
+
out[name] = [
|
|
961
|
+
entry,
|
|
962
|
+
await resolveConfigSecrets(block.config ?? {}, sources, `clis.${name}.config`),
|
|
963
|
+
];
|
|
964
|
+
}
|
|
965
|
+
return out;
|
|
966
|
+
}
|
|
967
|
+
//# sourceMappingURL=config.js.map
|