nodes

Copy a file/dir from this node to another node

Copy a file or directory from one of your nodes to another - the one-verb node-to-node move (docs: no mesh or shared network required; it works between any two RUNNING nodes of your workspace, across hosts and regions). The bytes ride one storage hop, exercised entirely by the platform's hosts: the source side is an export (a directory tars its contents; the artifact receipt - id, size, sha256 - shows on the mission page, ~30 days), the destination side an import - the bytes appear at dst_path owned by dev, and no URL or credential ever enters either container, nothing rides through this chat. A FILE lands at dst_path exactly (parents created; a trailing "/" means "into this directory under the source's name"). A DIRECTORY's CONTENTS land extracted under dst_path, merged file-by-file over what's already there - a re-copy after edits overwrites per file instead of failing on an existing tree. The call waits up to 5 minutes for the export leg (returning artifact_id, size_bytes, sha256; past that it refuses with error code TIMEOUT and the artifact id, and the export can still land. A client whose own call deadline is shorter gives up first; list_artifacts(src_node) then shows the export) and starts the import leg: poll get_import(dst_node, import_id) until "complete". Both nodes must be RUNNING. A stopped end is a refusal and never a wake. A run_command wakes a node, and the wake bills. A same-node copy is refused. Use run_command with a plain cp there, because the file never leaves the disk. Copy time is node time on both ends, and the import leg holds the destination out of grace while it streams. Bounded by the artifact export rate and size caps and the import caps (refusals name the numbers). Every call is recorded to your org's audit log (both nodes, both paths, the artifact id - never bytes).

post/preview/nodes/{name}/copies

Request

  • Base URL: https://autoresearch.sfcompute.com
  • URL: https://autoresearch.sfcompute.com/preview/nodes/{name}/copies
  • Auth: HTTP bearer

Path parameters

namestring required

Source node name (from list_nodes).

Query parameters

workspacestring

Act in this workspace (its slug). Omitted: the token's bound workspace, then the organization's default. Never ambient - there is no switch-workspace mutation on this door.

Request body

dst_nodestring required

Destination node name (must differ from src_node).

dst_pathstring required

Where it lands on dst_node, absolute or ~-relative. Copying a FILE: this is the destination file path (parents created; a trailing "/" means "into this directory under the source's name", the cp convention). Copying a DIRECTORY: this is the destination directory; the source directory's CONTENTS land under it.

missionstring nullable

Attribute the copy (and its artifact receipt) to a mission (from open_mission). Omit and it joins the source node's own mission, which is usually what you want.

src_pathstring required

The path to copy FROM, absolute or -relative (e.g. "/prep/app"). A regular file or a directory.

Response

The capability's JSON result.

objectstring

The resource type, when the result is one resource.

Changes

No recorded changes to this operation across all 1 revision of this API.