Host-side file reading, search, listing and anchored editing.
cat and grep return line/hash addresses consumed by patch. One patch
validates every edit and the resulting syntax before replacing one file.
list-directories supplies the Python ls shim. Standard Python owns file
creation, copying, moving and deletion.
Paths are confined to the session's allowed roots. Host operations also
consult extension-owned :fs/access gates.
Host-side file reading, search, listing and anchored editing. `cat` and `grep` return line/hash addresses consumed by `patch`. One patch validates every edit and the resulting syntax before replacing one file. `list-directories` supplies the Python `ls` shim. Standard Python owns file creation, copying, moving and deletion. Paths are confined to the session's allowed roots. Host operations also consult extension-owned `:fs/access` gates.
Default editing symbol set for docs/tests. A delay so the language/env
scan it triggers runs on first deref (tests, docs) and NEVER at namespace
load — a load-time call reaches git/run-git's future, which starts the
agent thread-pool and native-image refuses that started thread in the image
heap. Deref with @editing-symbols.
Default editing symbol set for docs/tests. A `delay` so the language/env scan it triggers runs on first deref (tests, docs) and NEVER at namespace load — a load-time call reaches `git/run-git`'s `future`, which starts the agent thread-pool and native-image refuses that started thread in the image heap. Deref with `@editing-symbols`.
(list-directories env args)List directories for the sandbox's ls helper. args is the string-keyed
request — {"paths" [dir | {"path" dir, …}, …], "depth" n, "is_hidden" b},
an entry's own options overriding the shared ones — and the answer is one row
per requested directory IN REQUEST ORDER. Optional pattern is a basename glob;
nil disables it. Matching descendants retain their ancestors.
Listing a directory is not a wire round trip: it is a call inside the Python
block the model was already running, so it costs no tool result and no native
tool slot. What it may never lose by leaving the tool layer is the boundary,
so the :fs/access gate is asked here exactly as the native readers ask it —
an extension that hides a tree hides it from the listing too.
Failures throw ex-info with a stable :type. The observed listing symbol
applies the shared filesystem-tool error hook and surfaces a canonical,
catchable host-tool failure.
List directories for the sandbox's `ls` helper. `args` is the string-keyed
request — `{"paths" [dir | {"path" dir, …}, …], "depth" n, "is_hidden" b}`,
an entry's own options overriding the shared ones — and the answer is one row
per requested directory IN REQUEST ORDER. Optional `pattern` is a basename glob;
nil disables it. Matching descendants retain their ancestors.
Listing a directory is not a wire round trip: it is a call inside the Python
block the model was already running, so it costs no tool result and no native
tool slot. What it may never lose by leaving the tool layer is the boundary,
so the `:fs/access` gate is asked here exactly as the native readers ask it —
an extension that hides a tree hides it from the listing too.
Failures throw `ex-info` with a stable `:type`. The observed listing symbol
applies the shared filesystem-tool error hook and surfaces a canonical,
catchable host-tool failure.(tool-failure-on-error op kind)Build an observed filesystem symbol's error hook with target metadata. The wrapper supplies and validates the symbol's identity and classification.
Build an observed filesystem symbol's error hook with target metadata. The wrapper supplies and validates the symbol's identity and classification.
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |