Add model-native workspace file operations
Remove shell-escaped file mutation from the stable workspace flow by adding explicit file and patch tools across the CLI, SDK, and MCP surfaces. This adds workspace file list/read/write plus unified text patch application, backed by new guest and manager file primitives that stay scoped to started workspaces and /workspace only. Patch application is preflighted on the host, file writes stay text-only and bounded, and the existing diff/export/reset semantics remain intact. The milestone also updates the 3.2.0 roadmap, public contract, docs, examples, and versioning, and includes focused coverage for the new helper module and dispatch paths. Validation: - uv lock - UV_CACHE_DIR=.uv-cache make check - UV_CACHE_DIR=.uv-cache make dist-check - real guest-backed smoke for workspace file read, patch apply, exec, export, and delete
This commit is contained in:
parent
dbb71a3174
commit
ab02ae46c7
27 changed files with 3068 additions and 17 deletions
|
|
@ -31,6 +31,27 @@ def main() -> None:
|
|||
workspace_id = str(created["workspace_id"])
|
||||
try:
|
||||
pyro.push_workspace_sync(workspace_id, sync_dir)
|
||||
files = pyro.list_workspace_files(workspace_id, path="/workspace", recursive=True)
|
||||
print(f"workspace_entries={len(files['entries'])}")
|
||||
note = pyro.read_workspace_file(workspace_id, "note.txt")
|
||||
print(note["content"], end="")
|
||||
written = pyro.write_workspace_file(
|
||||
workspace_id,
|
||||
"src/app.py",
|
||||
text="print('hello from file ops')\n",
|
||||
)
|
||||
print(f"written_bytes={written['bytes_written']}")
|
||||
patched = pyro.apply_workspace_patch(
|
||||
workspace_id,
|
||||
patch=(
|
||||
"--- a/note.txt\n"
|
||||
"+++ b/note.txt\n"
|
||||
"@@ -1 +1 @@\n"
|
||||
"-hello from sync\n"
|
||||
"+hello from patch\n"
|
||||
),
|
||||
)
|
||||
print(f"patch_changed={patched['changed']}")
|
||||
result = pyro.exec_workspace(workspace_id, command="cat note.txt")
|
||||
print(result["stdout"], end="")
|
||||
secret_result = pyro.exec_workspace(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue