Tool · dsh · DeepSeek
grep
What matters here3 invariants · all hold
- Regex dialectRust regexsrclike 8 of 11
- Announces truncationinvariantholdssrcall 18 hold
- Agrees with readinvariantholdssrc6 of 7 hold
- Gitignoreno, deliberatelysrclike 2 of 18
The facts the registry marks decision-changing, with how the other implementations answered. An invariant may be shown as pass/fail; a design choice never is, however unusual it looks.
Description, as the model sees it
Not recorded yet — the verbatim description has not been captured for this tool.
Registered schema
Not recorded yet — the schema as registered has not been captured for this tool.
Observed · Code search
compare all →| Fact | This tool | Across all implementations |
|---|---|---|
| Shape | 3 of 3 recorded | |
| What it searches | by-contentsrc | like 9 of 20by-name ×9 · both ×1 +1 |
| Tools per harness | two toolssrc | like 18 of 20no search tool ×1 · one tool ×1 |
| Search engine | packaged ripgrep, via --jsonsrc | only one of 19bundled ripgrep ×6 · ripgrep ×2 +101 unverified |
| Query language | 1 of 2 recorded | |
| Regex dialect | Rust regexsrc | like 8 of 11varies by backend: Rust regex, git grep, POSIX, or JS RegExp ×1 · varies by backend: Rust regex, POSIX, or Python re ×1 +1 |
| Case sensitivity | ? | 6 others recordedsensitive, model can ask ×3 · always insensitive, not configurable ×2 +113 unverified |
| Result shape | 4 of 4 recorded | |
| Line numbers in results | Line N:src Grouped by file. Parsed from rg --json specifically so that a path or a matched line containing a colon cannot be mis-split. | like 3 of 11path:N: ×2 · line numbers, or paths only, or counts ×1 +5 |
| Result cap | 250 matches inline, rest spilled to a filesrc GREP_MAX_MATCHES = 250; each previewed line is also capped at 2000 bytes. | only one of 20100 files ×4 · 100 matches ×3 +10 |
| Announces truncationinvariant | holdssrc "Found K of N matches" followed by the locator of a file holding the complete result — the only implementation surveyed that hands back the part it did not show. | all 18 hold1 unverified |
| How "no matches" reads | sentencesrc "No matches found". | like 16 of 17empty stdout ×13 unverified |
| Agreement with read | 1 of 2 recorded | |
| Search line N is read line Ninvariant | holdssrc Both are 1-indexed. | 6 of 7 holdfalse ×12 unverified |
| Search counts as having read | ? | 2 others recordedno read tracking at all ×1 · yes — matched files are recorded as partial reads ×19 unverified |
| Scope | 3 of 3 recorded | |
| Respects .gitignore | no, deliberatelysrc --no-ignore --hidden are fixed in the argv; only VCS metadata directories are excluded. | like 2 of 18yes ×8 · yes, plus .qwenignore ×2 +52 unverified |
| Binary content never enters contextinvariant | holdssrc A match whose line is not valid UTF-8 is replaced with the placeholder "(line is not valid UTF-8)" rather than passed through. | 2 of 3 holdfalse ×18 unverified |
| Ordering | 0 of 1 recorded | |
| Result ordering | ? | 16 others recordedmodification time, newest first ×5 · ripgrep traversal order ×5 +64 unverified |
Other tools in dsh
names verbatim, as registeredask_user_questionbashShellbash-persistentShellcordis_runcreate_goalcredentialseditexit_plan_modeget_goalglobCode searchinterrupt_agentjob_killjob_outputlsppwshShellralphreadReadread_imagereportrun_codesend_messagespawn_teammatestr_replace_editorsubagentteam_task_create/get/list/updateterminal_open/read/sendShelltodo_writeupdate_goalweb_fetchweb_searchWeb searchworkflowwrite