AGENTS.md
+18 −2
https://raw.githubusercontent.com/partcad/partcad/HEAD/AGENTS.md
− what `--fast-only` leaves an assembly out for (`partcad.fast_only`).− `remote_sandbox.execute`, so one implementation of provisioning and forwarding, not two. You can exercise+ `framing` is also how a file crosses: as raw bytes after the message (an *attachment*) to a client that says it+ reads them, and as base64 to any other, under the same key -- so a reader takes both (`framing.as_bytes`). The+ editor extension's copy is `ide/vscode/src/common/framing.ts`.+ what `--fast-only` leaves an assembly out for (`partcad.fast_only`). The daemon opens a window of its own,+ with a `reason` and nobody's declaration, around creating a sandbox and every install into one+ (`runtime_python.INSTALL_WINDOW_SECONDS`): `pip` is silent while it downloads, and without it a slow network+ ended in "the service stopped responding" before `pip` could say what was wrong.+ `part_kinds` is the same kind of rule for `pc add part`: the types a part is added from a file as. The CLI+ refuses any other before it starts a daemon, and the daemon's `add.object` refuses it too, because the editor+ extension and an agent's `execute` reach that method without the CLI. Only PartCAD's own factory types are+ listed there; the native formats are its `//builtin/import` `partTypes`, which a client reads from+ `partcad_client.object_types`, and a test holds the two halves together.+ `remote_sandbox.execute`, so one implementation of provisioning and forwarding, not two. What travels is+ `partcad_utils.container_files`'s to decide, for every caller: bytes as bytes (the service's frame dialect, not+ base64 in JSON), and a directory by content -- the container keeps what it has been sent in a bounded store+ and is asked which digests it lacks, so the wrappers go once per container rather than once per command. The+ JSON dialect stays in the service for one reader: a `partcad-service-remote-docker` is installed on its own+ machine, so a client asks its `GET /` which it speaks, and an older client's JSON is forwarded as JSON. You can exercise