@steerable/agent-shell-tauri 0.6.53 → 0.6.55
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 +4 -2
- package/package.json +1 -1
- package/src/host.rs +19 -0
package/README.md
CHANGED
|
@@ -17,8 +17,10 @@ Packaged products place the complete portable Python sidecar at
|
|
|
17
17
|
`python-runtime/<platform>` and the verified egress proxy at
|
|
18
18
|
`engine/steerable-egress-proxy`. The Python runtime contains the native Rust
|
|
19
19
|
CoreLoop engine. An optional `engine/python-runner` is only a child interpreter
|
|
20
|
-
for `run_code`; it never hosts the sidecar. Products may set `pythonRunner` to `
|
|
21
|
-
in `product.json`.
|
|
20
|
+
for `run_code`; it never hosts the sidecar. Products may set `pythonRunner` to `sidecar`, `bundle`,
|
|
21
|
+
or `download` in `product.json`. Sidecar mode runs `run_code` with the packaged sidecar interpreter
|
|
22
|
+
instead of a second CPython; the child stays confined by the `run_code` sandbox, but it can import the
|
|
23
|
+
sidecar's installed packages. Download mode starts the product without an interpreter and
|
|
22
24
|
lets the settings UI install one in the background. The default
|
|
23
25
|
python-build-standalone archive is checked against the packaged SHA-256; users
|
|
24
26
|
may instead choose an unverified custom archive URL or an existing Python 3.9+
|
package/package.json
CHANGED
package/src/host.rs
CHANGED
|
@@ -347,6 +347,25 @@ impl HostPaths {
|
|
|
347
347
|
let Some(python_runner_mode) = product.python_runner.as_deref() else {
|
|
348
348
|
return Ok(None);
|
|
349
349
|
};
|
|
350
|
+
if python_runner_mode == "sidecar" {
|
|
351
|
+
let runner = self
|
|
352
|
+
.sidecar_python
|
|
353
|
+
.clone()
|
|
354
|
+
.ok_or_else(|| "packaged Python sidecar runtime is missing".to_string())?;
|
|
355
|
+
python_runner::configure(
|
|
356
|
+
app,
|
|
357
|
+
RunnerSetup {
|
|
358
|
+
user_data: user_data.to_path_buf(),
|
|
359
|
+
node: self.node.clone(),
|
|
360
|
+
engine_dir: self.engine_dir.clone(),
|
|
361
|
+
lock: None,
|
|
362
|
+
target_name: platform_tag().into(),
|
|
363
|
+
supported: false,
|
|
364
|
+
active_runner: Some(runner.clone()),
|
|
365
|
+
},
|
|
366
|
+
);
|
|
367
|
+
return Ok(Some(runner));
|
|
368
|
+
}
|
|
350
369
|
let lock: PythonRunnerLock = serde_json::from_str(
|
|
351
370
|
&std::fs::read_to_string(engine_dir.join("python-runner-lock.json"))
|
|
352
371
|
.map_err(|error| error.to_string())?,
|