@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.
Files changed (3) hide show
  1. package/README.md +4 -2
  2. package/package.json +1 -1
  3. 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 `bundle` or `download`
21
- in `product.json`. Download mode starts the product without an interpreter and
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@steerable/agent-shell-tauri",
3
- "version": "0.6.53",
3
+ "version": "0.6.55",
4
4
  "description": "Reusable Tauri Rust host source for @steerable/agent-shell",
5
5
  "license": "Apache-2.0",
6
6
  "homepage": "https://steerableframework.com/",
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())?,