strands-shell 0.4.0__tar.gz → 0.6.0__tar.gz
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.
- strands_shell-0.6.0/.github/CODEOWNERS +1 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/.github/workflows/ci.yml +12 -4
- {strands_shell-0.4.0 → strands_shell-0.6.0}/.github/workflows/release.yml +7 -7
- {strands_shell-0.4.0 → strands_shell-0.6.0}/Cargo.lock +65 -66
- {strands_shell-0.4.0 → strands_shell-0.6.0}/Cargo.toml +12 -5
- {strands_shell-0.4.0 → strands_shell-0.6.0}/PKG-INFO +1 -1
- {strands_shell-0.4.0 → strands_shell-0.6.0}/package.json +2 -2
- {strands_shell-0.4.0 → strands_shell-0.6.0}/pyproject.toml +1 -1
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/builtins/alias.rs +15 -2
- strands_shell-0.6.0/src/builtins/builtin.rs +27 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/builtins/lua.rs +3 -3
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/builtins/mod.rs +2 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/builtins/unset.rs +4 -2
- strands_shell-0.6.0/src/command_fallback.rs +233 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/commands/grep.rs +186 -67
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/commands/head.rs +20 -1
- strands_shell-0.6.0/src/commands/rm.rs +108 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/commands/tail.rs +2 -1
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/exec.rs +388 -111
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/lib.rs +2 -1
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/os.rs +52 -3
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/vfs_kernel.rs +173 -34
- strands_shell-0.6.0/tests/command_fallback.rs +905 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/tests/curl_integration.rs +94 -35
- strands_shell-0.6.0/tests/custom_kernel.rs +569 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/tests/mcp_integration.rs +38 -12
- strands_shell-0.6.0/tests/path_resolution_cost.rs +60 -0
- strands_shell-0.6.0/tests/python/test_api.py +155 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/tests/shell_integration.rs +1561 -197
- strands_shell-0.6.0/tests/ts/api.types.ts +155 -0
- strands_shell-0.4.0/.github/CODEOWNERS +0 -1
- strands_shell-0.4.0/src/commands/rm.rs +0 -79
- strands_shell-0.4.0/tests/ts/api.types.ts +0 -88
- {strands_shell-0.4.0 → strands_shell-0.6.0}/.cargo/config.toml +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/.github/actions/stamp-version/action.yml +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/.github/dependabot.yml +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/.github/scripts/group-release-notes.py +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/.github/workflows/pr-title.yml +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/.gitignore +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/AGENTS.md +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/CODE_OF_CONDUCT.md +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/CONTRIBUTING.md +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/LICENSE +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/NOTICE +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/README.md +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/SECURITY.md +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/build.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/index.d.ts +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/index.js +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/python/strands_shell/__init__.py +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/scripts/build-wasm.sh +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/builtins/cd.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/builtins/colon.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/builtins/echo.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/builtins/export.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/builtins/find.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/builtins/getopts.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/builtins/hash.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/builtins/local.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/builtins/printf.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/builtins/pwd.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/builtins/read.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/builtins/set.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/builtins/shift.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/builtins/test.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/builtins/trap.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/builtins/type_cmd.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/builtins/umask.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/builtins/wait.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/builtins/xargs.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/cli.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/commands/basename.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/commands/cat.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/commands/chmod.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/commands/cp.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/commands/curl.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/commands/cut.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/commands/date.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/commands/dirname.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/commands/echo.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/commands/env.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/commands/false.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/commands/jq.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/commands/ln.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/commands/ls.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/commands/mkdir.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/commands/mktemp.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/commands/mod.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/commands/mv.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/commands/pwd.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/commands/readlink.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/commands/rmdir.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/commands/sed.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/commands/sleep.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/commands/sort.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/commands/tee.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/commands/touch.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/commands/tr.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/commands/true.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/commands/uniq.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/commands/wc.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/io.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/js.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/main.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/mcp.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/mcp_client.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/parser.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/prelude.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/python.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/shell.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/vfs.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/vfs_config.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/src/wasm_main.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/strands-shell-macros/Cargo.toml +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/strands-shell-macros/src/lib.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/tests/config.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/tests/js/test_bindings.mjs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/tests/js/test_builder.mjs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/tests/js/test_config.mjs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/tests/lua_integration.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/tests/python/test_bindings.py +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/tests/python/test_builder.py +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/tests/python/test_config.py +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/tests/vfs_unit.rs +0 -0
- {strands_shell-0.4.0 → strands_shell-0.6.0}/tsconfig.json +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
* @strands-agents/strands-box-maintainers
|
|
@@ -32,7 +32,7 @@ jobs:
|
|
|
32
32
|
os: [ubuntu-latest, macos-latest, windows-latest]
|
|
33
33
|
runs-on: ${{ matrix.os }}
|
|
34
34
|
steps:
|
|
35
|
-
- uses: actions/checkout@
|
|
35
|
+
- uses: actions/checkout@v7
|
|
36
36
|
with:
|
|
37
37
|
ref: ${{ inputs.ref }}
|
|
38
38
|
|
|
@@ -45,6 +45,14 @@ jobs:
|
|
|
45
45
|
- name: cargo test
|
|
46
46
|
run: cargo test --workspace --all-targets
|
|
47
47
|
|
|
48
|
+
# --all-targets skips doc tests, so run them on their own.
|
|
49
|
+
- name: cargo test (doc tests)
|
|
50
|
+
run: cargo test --workspace --doc
|
|
51
|
+
|
|
52
|
+
# The js worker unit tests sit behind the `node` feature.
|
|
53
|
+
- name: cargo test (node feature)
|
|
54
|
+
run: cargo test --lib --features node
|
|
55
|
+
|
|
48
56
|
- name: cargo doc
|
|
49
57
|
env:
|
|
50
58
|
RUSTDOCFLAGS: -D warnings
|
|
@@ -62,7 +70,7 @@ jobs:
|
|
|
62
70
|
python: ["3.10", "3.11", "3.12", "3.13", "3.14"]
|
|
63
71
|
runs-on: ${{ matrix.os }}
|
|
64
72
|
steps:
|
|
65
|
-
- uses: actions/checkout@
|
|
73
|
+
- uses: actions/checkout@v7
|
|
66
74
|
with:
|
|
67
75
|
ref: ${{ inputs.ref }}
|
|
68
76
|
|
|
@@ -110,7 +118,7 @@ jobs:
|
|
|
110
118
|
name: Security audit
|
|
111
119
|
runs-on: ubuntu-latest
|
|
112
120
|
steps:
|
|
113
|
-
- uses: actions/checkout@
|
|
121
|
+
- uses: actions/checkout@v7
|
|
114
122
|
with:
|
|
115
123
|
ref: ${{ inputs.ref }}
|
|
116
124
|
|
|
@@ -153,7 +161,7 @@ jobs:
|
|
|
153
161
|
node: ["20", "22", "24"]
|
|
154
162
|
runs-on: ${{ matrix.os }}
|
|
155
163
|
steps:
|
|
156
|
-
- uses: actions/checkout@
|
|
164
|
+
- uses: actions/checkout@v7
|
|
157
165
|
with:
|
|
158
166
|
ref: ${{ inputs.ref }}
|
|
159
167
|
|
|
@@ -58,7 +58,7 @@ jobs:
|
|
|
58
58
|
prev_tag: ${{ steps.scan.outputs.prev_tag }}
|
|
59
59
|
new_tag: ${{ steps.scan.outputs.new_tag }}
|
|
60
60
|
steps:
|
|
61
|
-
- uses: actions/checkout@
|
|
61
|
+
- uses: actions/checkout@v7
|
|
62
62
|
with:
|
|
63
63
|
fetch-depth: 0
|
|
64
64
|
fetch-tags: true
|
|
@@ -178,7 +178,7 @@ jobs:
|
|
|
178
178
|
target: x86_64-pc-windows-msvc
|
|
179
179
|
runs-on: ${{ matrix.os }}
|
|
180
180
|
steps:
|
|
181
|
-
- uses: actions/checkout@
|
|
181
|
+
- uses: actions/checkout@v7
|
|
182
182
|
with:
|
|
183
183
|
ref: ${{ needs.scan-commits.outputs.release_sha }}
|
|
184
184
|
|
|
@@ -213,7 +213,7 @@ jobs:
|
|
|
213
213
|
name: Python sdist
|
|
214
214
|
runs-on: ubuntu-latest
|
|
215
215
|
steps:
|
|
216
|
-
- uses: actions/checkout@
|
|
216
|
+
- uses: actions/checkout@v7
|
|
217
217
|
with:
|
|
218
218
|
ref: ${{ needs.scan-commits.outputs.release_sha }}
|
|
219
219
|
|
|
@@ -382,7 +382,7 @@ jobs:
|
|
|
382
382
|
target: x86_64-pc-windows-msvc
|
|
383
383
|
runs-on: ${{ matrix.os }}
|
|
384
384
|
steps:
|
|
385
|
-
- uses: actions/checkout@
|
|
385
|
+
- uses: actions/checkout@v7
|
|
386
386
|
with:
|
|
387
387
|
ref: ${{ needs.scan-commits.outputs.release_sha }}
|
|
388
388
|
|
|
@@ -448,7 +448,7 @@ jobs:
|
|
|
448
448
|
needs: [scan-commits, node-builds]
|
|
449
449
|
runs-on: ubuntu-latest
|
|
450
450
|
steps:
|
|
451
|
-
- uses: actions/checkout@
|
|
451
|
+
- uses: actions/checkout@v7
|
|
452
452
|
with:
|
|
453
453
|
ref: ${{ needs.scan-commits.outputs.release_sha }}
|
|
454
454
|
persist-credentials: false
|
|
@@ -572,7 +572,7 @@ jobs:
|
|
|
572
572
|
permissions:
|
|
573
573
|
contents: read
|
|
574
574
|
steps:
|
|
575
|
-
- uses: actions/checkout@
|
|
575
|
+
- uses: actions/checkout@v7
|
|
576
576
|
with:
|
|
577
577
|
ref: ${{ needs.scan-commits.outputs.release_sha }}
|
|
578
578
|
fetch-depth: 0
|
|
@@ -661,7 +661,7 @@ jobs:
|
|
|
661
661
|
permissions:
|
|
662
662
|
contents: write
|
|
663
663
|
steps:
|
|
664
|
-
- uses: actions/checkout@
|
|
664
|
+
- uses: actions/checkout@v7
|
|
665
665
|
with:
|
|
666
666
|
ref: ${{ needs.scan-commits.outputs.release_sha }}
|
|
667
667
|
# This job creates the tag, so keep the GITHUB_TOKEN in git config
|
|
@@ -78,7 +78,7 @@ checksum = "82f6aeea286b8eb4dd3431a1be1b59d290ace00f5bfd8e2a159bc2a05e2c1667"
|
|
|
78
78
|
dependencies = [
|
|
79
79
|
"proc-macro2",
|
|
80
80
|
"quote",
|
|
81
|
-
"syn 3.0.
|
|
81
|
+
"syn 3.0.9",
|
|
82
82
|
]
|
|
83
83
|
|
|
84
84
|
[[package]]
|
|
@@ -214,9 +214,9 @@ dependencies = [
|
|
|
214
214
|
|
|
215
215
|
[[package]]
|
|
216
216
|
name = "clap"
|
|
217
|
-
version = "4.6.
|
|
217
|
+
version = "4.6.7"
|
|
218
218
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
219
|
-
checksum = "
|
|
219
|
+
checksum = "aa8876b300ab35ba921adea3dfd70157a46249b33f95c9084ae5709785478946"
|
|
220
220
|
dependencies = [
|
|
221
221
|
"clap_builder",
|
|
222
222
|
"clap_derive",
|
|
@@ -224,9 +224,9 @@ dependencies = [
|
|
|
224
224
|
|
|
225
225
|
[[package]]
|
|
226
226
|
name = "clap_builder"
|
|
227
|
-
version = "4.6.
|
|
227
|
+
version = "4.6.7"
|
|
228
228
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
229
|
-
checksum = "
|
|
229
|
+
checksum = "ec0797fb7aeb1406c84efac526901f7ec3ead2124f946b494e72879d4b54704d"
|
|
230
230
|
dependencies = [
|
|
231
231
|
"anstream",
|
|
232
232
|
"anstyle",
|
|
@@ -236,14 +236,14 @@ dependencies = [
|
|
|
236
236
|
|
|
237
237
|
[[package]]
|
|
238
238
|
name = "clap_derive"
|
|
239
|
-
version = "4.6.
|
|
239
|
+
version = "4.6.7"
|
|
240
240
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
241
|
-
checksum = "
|
|
241
|
+
checksum = "f9c751b79415d4e559e3d1fcf128e09e720eb673a06d26cf6f392d37d75b66e0"
|
|
242
242
|
dependencies = [
|
|
243
243
|
"heck",
|
|
244
244
|
"proc-macro2",
|
|
245
245
|
"quote",
|
|
246
|
-
"syn 3.0.
|
|
246
|
+
"syn 3.0.9",
|
|
247
247
|
]
|
|
248
248
|
|
|
249
249
|
[[package]]
|
|
@@ -746,9 +746,9 @@ dependencies = [
|
|
|
746
746
|
|
|
747
747
|
[[package]]
|
|
748
748
|
name = "inventory"
|
|
749
|
-
version = "0.3.
|
|
749
|
+
version = "0.3.25"
|
|
750
750
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
751
|
-
checksum = "
|
|
751
|
+
checksum = "6928282826c822ad91bf1c9a1cb90a30ba1c26770749929b4656cd6be829cd7c"
|
|
752
752
|
dependencies = [
|
|
753
753
|
"rustversion",
|
|
754
754
|
]
|
|
@@ -880,9 +880,9 @@ checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154"
|
|
|
880
880
|
|
|
881
881
|
[[package]]
|
|
882
882
|
name = "lua-src"
|
|
883
|
-
version = "551.0.
|
|
883
|
+
version = "551.0.2"
|
|
884
884
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
885
|
-
checksum = "
|
|
885
|
+
checksum = "d400ffef0e3d4d29287092bdc5a276d0bf468b2c69709d5bab0d469312d9f947"
|
|
886
886
|
dependencies = [
|
|
887
887
|
"cc",
|
|
888
888
|
]
|
|
@@ -928,9 +928,9 @@ dependencies = [
|
|
|
928
928
|
|
|
929
929
|
[[package]]
|
|
930
930
|
name = "mlua"
|
|
931
|
-
version = "0.12.
|
|
931
|
+
version = "0.12.2"
|
|
932
932
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
933
|
-
checksum = "
|
|
933
|
+
checksum = "7a7ae6b65bf54b7fdd4cf5b6f44f60862350ebf3fe3779b3a9cc005e7fa14f81"
|
|
934
934
|
dependencies = [
|
|
935
935
|
"bstr",
|
|
936
936
|
"either",
|
|
@@ -944,9 +944,9 @@ dependencies = [
|
|
|
944
944
|
|
|
945
945
|
[[package]]
|
|
946
946
|
name = "mlua-sys"
|
|
947
|
-
version = "0.
|
|
947
|
+
version = "0.13.0"
|
|
948
948
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
949
|
-
checksum = "
|
|
949
|
+
checksum = "1631cda17bd6486410ab751d91f5fd4484f441589278cdad879eb3afc721a285"
|
|
950
950
|
dependencies = [
|
|
951
951
|
"cc",
|
|
952
952
|
"cfg-if",
|
|
@@ -958,9 +958,9 @@ dependencies = [
|
|
|
958
958
|
|
|
959
959
|
[[package]]
|
|
960
960
|
name = "napi"
|
|
961
|
-
version = "3.
|
|
961
|
+
version = "3.15.0"
|
|
962
962
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
963
|
-
checksum = "
|
|
963
|
+
checksum = "6a746ad50efbfb632ade1de4025519a477decbbd798cea1a6ac41d7c44f80083"
|
|
964
964
|
dependencies = [
|
|
965
965
|
"bitflags",
|
|
966
966
|
"ctor",
|
|
@@ -975,42 +975,42 @@ dependencies = [
|
|
|
975
975
|
|
|
976
976
|
[[package]]
|
|
977
977
|
name = "napi-build"
|
|
978
|
-
version = "2.
|
|
978
|
+
version = "2.6.0"
|
|
979
979
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
980
|
-
checksum = "
|
|
980
|
+
checksum = "b899b545d3aa6dca985939059f258c5488d34e4ecf39c274e20009748f4b846d"
|
|
981
981
|
|
|
982
982
|
[[package]]
|
|
983
983
|
name = "napi-derive"
|
|
984
|
-
version = "3.6.
|
|
984
|
+
version = "3.6.13"
|
|
985
985
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
986
|
-
checksum = "
|
|
986
|
+
checksum = "3ff48271a0f61abb83f3e2d1989fa71169143db95f6f948c3a8903961f2855dc"
|
|
987
987
|
dependencies = [
|
|
988
988
|
"convert_case",
|
|
989
989
|
"ctor",
|
|
990
990
|
"napi-derive-backend",
|
|
991
991
|
"proc-macro2",
|
|
992
992
|
"quote",
|
|
993
|
-
"syn
|
|
993
|
+
"syn 3.0.9",
|
|
994
994
|
]
|
|
995
995
|
|
|
996
996
|
[[package]]
|
|
997
997
|
name = "napi-derive-backend"
|
|
998
|
-
version = "6.1.
|
|
998
|
+
version = "6.1.6"
|
|
999
999
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1000
|
-
checksum = "
|
|
1000
|
+
checksum = "f2639052c5aff9956a21d7b6202fc61d5e89c5f19c72d289b7a0641ea94e8159"
|
|
1001
1001
|
dependencies = [
|
|
1002
1002
|
"convert_case",
|
|
1003
1003
|
"proc-macro2",
|
|
1004
1004
|
"quote",
|
|
1005
1005
|
"semver",
|
|
1006
|
-
"syn
|
|
1006
|
+
"syn 3.0.9",
|
|
1007
1007
|
]
|
|
1008
1008
|
|
|
1009
1009
|
[[package]]
|
|
1010
1010
|
name = "napi-sys"
|
|
1011
|
-
version = "3.
|
|
1011
|
+
version = "3.4.1"
|
|
1012
1012
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1013
|
-
checksum = "
|
|
1013
|
+
checksum = "d153beb7d5c973f4b9395be8a83054a28968b61188f1dd1a2cc2321af22daea2"
|
|
1014
1014
|
dependencies = [
|
|
1015
1015
|
"libloading",
|
|
1016
1016
|
]
|
|
@@ -1139,9 +1139,9 @@ dependencies = [
|
|
|
1139
1139
|
|
|
1140
1140
|
[[package]]
|
|
1141
1141
|
name = "pyo3"
|
|
1142
|
-
version = "0.
|
|
1142
|
+
version = "0.30.1"
|
|
1143
1143
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1144
|
-
checksum = "
|
|
1144
|
+
checksum = "229ca13b8a15bb0d1487b81ab975bfcd97513416499a8312011b6036e42e0de4"
|
|
1145
1145
|
dependencies = [
|
|
1146
1146
|
"libc",
|
|
1147
1147
|
"once_cell",
|
|
@@ -1153,18 +1153,18 @@ dependencies = [
|
|
|
1153
1153
|
|
|
1154
1154
|
[[package]]
|
|
1155
1155
|
name = "pyo3-build-config"
|
|
1156
|
-
version = "0.
|
|
1156
|
+
version = "0.30.1"
|
|
1157
1157
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1158
|
-
checksum = "
|
|
1158
|
+
checksum = "70130e2b6dd1ee589a8788026a429561ca5c40fa7a2fa7914c2282eddae24700"
|
|
1159
1159
|
dependencies = [
|
|
1160
1160
|
"target-lexicon",
|
|
1161
1161
|
]
|
|
1162
1162
|
|
|
1163
1163
|
[[package]]
|
|
1164
1164
|
name = "pyo3-ffi"
|
|
1165
|
-
version = "0.
|
|
1165
|
+
version = "0.30.1"
|
|
1166
1166
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1167
|
-
checksum = "
|
|
1167
|
+
checksum = "5e7ff73c555c286d212d4ce7e5fbda845a973c4f61bd5f160f5f2c3c2a04d1c4"
|
|
1168
1168
|
dependencies = [
|
|
1169
1169
|
"libc",
|
|
1170
1170
|
"pyo3-build-config",
|
|
@@ -1172,26 +1172,26 @@ dependencies = [
|
|
|
1172
1172
|
|
|
1173
1173
|
[[package]]
|
|
1174
1174
|
name = "pyo3-macros"
|
|
1175
|
-
version = "0.
|
|
1175
|
+
version = "0.30.1"
|
|
1176
1176
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1177
|
-
checksum = "
|
|
1177
|
+
checksum = "c46d2e5862c7bb8207e3b639f713dda3c499933444784154c11d013c5a691b60"
|
|
1178
1178
|
dependencies = [
|
|
1179
1179
|
"proc-macro2",
|
|
1180
1180
|
"pyo3-macros-backend",
|
|
1181
1181
|
"quote",
|
|
1182
|
-
"syn
|
|
1182
|
+
"syn 3.0.9",
|
|
1183
1183
|
]
|
|
1184
1184
|
|
|
1185
1185
|
[[package]]
|
|
1186
1186
|
name = "pyo3-macros-backend"
|
|
1187
|
-
version = "0.
|
|
1187
|
+
version = "0.30.1"
|
|
1188
1188
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1189
|
-
checksum = "
|
|
1189
|
+
checksum = "38b89f066f2ae72a2aef52d1537ca2fcd104440ebfadee06e97aa90738a25b9b"
|
|
1190
1190
|
dependencies = [
|
|
1191
1191
|
"heck",
|
|
1192
1192
|
"proc-macro2",
|
|
1193
1193
|
"quote",
|
|
1194
|
-
"syn
|
|
1194
|
+
"syn 3.0.9",
|
|
1195
1195
|
]
|
|
1196
1196
|
|
|
1197
1197
|
[[package]]
|
|
@@ -1407,9 +1407,9 @@ checksum = "94300abf3f1ae2e2b8ffb7b58043de3d399c73fa6f4b73826402a5c457614dbe"
|
|
|
1407
1407
|
|
|
1408
1408
|
[[package]]
|
|
1409
1409
|
name = "rustls"
|
|
1410
|
-
version = "0.23.
|
|
1410
|
+
version = "0.23.46"
|
|
1411
1411
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1412
|
-
checksum = "
|
|
1412
|
+
checksum = "48e13bd8c0e9365c43cfa5c9e8f9ad49d3c8444926c9aac819e0e4dc503c8fdf"
|
|
1413
1413
|
dependencies = [
|
|
1414
1414
|
"once_cell",
|
|
1415
1415
|
"ring",
|
|
@@ -1431,9 +1431,9 @@ dependencies = [
|
|
|
1431
1431
|
|
|
1432
1432
|
[[package]]
|
|
1433
1433
|
name = "rustls-webpki"
|
|
1434
|
-
version = "0.103.
|
|
1434
|
+
version = "0.103.15"
|
|
1435
1435
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1436
|
-
checksum = "
|
|
1436
|
+
checksum = "f3c3cf1d8b1e7d4927e2d154c3fcb02979afb9939629c62cd9048d4f07b60ac2"
|
|
1437
1437
|
dependencies = [
|
|
1438
1438
|
"ring",
|
|
1439
1439
|
"rustls-pki-types",
|
|
@@ -1448,12 +1448,11 @@ checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d"
|
|
|
1448
1448
|
|
|
1449
1449
|
[[package]]
|
|
1450
1450
|
name = "rustyline"
|
|
1451
|
-
version = "
|
|
1451
|
+
version = "19.0.0"
|
|
1452
1452
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1453
|
-
checksum = "
|
|
1453
|
+
checksum = "56e1d6bd81c2d5feafd2419138df9183c45a10a492c4e873b8b0acb8eb2b549e"
|
|
1454
1454
|
dependencies = [
|
|
1455
1455
|
"bitflags",
|
|
1456
|
-
"cfg-if",
|
|
1457
1456
|
"clipboard-win",
|
|
1458
1457
|
"home",
|
|
1459
1458
|
"libc",
|
|
@@ -1512,14 +1511,14 @@ checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348"
|
|
|
1512
1511
|
dependencies = [
|
|
1513
1512
|
"proc-macro2",
|
|
1514
1513
|
"quote",
|
|
1515
|
-
"syn 3.0.
|
|
1514
|
+
"syn 3.0.9",
|
|
1516
1515
|
]
|
|
1517
1516
|
|
|
1518
1517
|
[[package]]
|
|
1519
1518
|
name = "serde_json"
|
|
1520
|
-
version = "1.0.
|
|
1519
|
+
version = "1.0.154"
|
|
1521
1520
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1522
|
-
checksum = "
|
|
1521
|
+
checksum = "e7e9cc8b1b85264074fbcc02a88680c4096b1e47df8f739dceb03bf482f04bd6"
|
|
1523
1522
|
dependencies = [
|
|
1524
1523
|
"itoa",
|
|
1525
1524
|
"memchr",
|
|
@@ -1541,9 +1540,9 @@ dependencies = [
|
|
|
1541
1540
|
|
|
1542
1541
|
[[package]]
|
|
1543
1542
|
name = "serde_spanned"
|
|
1544
|
-
version = "1.1.
|
|
1543
|
+
version = "1.1.2"
|
|
1545
1544
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1546
|
-
checksum = "
|
|
1545
|
+
checksum = "4e7523beb55eece201a2356bee0bbca0d1ab466c14c07703b2e0ee6d42cb0c2c"
|
|
1547
1546
|
dependencies = [
|
|
1548
1547
|
"serde_core",
|
|
1549
1548
|
]
|
|
@@ -1606,7 +1605,7 @@ checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596"
|
|
|
1606
1605
|
|
|
1607
1606
|
[[package]]
|
|
1608
1607
|
name = "strands-shell"
|
|
1609
|
-
version = "0.
|
|
1608
|
+
version = "0.6.0"
|
|
1610
1609
|
dependencies = [
|
|
1611
1610
|
"async-trait",
|
|
1612
1611
|
"axum",
|
|
@@ -1640,7 +1639,7 @@ version = "0.1.0"
|
|
|
1640
1639
|
dependencies = [
|
|
1641
1640
|
"proc-macro2",
|
|
1642
1641
|
"quote",
|
|
1643
|
-
"syn 3.0.
|
|
1642
|
+
"syn 3.0.9",
|
|
1644
1643
|
]
|
|
1645
1644
|
|
|
1646
1645
|
[[package]]
|
|
@@ -1668,9 +1667,9 @@ dependencies = [
|
|
|
1668
1667
|
|
|
1669
1668
|
[[package]]
|
|
1670
1669
|
name = "syn"
|
|
1671
|
-
version = "3.0.
|
|
1670
|
+
version = "3.0.9"
|
|
1672
1671
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1673
|
-
checksum = "
|
|
1672
|
+
checksum = "d78c8dee4c7bf0e14673097256fed6142ce9d3b85a408189d07482442145823b"
|
|
1674
1673
|
dependencies = [
|
|
1675
1674
|
"proc-macro2",
|
|
1676
1675
|
"quote",
|
|
@@ -1750,9 +1749,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
|
|
|
1750
1749
|
|
|
1751
1750
|
[[package]]
|
|
1752
1751
|
name = "tokio"
|
|
1753
|
-
version = "1.
|
|
1752
|
+
version = "1.54.1"
|
|
1754
1753
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1755
|
-
checksum = "
|
|
1754
|
+
checksum = "b52fd3255258d26fac7264ab5a76b53c13367136dc011d3d6ad4f8ed070396a3"
|
|
1756
1755
|
dependencies = [
|
|
1757
1756
|
"bytes",
|
|
1758
1757
|
"libc",
|
|
@@ -1787,9 +1786,9 @@ dependencies = [
|
|
|
1787
1786
|
|
|
1788
1787
|
[[package]]
|
|
1789
1788
|
name = "toml"
|
|
1790
|
-
version = "1.1.
|
|
1789
|
+
version = "1.1.8+spec-1.1.0"
|
|
1791
1790
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1792
|
-
checksum = "
|
|
1791
|
+
checksum = "20489e00e4d8741d6be680764cc12e270655e375a20d1011e844a9c3379e678d"
|
|
1793
1792
|
dependencies = [
|
|
1794
1793
|
"indexmap",
|
|
1795
1794
|
"serde_core",
|
|
@@ -1802,27 +1801,27 @@ dependencies = [
|
|
|
1802
1801
|
|
|
1803
1802
|
[[package]]
|
|
1804
1803
|
name = "toml_datetime"
|
|
1805
|
-
version = "1.1.
|
|
1804
|
+
version = "1.1.2+spec-1.1.0"
|
|
1806
1805
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1807
|
-
checksum = "
|
|
1806
|
+
checksum = "2b86d767906c6c42421dcba507eb9d203e779497710a47782a224bb871653053"
|
|
1808
1807
|
dependencies = [
|
|
1809
1808
|
"serde_core",
|
|
1810
1809
|
]
|
|
1811
1810
|
|
|
1812
1811
|
[[package]]
|
|
1813
1812
|
name = "toml_parser"
|
|
1814
|
-
version = "1.1.
|
|
1813
|
+
version = "1.1.5+spec-1.1.0"
|
|
1815
1814
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1816
|
-
checksum = "
|
|
1815
|
+
checksum = "baa693a8032d7e1cada7d0041e96126df243179ff061456783ac7f12bda4744c"
|
|
1817
1816
|
dependencies = [
|
|
1818
1817
|
"winnow",
|
|
1819
1818
|
]
|
|
1820
1819
|
|
|
1821
1820
|
[[package]]
|
|
1822
1821
|
name = "toml_writer"
|
|
1823
|
-
version = "1.1.
|
|
1822
|
+
version = "1.1.3+spec-1.1.0"
|
|
1824
1823
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1825
|
-
checksum = "
|
|
1824
|
+
checksum = "06bdbd8cfc056b8d2e2e85f29b56a3bdbecb527cef81eb39e3e7b98af4652770"
|
|
1826
1825
|
|
|
1827
1826
|
[[package]]
|
|
1828
1827
|
name = "tower"
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name = "strands-shell"
|
|
3
3
|
# Placeholder — the real version comes from the release git tag, stamped at
|
|
4
4
|
# build time by .github/actions/stamp-version. Do not bump this by hand.
|
|
5
|
-
version = "0.
|
|
5
|
+
version = "0.6.0"
|
|
6
6
|
edition = "2024"
|
|
7
7
|
description = "A virtual shell sandbox for AI agents"
|
|
8
8
|
license = "Apache-2.0"
|
|
@@ -17,6 +17,7 @@ crate-type = ["cdylib", "rlib"]
|
|
|
17
17
|
[[bin]]
|
|
18
18
|
name = "strands-shell"
|
|
19
19
|
path = "src/main.rs"
|
|
20
|
+
required-features = ["cli"]
|
|
20
21
|
|
|
21
22
|
[[bin]]
|
|
22
23
|
name = "strands-shell-wasm"
|
|
@@ -24,7 +25,9 @@ path = "src/wasm_main.rs"
|
|
|
24
25
|
required-features = ["wasm"]
|
|
25
26
|
|
|
26
27
|
[features]
|
|
27
|
-
|
|
28
|
+
default = ["cli"]
|
|
29
|
+
cli = ["dep:clap", "dep:rustyline"]
|
|
30
|
+
python = ["pyo3", "cli"]
|
|
28
31
|
node = ["napi", "napi-derive", "napi-build"]
|
|
29
32
|
wasm = []
|
|
30
33
|
|
|
@@ -32,7 +35,7 @@ wasm = []
|
|
|
32
35
|
[dependencies]
|
|
33
36
|
async-trait = "0.1"
|
|
34
37
|
bytes = "1"
|
|
35
|
-
clap = { version = "4", features = ["derive"] }
|
|
38
|
+
clap = { version = "4", features = ["derive"], optional = true }
|
|
36
39
|
lexopt = "0.3"
|
|
37
40
|
strands-shell-macros = { path = "strands-shell-macros", version = "0.1.0" }
|
|
38
41
|
regex = "1"
|
|
@@ -49,9 +52,9 @@ jaq-json = { version = "1", features = ["serde_json"] }
|
|
|
49
52
|
inventory = "0.3"
|
|
50
53
|
napi = { version = "3", features = ["napi9", "tokio_rt"], optional = true }
|
|
51
54
|
napi-derive = { version = "3", optional = true }
|
|
52
|
-
pyo3 = { version = "0.
|
|
55
|
+
pyo3 = { version = "0.30", features = ["extension-module"], optional = true }
|
|
53
56
|
reqwest = { version = "0.12", features = ["rustls-tls"], default-features = false }
|
|
54
|
-
rustyline = "
|
|
57
|
+
rustyline = { version = "19", optional = true }
|
|
55
58
|
tokio = { version = "1", features = ["rt", "macros", "sync", "io-util", "io-std", "fs", "time", "process"] }
|
|
56
59
|
|
|
57
60
|
# ----- WASM dependencies -----
|
|
@@ -70,6 +73,10 @@ members = ["strands-shell-macros"]
|
|
|
70
73
|
[dev-dependencies]
|
|
71
74
|
axum = "0.8"
|
|
72
75
|
|
|
76
|
+
[[test]]
|
|
77
|
+
name = "mcp_integration"
|
|
78
|
+
required-features = ["cli"]
|
|
79
|
+
|
|
73
80
|
# napi-build stays on 2.x — the build-script helper is versioned
|
|
74
81
|
# independently of the napi/napi-derive runtime crates and has no 3.x release
|
|
75
82
|
# (latest is 2.3.2, which is what pairs with napi 3.x).
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@strands-agents/shell",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"description": "Strands Shell — a virtual shell sandbox for AI agents (Node.js bindings)",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -40,6 +40,6 @@
|
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
42
|
"@napi-rs/cli": "^3.7.2",
|
|
43
|
-
"typescript": "^
|
|
43
|
+
"typescript": "^7.0.2"
|
|
44
44
|
}
|
|
45
45
|
}
|
|
@@ -6,7 +6,7 @@ build-backend = "maturin"
|
|
|
6
6
|
name = "strands-shell"
|
|
7
7
|
# Placeholder — the real version comes from the release git tag, stamped at
|
|
8
8
|
# build time by .github/actions/stamp-version. Do not bump this by hand.
|
|
9
|
-
version = "0.
|
|
9
|
+
version = "0.6.0"
|
|
10
10
|
description = "A virtual shell for AI agents"
|
|
11
11
|
readme = "README.md"
|
|
12
12
|
requires-python = ">=3.10"
|
|
@@ -43,12 +43,25 @@ pub fn builtin_unalias<'a>(
|
|
|
43
43
|
args: &'a [String],
|
|
44
44
|
) -> Pin<Box<dyn Future<Output = CommandResult> + 'a>> {
|
|
45
45
|
Box::pin(async move {
|
|
46
|
-
|
|
46
|
+
let mut names = args;
|
|
47
|
+
let mut all = false;
|
|
48
|
+
while let Some(first) = names.first() {
|
|
49
|
+
match first.as_str() {
|
|
50
|
+
"-a" => all = true,
|
|
51
|
+
"--" => {
|
|
52
|
+
names = &names[1..];
|
|
53
|
+
break;
|
|
54
|
+
}
|
|
55
|
+
_ => break,
|
|
56
|
+
}
|
|
57
|
+
names = &names[1..];
|
|
58
|
+
}
|
|
59
|
+
if all {
|
|
47
60
|
proc.clear_aliases();
|
|
48
61
|
return Ok(0);
|
|
49
62
|
}
|
|
50
63
|
let mut ret = 0;
|
|
51
|
-
for arg in
|
|
64
|
+
for arg in names {
|
|
52
65
|
if !proc.unset_alias(arg) {
|
|
53
66
|
proc.err_msg(&format!("strands-shell: unalias: {}: not found", arg));
|
|
54
67
|
ret = 1;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
use std::future::Future;
|
|
2
|
+
use std::pin::Pin;
|
|
3
|
+
|
|
4
|
+
use crate::commands::CommandResult;
|
|
5
|
+
use crate::os::{Kernel, Process};
|
|
6
|
+
|
|
7
|
+
/// Run the named builtin, bypassing any shell function of the same name.
|
|
8
|
+
pub fn builtin_builtin<'a>(
|
|
9
|
+
os: &'a dyn Kernel,
|
|
10
|
+
proc: &'a mut Process,
|
|
11
|
+
args: &'a [String],
|
|
12
|
+
) -> Pin<Box<dyn Future<Output = CommandResult> + 'a>> {
|
|
13
|
+
Box::pin(async move {
|
|
14
|
+
let Some(name) = args.first() else {
|
|
15
|
+
return Ok(0);
|
|
16
|
+
};
|
|
17
|
+
match super::lookup(name) {
|
|
18
|
+
Some(f) => f(os, proc, &args[1..]).await,
|
|
19
|
+
None => {
|
|
20
|
+
proc.err_msg(&format!(
|
|
21
|
+
"strands-shell: builtin: {name}: not a shell builtin"
|
|
22
|
+
));
|
|
23
|
+
Ok(1)
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
})
|
|
27
|
+
}
|
|
@@ -328,7 +328,7 @@ pub async fn repl_loop(
|
|
|
328
328
|
0
|
|
329
329
|
}
|
|
330
330
|
|
|
331
|
-
#[cfg(not(target_arch = "wasm32"))]
|
|
331
|
+
#[cfg(all(not(target_arch = "wasm32"), feature = "cli"))]
|
|
332
332
|
async fn run_repl(_os: &dyn Kernel, proc: &mut Process) -> CommandResult {
|
|
333
333
|
let stdout_buf: Rc<RefCell<Vec<u8>>> = Rc::new(RefCell::new(Vec::new()));
|
|
334
334
|
let stderr_buf: Rc<RefCell<Vec<u8>>> = Rc::new(RefCell::new(Vec::new()));
|
|
@@ -361,14 +361,14 @@ async fn run_repl(_os: &dyn Kernel, proc: &mut Process) -> CommandResult {
|
|
|
361
361
|
Ok(code)
|
|
362
362
|
}
|
|
363
363
|
|
|
364
|
-
#[cfg(target_arch = "wasm32")]
|
|
364
|
+
#[cfg(any(target_arch = "wasm32", not(feature = "cli")))]
|
|
365
365
|
async fn run_repl(_os: &dyn Kernel, proc: &mut Process) -> CommandResult {
|
|
366
366
|
let stdout_buf: Rc<RefCell<Vec<u8>>> = Rc::new(RefCell::new(Vec::new()));
|
|
367
367
|
let stderr_buf: Rc<RefCell<Vec<u8>>> = Rc::new(RefCell::new(Vec::new()));
|
|
368
368
|
|
|
369
369
|
let lua = setup_lua_vm(proc, &[], "", &stdout_buf, &stderr_buf)?;
|
|
370
370
|
|
|
371
|
-
// Simple line-based REPL without rustyline (
|
|
371
|
+
// Simple line-based REPL without rustyline (WASM, or a build without the `cli` feature)
|
|
372
372
|
let mut read_line = |prompt: &str| -> Option<String> {
|
|
373
373
|
use std::io::Write;
|
|
374
374
|
let _ = std::io::stdout().write_all(prompt.as_bytes());
|