1bcoder 0.1.11__tar.gz → 0.1.12__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/1bcoder.egg-info/PKG-INFO +38 -13
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/1bcoder.egg-info/SOURCES.txt +2 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/PKG-INFO +38 -13
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/README.md +37 -12
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/aliases.txt +2 -0
- 1bcoder-0.1.12/_bcoder_data/flows/deepagent.py +329 -0
- 1bcoder-0.1.12/_bcoder_data/flows/visual_search.py +76 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/chat.py +719 -49
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/pyproject.toml +1 -1
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/1bcoder.egg-info/dependency_links.txt +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/1bcoder.egg-info/entry_points.txt +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/1bcoder.egg-info/requires.txt +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/1bcoder.egg-info/top_level.txt +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/LICENSE +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/__init__.py +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/agents/advance.txt +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/agents/ask.txt +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/agents/compact.txt +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/agents/concepts.txt +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/agents/fill.txt +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/agents/planning.txt +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/agents/scan.txt +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/agents/sqlite.txt +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/agents/websearch.txt +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/doc/FLOWS.md +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/doc/MCP.md +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/doc/OLLAMA_SERVER_PARAM.md +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/doc/PARAM.md +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/doc/PROC.md +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/doc/TRANSLATE.md +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/flows/__pycache__/commit_message.cpython-311.pyc +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/flows/commit_message.py +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/flows/grounding.py +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/flows/py_error_trace.py +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/flows/simargl_files.py +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/flows/webask.py +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/map.txt +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/proc/action-required.py +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/proc/add-save.py +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/proc/assist.py +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/proc/collect-files.py +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/proc/ctx_cut.py +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/proc/extract-code.py +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/proc/extract-files.py +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/proc/extract-list.py +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/proc/grounding-check.py +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/proc/md.py +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/proc/mdx.py +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/proc/pattern-gate.py +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/proc/regexp-extract.py +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/proc/rude_words.py +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/proc/scan-save.py +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/proc/secret_check.py +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/proc/sql_readonly_guard.py +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/proc/tempctx-cut.py +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/profiles.txt +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/prompts/analysis.txt +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/prompts/sumarise.txt +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/prompts.txt +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/scripts/AddFunction.txt +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/scripts/AskProject.txt +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/scripts/CheckRequirements.txt +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/scripts/DockerMySQL.txt +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/scripts/DockerNginx.txt +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/scripts/DockerPython.txt +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/scripts/DockerStack.txt +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/scripts/DuckDuckGoInstant.txt +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/scripts/EnvTemplate.txt +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/scripts/Explain.txt +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/scripts/ExploreProjectStructure.txt +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/scripts/GitIgnorePython.txt +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/scripts/MySQLDump.txt +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/scripts/NewScript.txt +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/scripts/PipFreeze.txt +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/scripts/PyPI.txt +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/scripts/Refactor.txt +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/scripts/RunAndFix.txt +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/scripts/SQLiteSchema.txt +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/scripts/Translate.txt +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/scripts/WikiPage.txt +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/scripts/WikiSearch.txt +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/scripts/auto-bkup.txt +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/scripts/edit-control.txt +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/scripts/parallel_call.txt +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/scripts/personal/content/create-regular-content.txt +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/scripts/personal/content/plan.txt +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/scripts/personal/test/collect-data-from-test-environment.txt +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/scripts/plan.txt +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/scripts/remote/create-content-on-remote-server.txt +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/scripts/set_ctx.txt +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/scripts/simargl-cli_index_files.txt +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/scripts/simargl-cli_index_units.txt +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/scripts/simargl-cli_search.txt +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/scripts/team-map-worker.txt +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/scripts/team-search-worker.txt +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/scripts/team-summarize.txt +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/scripts/team-tree-worker.txt +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/scripts/test.txt +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/_bcoder_data/teams/code-analysis.yaml +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/map_index.py +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/map_query.py +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/setup.cfg +0 -0
- {1bcoder-0.1.11 → 1bcoder-0.1.12}/tests/test_utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: 1bcoder
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.12
|
|
4
4
|
Summary: AI coding assistant agent for 1B–7B local models (Ollama, LMStudio, llama.cpp). Terminal REPL with file editing, project map, agents, scripts, and parallel multi-model queries.
|
|
5
5
|
Project-URL: Homepage, https://github.com/szholobetsky/1bcoder
|
|
6
6
|
Project-URL: Repository, https://github.com/szholobetsky/1bcoder
|
|
@@ -44,8 +44,8 @@ This is not a niche concern. It is the default requirement for any serious profe
|
|
|
44
44
|
| Size | Reliable in 1bcoder |
|
|
45
45
|
|---|---|
|
|
46
46
|
| 0.5b | Explain a 10–20 line function; identify a known technology from a file name; write a standard construct in an unfamiliar language |
|
|
47
|
-
| 1b | Explain a full module; recognize a tech stack from a directory tree; answer questions about error messages and short log excerpts |
|
|
48
|
-
| 1b thinking | Explain whole-file logic; identify design patterns across a module
|
|
47
|
+
| 1b | Explain a full module; recognize a tech stack from a directory tree; answer questions about error messages and short log excerpts; edit single lines reliably with `/fim` |
|
|
48
|
+
| 1b thinking | Explain whole-file logic; identify design patterns across a module; reliable for targeted edits with `/fim` |
|
|
49
49
|
| 2b–4b | Edit files under instruction; write new functions; follow SEARCH/REPLACE format consistently |
|
|
50
50
|
|
|
51
51
|
Every tier is useful. Each requires a different approach to context preparation. 1bcoder provides the tools to do that preparation with surgical precision.
|
|
@@ -126,7 +126,8 @@ Tasks that require the model to decide *what to look at* — refactoring across
|
|
|
126
126
|
## Features
|
|
127
127
|
|
|
128
128
|
- Plain terminal REPL — works in any shell, IDE terminal, or SSH session; status line before each prompt shows active model, disk size, quantization, native context limit, and context fill %
|
|
129
|
-
- **`/read`** injects files without line numbers (clean text, ideal for `notes.txt` and structured data); **`/readln`** injects with line numbers (use before `/fix
|
|
129
|
+
- **`/read`** injects files without line numbers (clean text, ideal for `notes.txt` and structured data); **`/readln`** injects with line numbers (use before `/fim`, `/fix`, or `/patch` when line references matter); both accept comma- or space-separated file lists — use directly with `{{find_files}}` or `{{map_files}}` captured from `/find` or `/map find`
|
|
130
|
+
- **`/view <image> [prompt]`** — inject images into context for multimodal models (`qwen2-vl`, `llava`, `moondream`); trailing non-image words become the prompt; works with `@` file picker; supports png jpg jpeg gif webp bmp
|
|
130
131
|
- **Command autocorrection** — typos in command names, file paths, and keywords are detected and fixed automatically before execution, for both human input and agent actions
|
|
131
132
|
- **`/tree [path]`** — display directory tree of the whole project or any subtree; ask to inject into context (or pass `ctx` to skip the prompt)
|
|
132
133
|
- **`/find <pattern>`** — search filenames and file content with regex; supports `-f`/`-c`/`-i`/`--ext` flags; highlights matches, asks to inject results into context; sets `{{find_files}}` after every search; **`/find <terms> -r`** ranked BM25 mode returns top-10 files by relevance; hidden directories (`.git`, `.venv`, etc.) excluded automatically
|
|
@@ -298,7 +299,7 @@ Examples:
|
|
|
298
299
|
> /map index .
|
|
299
300
|
> /read main.py 1-20
|
|
300
301
|
> what does the divide() function do?
|
|
301
|
-
> /
|
|
302
|
+
> /fim main.py 5 wrong operator
|
|
302
303
|
```
|
|
303
304
|
|
|
304
305
|
---
|
|
@@ -421,7 +422,8 @@ Then configure `/translate` to use it:
|
|
|
421
422
|
| Command | Description |
|
|
422
423
|
|---|---|
|
|
423
424
|
| `/read <file> [file2 ...] [start-end]` | Inject file(s) into AI context **without line numbers** (clean text) |
|
|
424
|
-
| `/readln <file> [file2 ...] [start-end]` | Same as `/read` but **with line numbers** — use before `/fix
|
|
425
|
+
| `/readln <file> [file2 ...] [start-end]` | Same as `/read` but **with line numbers** — use before `/fim`, `/fix`, or `/patch` |
|
|
426
|
+
| `/view <image> [image2 ...] [prompt]` | Inject image(s) for multimodal models — trailing non-image words become the prompt |
|
|
425
427
|
| `/insert <file> <line>` | Insert last AI reply before line N (full text) |
|
|
426
428
|
| `/insert <file> <line> code` | Insert extracted code block from last AI reply before line N |
|
|
427
429
|
| `/insert <file> <line> <text>` | Insert literal text directly, preserving indentation (e.g. `/insert main.py 14 x = 1`) |
|
|
@@ -436,6 +438,8 @@ Then configure `/translate` to use it:
|
|
|
436
438
|
|
|
437
439
|
`/save` modes: `overwrite` (default), `append-above` / `-aa`, `append-below` / `-ab`, `add-suffix`, `code`
|
|
438
440
|
|
|
441
|
+
Use `@/` to pick the target directory interactively: `/save @/result.txt code` shows a numbered directory tree, you pick a number, the token becomes `chosen_dir/result.txt`. Multiple `@/name` tokens in one command share a single pick.
|
|
442
|
+
|
|
439
443
|
```
|
|
440
444
|
/diff main.py main.py.bkup # colored diff, asks to inject into context
|
|
441
445
|
/diff v1/calc.py v2/calc.py -y # auto-inject without confirmation
|
|
@@ -988,7 +992,7 @@ Lines starting with `[v]` are already done and skipped. Lines starting with `#`
|
|
|
988
992
|
| `/script apply [file] [key=value ...]` | Run steps one by one (Y/n/q per step) |
|
|
989
993
|
| `/script apply -y [file] [key=value ...]` | Run all pending steps automatically |
|
|
990
994
|
|
|
991
|
-
**`/script create ctx`** captures all work commands typed this session (`/read`, `/edit`, `/fix`, `/patch`, `/run`, `/save`, `/bkup`, `/map`, `/model`, `/host`) into a ready-to-run plan:
|
|
995
|
+
**`/script create ctx`** captures all work commands typed this session (`/read`, `/edit`, `/fim`, `/fix`, `/patch`, `/run`, `/save`, `/bkup`, `/map`, `/model`, `/host`) into a ready-to-run plan:
|
|
992
996
|
|
|
993
997
|
```
|
|
994
998
|
> /host http://192.168.1.50:11434
|
|
@@ -1079,12 +1083,14 @@ Any `{{key}}` found but not yet set is registered as NaN — `/script reapply` w
|
|
|
1079
1083
|
|
|
1080
1084
|
---
|
|
1081
1085
|
|
|
1082
|
-
### Output capture (`->`,
|
|
1086
|
+
### Output capture (`->`, `$`, `~` and `@`)
|
|
1083
1087
|
|
|
1084
|
-
Any command — LLM reply, tool output, or proc result — can be captured into a session variable using the `->` suffix.
|
|
1088
|
+
Any command — LLM reply, tool output, or proc result — can be captured into a session variable using the `->` suffix. Three special tokens expand anywhere in a command or message:
|
|
1085
1089
|
|
|
1086
1090
|
- `$` — last captured output (last AI reply or tool result)
|
|
1087
1091
|
- `~` — last user input (last message or command you typed)
|
|
1092
|
+
- `@[dir]` — file picker: shows a numbered tree rooted at `dir` (default: `.`); type a number to select a file; the token is replaced by the chosen path
|
|
1093
|
+
- `@/[suffix]` — directory picker: shows a numbered tree of directories; type a number; `@/suffix` is replaced by `chosen_dir/suffix`; multiple `@/suffix` tokens in one command share a single pick
|
|
1088
1094
|
|
|
1089
1095
|
```
|
|
1090
1096
|
/map keyword extract auth.py -> keywords # capture tool output into variable
|
|
@@ -1109,6 +1115,23 @@ summarize this for me -> myplan # capture LLM reply
|
|
|
1109
1115
|
поясни: $ # ask main model to explain its own reply
|
|
1110
1116
|
```
|
|
1111
1117
|
|
|
1118
|
+
**`@` — file picker (numbered tree):**
|
|
1119
|
+
```
|
|
1120
|
+
/readln @ # pick any file from current directory
|
|
1121
|
+
/readln @src # pick from src/ subtree
|
|
1122
|
+
/fim @src fix the null check # pick file, then run /fim on it
|
|
1123
|
+
```
|
|
1124
|
+
Type `@` (optionally followed by a path, no space), press Enter — a numbered tree appears; type the number to substitute the path.
|
|
1125
|
+
|
|
1126
|
+
**`@/` — directory picker:**
|
|
1127
|
+
```
|
|
1128
|
+
/save @/result.txt code # pick a directory, save to chosen_dir/result.txt
|
|
1129
|
+
/save @/result1.txt @/result2.txt code # pick once, both tokens get the same prefix
|
|
1130
|
+
```
|
|
1131
|
+
Type `@/suffix` — a numbered tree of directories appears; pick one; every `@/suffix` in the command is replaced by `chosen_dir/suffix`. Use this when you want to save output into a deeply nested directory without typing the full path.
|
|
1132
|
+
|
|
1133
|
+
`@` and `@/` work wherever `$` and `~` work: in any command or message.
|
|
1134
|
+
|
|
1112
1135
|
`->` stores the full text (including ANSI-stripped terminal output) and also updates `$` for immediate reuse. Variables captured with `->` appear in `/var get` like any other session variable.
|
|
1113
1136
|
|
|
1114
1137
|
---
|
|
@@ -1362,7 +1385,7 @@ Use `list:` when you want to explore a single question from multiple angles simu
|
|
|
1362
1385
|
| `ctx: last` | Last message only (default) |
|
|
1363
1386
|
| `ctx: none` | No context — prompt only |
|
|
1364
1387
|
|
|
1365
|
-
|
|
1388
|
+
**`$`, `~` and `@` expansion** — `$` expands to the last AI reply, `~` to your last input, `@` opens a file picker:
|
|
1366
1389
|
|
|
1367
1390
|
```
|
|
1368
1391
|
/parallel $ profile: short # ask short model to summarise last reply
|
|
@@ -1805,7 +1828,7 @@ For human input, the corrected command is shown with `[fix?]` and you are asked
|
|
|
1805
1828
|
|
|
1806
1829
|
## Part of the SIMARGL toolkit
|
|
1807
1830
|
|
|
1808
|
-
1bcoder is one of
|
|
1831
|
+
1bcoder is one of five tools that together form an **intellectual development support system**:
|
|
1809
1832
|
|
|
1810
1833
|
| Tool | Role |
|
|
1811
1834
|
|---|---|
|
|
@@ -1813,16 +1836,18 @@ For human input, the corrected command is shown with `[fix?]` and you are asked
|
|
|
1813
1836
|
| **[svitovyd](https://github.com/szholobetsky/svitovyd)** | Project map — scans any codebase and produces a structural map of definitions and cross-file dependencies; exposes it as an MCP server |
|
|
1814
1837
|
| **[1bcoder](https://github.com/szholobetsky/1bcoder)** | AI coding assistant for small local models — surgical context management, agents, parallel inference, proc scripts |
|
|
1815
1838
|
| **[yasna](https://github.com/szholobetsky/yasna)** | Session memory — indexes conversations from all AI agents so you can find what was discussed, when, and where |
|
|
1839
|
+
| **[radogast](https://github.com/szholobetsky/radogast)** | Context drift monitor — measures how far an AI agent's conversation has drifted from the original task |
|
|
1816
1840
|
|
|
1817
1841
|
- **simargl** answers: *what code is related to this task?*
|
|
1818
1842
|
- **svitovyd** answers: *how is the code structured and what depends on what?*
|
|
1819
1843
|
- **1bcoder** answers: *how do I work with local models efficiently?*
|
|
1820
1844
|
- **yasna** answers: *where did I already discuss this?*
|
|
1845
|
+
- **radogast** answers: *is the AI agent still on track toward the goal?*
|
|
1821
1846
|
|
|
1822
|
-
Together they cover the full development loop: understand the codebase, find relevant history, work with AI locally, remember what was decided.
|
|
1847
|
+
Together they cover the full development loop: understand the codebase, find relevant history, work with AI locally, remember what was decided, and verify the context stays on target.
|
|
1823
1848
|
|
|
1824
1849
|
---
|
|
1825
1850
|
|
|
1826
|
-
**(c) 2026 Stanislav Zholobetskyi**
|
|
1851
|
+
**(c) 2026 Stanislav Zholobetskyi, Oleh Andriichuk**
|
|
1827
1852
|
Institute for Information Recording, National Academy of Sciences of Ukraine, Kyiv
|
|
1828
1853
|
*PhD research: «Intelligent Technology for Software Development and Maintenance Support»*
|
|
@@ -31,9 +31,11 @@ _bcoder_data/doc/PARAM.md
|
|
|
31
31
|
_bcoder_data/doc/PROC.md
|
|
32
32
|
_bcoder_data/doc/TRANSLATE.md
|
|
33
33
|
_bcoder_data/flows/commit_message.py
|
|
34
|
+
_bcoder_data/flows/deepagent.py
|
|
34
35
|
_bcoder_data/flows/grounding.py
|
|
35
36
|
_bcoder_data/flows/py_error_trace.py
|
|
36
37
|
_bcoder_data/flows/simargl_files.py
|
|
38
|
+
_bcoder_data/flows/visual_search.py
|
|
37
39
|
_bcoder_data/flows/webask.py
|
|
38
40
|
_bcoder_data/flows/__pycache__/commit_message.cpython-311.pyc
|
|
39
41
|
_bcoder_data/proc/action-required.py
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: 1bcoder
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.12
|
|
4
4
|
Summary: AI coding assistant agent for 1B–7B local models (Ollama, LMStudio, llama.cpp). Terminal REPL with file editing, project map, agents, scripts, and parallel multi-model queries.
|
|
5
5
|
Project-URL: Homepage, https://github.com/szholobetsky/1bcoder
|
|
6
6
|
Project-URL: Repository, https://github.com/szholobetsky/1bcoder
|
|
@@ -44,8 +44,8 @@ This is not a niche concern. It is the default requirement for any serious profe
|
|
|
44
44
|
| Size | Reliable in 1bcoder |
|
|
45
45
|
|---|---|
|
|
46
46
|
| 0.5b | Explain a 10–20 line function; identify a known technology from a file name; write a standard construct in an unfamiliar language |
|
|
47
|
-
| 1b | Explain a full module; recognize a tech stack from a directory tree; answer questions about error messages and short log excerpts |
|
|
48
|
-
| 1b thinking | Explain whole-file logic; identify design patterns across a module
|
|
47
|
+
| 1b | Explain a full module; recognize a tech stack from a directory tree; answer questions about error messages and short log excerpts; edit single lines reliably with `/fim` |
|
|
48
|
+
| 1b thinking | Explain whole-file logic; identify design patterns across a module; reliable for targeted edits with `/fim` |
|
|
49
49
|
| 2b–4b | Edit files under instruction; write new functions; follow SEARCH/REPLACE format consistently |
|
|
50
50
|
|
|
51
51
|
Every tier is useful. Each requires a different approach to context preparation. 1bcoder provides the tools to do that preparation with surgical precision.
|
|
@@ -126,7 +126,8 @@ Tasks that require the model to decide *what to look at* — refactoring across
|
|
|
126
126
|
## Features
|
|
127
127
|
|
|
128
128
|
- Plain terminal REPL — works in any shell, IDE terminal, or SSH session; status line before each prompt shows active model, disk size, quantization, native context limit, and context fill %
|
|
129
|
-
- **`/read`** injects files without line numbers (clean text, ideal for `notes.txt` and structured data); **`/readln`** injects with line numbers (use before `/fix
|
|
129
|
+
- **`/read`** injects files without line numbers (clean text, ideal for `notes.txt` and structured data); **`/readln`** injects with line numbers (use before `/fim`, `/fix`, or `/patch` when line references matter); both accept comma- or space-separated file lists — use directly with `{{find_files}}` or `{{map_files}}` captured from `/find` or `/map find`
|
|
130
|
+
- **`/view <image> [prompt]`** — inject images into context for multimodal models (`qwen2-vl`, `llava`, `moondream`); trailing non-image words become the prompt; works with `@` file picker; supports png jpg jpeg gif webp bmp
|
|
130
131
|
- **Command autocorrection** — typos in command names, file paths, and keywords are detected and fixed automatically before execution, for both human input and agent actions
|
|
131
132
|
- **`/tree [path]`** — display directory tree of the whole project or any subtree; ask to inject into context (or pass `ctx` to skip the prompt)
|
|
132
133
|
- **`/find <pattern>`** — search filenames and file content with regex; supports `-f`/`-c`/`-i`/`--ext` flags; highlights matches, asks to inject results into context; sets `{{find_files}}` after every search; **`/find <terms> -r`** ranked BM25 mode returns top-10 files by relevance; hidden directories (`.git`, `.venv`, etc.) excluded automatically
|
|
@@ -298,7 +299,7 @@ Examples:
|
|
|
298
299
|
> /map index .
|
|
299
300
|
> /read main.py 1-20
|
|
300
301
|
> what does the divide() function do?
|
|
301
|
-
> /
|
|
302
|
+
> /fim main.py 5 wrong operator
|
|
302
303
|
```
|
|
303
304
|
|
|
304
305
|
---
|
|
@@ -421,7 +422,8 @@ Then configure `/translate` to use it:
|
|
|
421
422
|
| Command | Description |
|
|
422
423
|
|---|---|
|
|
423
424
|
| `/read <file> [file2 ...] [start-end]` | Inject file(s) into AI context **without line numbers** (clean text) |
|
|
424
|
-
| `/readln <file> [file2 ...] [start-end]` | Same as `/read` but **with line numbers** — use before `/fix
|
|
425
|
+
| `/readln <file> [file2 ...] [start-end]` | Same as `/read` but **with line numbers** — use before `/fim`, `/fix`, or `/patch` |
|
|
426
|
+
| `/view <image> [image2 ...] [prompt]` | Inject image(s) for multimodal models — trailing non-image words become the prompt |
|
|
425
427
|
| `/insert <file> <line>` | Insert last AI reply before line N (full text) |
|
|
426
428
|
| `/insert <file> <line> code` | Insert extracted code block from last AI reply before line N |
|
|
427
429
|
| `/insert <file> <line> <text>` | Insert literal text directly, preserving indentation (e.g. `/insert main.py 14 x = 1`) |
|
|
@@ -436,6 +438,8 @@ Then configure `/translate` to use it:
|
|
|
436
438
|
|
|
437
439
|
`/save` modes: `overwrite` (default), `append-above` / `-aa`, `append-below` / `-ab`, `add-suffix`, `code`
|
|
438
440
|
|
|
441
|
+
Use `@/` to pick the target directory interactively: `/save @/result.txt code` shows a numbered directory tree, you pick a number, the token becomes `chosen_dir/result.txt`. Multiple `@/name` tokens in one command share a single pick.
|
|
442
|
+
|
|
439
443
|
```
|
|
440
444
|
/diff main.py main.py.bkup # colored diff, asks to inject into context
|
|
441
445
|
/diff v1/calc.py v2/calc.py -y # auto-inject without confirmation
|
|
@@ -988,7 +992,7 @@ Lines starting with `[v]` are already done and skipped. Lines starting with `#`
|
|
|
988
992
|
| `/script apply [file] [key=value ...]` | Run steps one by one (Y/n/q per step) |
|
|
989
993
|
| `/script apply -y [file] [key=value ...]` | Run all pending steps automatically |
|
|
990
994
|
|
|
991
|
-
**`/script create ctx`** captures all work commands typed this session (`/read`, `/edit`, `/fix`, `/patch`, `/run`, `/save`, `/bkup`, `/map`, `/model`, `/host`) into a ready-to-run plan:
|
|
995
|
+
**`/script create ctx`** captures all work commands typed this session (`/read`, `/edit`, `/fim`, `/fix`, `/patch`, `/run`, `/save`, `/bkup`, `/map`, `/model`, `/host`) into a ready-to-run plan:
|
|
992
996
|
|
|
993
997
|
```
|
|
994
998
|
> /host http://192.168.1.50:11434
|
|
@@ -1079,12 +1083,14 @@ Any `{{key}}` found but not yet set is registered as NaN — `/script reapply` w
|
|
|
1079
1083
|
|
|
1080
1084
|
---
|
|
1081
1085
|
|
|
1082
|
-
### Output capture (`->`,
|
|
1086
|
+
### Output capture (`->`, `$`, `~` and `@`)
|
|
1083
1087
|
|
|
1084
|
-
Any command — LLM reply, tool output, or proc result — can be captured into a session variable using the `->` suffix.
|
|
1088
|
+
Any command — LLM reply, tool output, or proc result — can be captured into a session variable using the `->` suffix. Three special tokens expand anywhere in a command or message:
|
|
1085
1089
|
|
|
1086
1090
|
- `$` — last captured output (last AI reply or tool result)
|
|
1087
1091
|
- `~` — last user input (last message or command you typed)
|
|
1092
|
+
- `@[dir]` — file picker: shows a numbered tree rooted at `dir` (default: `.`); type a number to select a file; the token is replaced by the chosen path
|
|
1093
|
+
- `@/[suffix]` — directory picker: shows a numbered tree of directories; type a number; `@/suffix` is replaced by `chosen_dir/suffix`; multiple `@/suffix` tokens in one command share a single pick
|
|
1088
1094
|
|
|
1089
1095
|
```
|
|
1090
1096
|
/map keyword extract auth.py -> keywords # capture tool output into variable
|
|
@@ -1109,6 +1115,23 @@ summarize this for me -> myplan # capture LLM reply
|
|
|
1109
1115
|
поясни: $ # ask main model to explain its own reply
|
|
1110
1116
|
```
|
|
1111
1117
|
|
|
1118
|
+
**`@` — file picker (numbered tree):**
|
|
1119
|
+
```
|
|
1120
|
+
/readln @ # pick any file from current directory
|
|
1121
|
+
/readln @src # pick from src/ subtree
|
|
1122
|
+
/fim @src fix the null check # pick file, then run /fim on it
|
|
1123
|
+
```
|
|
1124
|
+
Type `@` (optionally followed by a path, no space), press Enter — a numbered tree appears; type the number to substitute the path.
|
|
1125
|
+
|
|
1126
|
+
**`@/` — directory picker:**
|
|
1127
|
+
```
|
|
1128
|
+
/save @/result.txt code # pick a directory, save to chosen_dir/result.txt
|
|
1129
|
+
/save @/result1.txt @/result2.txt code # pick once, both tokens get the same prefix
|
|
1130
|
+
```
|
|
1131
|
+
Type `@/suffix` — a numbered tree of directories appears; pick one; every `@/suffix` in the command is replaced by `chosen_dir/suffix`. Use this when you want to save output into a deeply nested directory without typing the full path.
|
|
1132
|
+
|
|
1133
|
+
`@` and `@/` work wherever `$` and `~` work: in any command or message.
|
|
1134
|
+
|
|
1112
1135
|
`->` stores the full text (including ANSI-stripped terminal output) and also updates `$` for immediate reuse. Variables captured with `->` appear in `/var get` like any other session variable.
|
|
1113
1136
|
|
|
1114
1137
|
---
|
|
@@ -1362,7 +1385,7 @@ Use `list:` when you want to explore a single question from multiple angles simu
|
|
|
1362
1385
|
| `ctx: last` | Last message only (default) |
|
|
1363
1386
|
| `ctx: none` | No context — prompt only |
|
|
1364
1387
|
|
|
1365
|
-
|
|
1388
|
+
**`$`, `~` and `@` expansion** — `$` expands to the last AI reply, `~` to your last input, `@` opens a file picker:
|
|
1366
1389
|
|
|
1367
1390
|
```
|
|
1368
1391
|
/parallel $ profile: short # ask short model to summarise last reply
|
|
@@ -1805,7 +1828,7 @@ For human input, the corrected command is shown with `[fix?]` and you are asked
|
|
|
1805
1828
|
|
|
1806
1829
|
## Part of the SIMARGL toolkit
|
|
1807
1830
|
|
|
1808
|
-
1bcoder is one of
|
|
1831
|
+
1bcoder is one of five tools that together form an **intellectual development support system**:
|
|
1809
1832
|
|
|
1810
1833
|
| Tool | Role |
|
|
1811
1834
|
|---|---|
|
|
@@ -1813,16 +1836,18 @@ For human input, the corrected command is shown with `[fix?]` and you are asked
|
|
|
1813
1836
|
| **[svitovyd](https://github.com/szholobetsky/svitovyd)** | Project map — scans any codebase and produces a structural map of definitions and cross-file dependencies; exposes it as an MCP server |
|
|
1814
1837
|
| **[1bcoder](https://github.com/szholobetsky/1bcoder)** | AI coding assistant for small local models — surgical context management, agents, parallel inference, proc scripts |
|
|
1815
1838
|
| **[yasna](https://github.com/szholobetsky/yasna)** | Session memory — indexes conversations from all AI agents so you can find what was discussed, when, and where |
|
|
1839
|
+
| **[radogast](https://github.com/szholobetsky/radogast)** | Context drift monitor — measures how far an AI agent's conversation has drifted from the original task |
|
|
1816
1840
|
|
|
1817
1841
|
- **simargl** answers: *what code is related to this task?*
|
|
1818
1842
|
- **svitovyd** answers: *how is the code structured and what depends on what?*
|
|
1819
1843
|
- **1bcoder** answers: *how do I work with local models efficiently?*
|
|
1820
1844
|
- **yasna** answers: *where did I already discuss this?*
|
|
1845
|
+
- **radogast** answers: *is the AI agent still on track toward the goal?*
|
|
1821
1846
|
|
|
1822
|
-
Together they cover the full development loop: understand the codebase, find relevant history, work with AI locally, remember what was decided.
|
|
1847
|
+
Together they cover the full development loop: understand the codebase, find relevant history, work with AI locally, remember what was decided, and verify the context stays on target.
|
|
1823
1848
|
|
|
1824
1849
|
---
|
|
1825
1850
|
|
|
1826
|
-
**(c) 2026 Stanislav Zholobetskyi**
|
|
1851
|
+
**(c) 2026 Stanislav Zholobetskyi, Oleh Andriichuk**
|
|
1827
1852
|
Institute for Information Recording, National Academy of Sciences of Ukraine, Kyiv
|
|
1828
1853
|
*PhD research: «Intelligent Technology for Software Development and Maintenance Support»*
|
|
@@ -29,8 +29,8 @@ This is not a niche concern. It is the default requirement for any serious profe
|
|
|
29
29
|
| Size | Reliable in 1bcoder |
|
|
30
30
|
|---|---|
|
|
31
31
|
| 0.5b | Explain a 10–20 line function; identify a known technology from a file name; write a standard construct in an unfamiliar language |
|
|
32
|
-
| 1b | Explain a full module; recognize a tech stack from a directory tree; answer questions about error messages and short log excerpts |
|
|
33
|
-
| 1b thinking | Explain whole-file logic; identify design patterns across a module
|
|
32
|
+
| 1b | Explain a full module; recognize a tech stack from a directory tree; answer questions about error messages and short log excerpts; edit single lines reliably with `/fim` |
|
|
33
|
+
| 1b thinking | Explain whole-file logic; identify design patterns across a module; reliable for targeted edits with `/fim` |
|
|
34
34
|
| 2b–4b | Edit files under instruction; write new functions; follow SEARCH/REPLACE format consistently |
|
|
35
35
|
|
|
36
36
|
Every tier is useful. Each requires a different approach to context preparation. 1bcoder provides the tools to do that preparation with surgical precision.
|
|
@@ -111,7 +111,8 @@ Tasks that require the model to decide *what to look at* — refactoring across
|
|
|
111
111
|
## Features
|
|
112
112
|
|
|
113
113
|
- Plain terminal REPL — works in any shell, IDE terminal, or SSH session; status line before each prompt shows active model, disk size, quantization, native context limit, and context fill %
|
|
114
|
-
- **`/read`** injects files without line numbers (clean text, ideal for `notes.txt` and structured data); **`/readln`** injects with line numbers (use before `/fix
|
|
114
|
+
- **`/read`** injects files without line numbers (clean text, ideal for `notes.txt` and structured data); **`/readln`** injects with line numbers (use before `/fim`, `/fix`, or `/patch` when line references matter); both accept comma- or space-separated file lists — use directly with `{{find_files}}` or `{{map_files}}` captured from `/find` or `/map find`
|
|
115
|
+
- **`/view <image> [prompt]`** — inject images into context for multimodal models (`qwen2-vl`, `llava`, `moondream`); trailing non-image words become the prompt; works with `@` file picker; supports png jpg jpeg gif webp bmp
|
|
115
116
|
- **Command autocorrection** — typos in command names, file paths, and keywords are detected and fixed automatically before execution, for both human input and agent actions
|
|
116
117
|
- **`/tree [path]`** — display directory tree of the whole project or any subtree; ask to inject into context (or pass `ctx` to skip the prompt)
|
|
117
118
|
- **`/find <pattern>`** — search filenames and file content with regex; supports `-f`/`-c`/`-i`/`--ext` flags; highlights matches, asks to inject results into context; sets `{{find_files}}` after every search; **`/find <terms> -r`** ranked BM25 mode returns top-10 files by relevance; hidden directories (`.git`, `.venv`, etc.) excluded automatically
|
|
@@ -283,7 +284,7 @@ Examples:
|
|
|
283
284
|
> /map index .
|
|
284
285
|
> /read main.py 1-20
|
|
285
286
|
> what does the divide() function do?
|
|
286
|
-
> /
|
|
287
|
+
> /fim main.py 5 wrong operator
|
|
287
288
|
```
|
|
288
289
|
|
|
289
290
|
---
|
|
@@ -406,7 +407,8 @@ Then configure `/translate` to use it:
|
|
|
406
407
|
| Command | Description |
|
|
407
408
|
|---|---|
|
|
408
409
|
| `/read <file> [file2 ...] [start-end]` | Inject file(s) into AI context **without line numbers** (clean text) |
|
|
409
|
-
| `/readln <file> [file2 ...] [start-end]` | Same as `/read` but **with line numbers** — use before `/fix
|
|
410
|
+
| `/readln <file> [file2 ...] [start-end]` | Same as `/read` but **with line numbers** — use before `/fim`, `/fix`, or `/patch` |
|
|
411
|
+
| `/view <image> [image2 ...] [prompt]` | Inject image(s) for multimodal models — trailing non-image words become the prompt |
|
|
410
412
|
| `/insert <file> <line>` | Insert last AI reply before line N (full text) |
|
|
411
413
|
| `/insert <file> <line> code` | Insert extracted code block from last AI reply before line N |
|
|
412
414
|
| `/insert <file> <line> <text>` | Insert literal text directly, preserving indentation (e.g. `/insert main.py 14 x = 1`) |
|
|
@@ -421,6 +423,8 @@ Then configure `/translate` to use it:
|
|
|
421
423
|
|
|
422
424
|
`/save` modes: `overwrite` (default), `append-above` / `-aa`, `append-below` / `-ab`, `add-suffix`, `code`
|
|
423
425
|
|
|
426
|
+
Use `@/` to pick the target directory interactively: `/save @/result.txt code` shows a numbered directory tree, you pick a number, the token becomes `chosen_dir/result.txt`. Multiple `@/name` tokens in one command share a single pick.
|
|
427
|
+
|
|
424
428
|
```
|
|
425
429
|
/diff main.py main.py.bkup # colored diff, asks to inject into context
|
|
426
430
|
/diff v1/calc.py v2/calc.py -y # auto-inject without confirmation
|
|
@@ -973,7 +977,7 @@ Lines starting with `[v]` are already done and skipped. Lines starting with `#`
|
|
|
973
977
|
| `/script apply [file] [key=value ...]` | Run steps one by one (Y/n/q per step) |
|
|
974
978
|
| `/script apply -y [file] [key=value ...]` | Run all pending steps automatically |
|
|
975
979
|
|
|
976
|
-
**`/script create ctx`** captures all work commands typed this session (`/read`, `/edit`, `/fix`, `/patch`, `/run`, `/save`, `/bkup`, `/map`, `/model`, `/host`) into a ready-to-run plan:
|
|
980
|
+
**`/script create ctx`** captures all work commands typed this session (`/read`, `/edit`, `/fim`, `/fix`, `/patch`, `/run`, `/save`, `/bkup`, `/map`, `/model`, `/host`) into a ready-to-run plan:
|
|
977
981
|
|
|
978
982
|
```
|
|
979
983
|
> /host http://192.168.1.50:11434
|
|
@@ -1064,12 +1068,14 @@ Any `{{key}}` found but not yet set is registered as NaN — `/script reapply` w
|
|
|
1064
1068
|
|
|
1065
1069
|
---
|
|
1066
1070
|
|
|
1067
|
-
### Output capture (`->`,
|
|
1071
|
+
### Output capture (`->`, `$`, `~` and `@`)
|
|
1068
1072
|
|
|
1069
|
-
Any command — LLM reply, tool output, or proc result — can be captured into a session variable using the `->` suffix.
|
|
1073
|
+
Any command — LLM reply, tool output, or proc result — can be captured into a session variable using the `->` suffix. Three special tokens expand anywhere in a command or message:
|
|
1070
1074
|
|
|
1071
1075
|
- `$` — last captured output (last AI reply or tool result)
|
|
1072
1076
|
- `~` — last user input (last message or command you typed)
|
|
1077
|
+
- `@[dir]` — file picker: shows a numbered tree rooted at `dir` (default: `.`); type a number to select a file; the token is replaced by the chosen path
|
|
1078
|
+
- `@/[suffix]` — directory picker: shows a numbered tree of directories; type a number; `@/suffix` is replaced by `chosen_dir/suffix`; multiple `@/suffix` tokens in one command share a single pick
|
|
1073
1079
|
|
|
1074
1080
|
```
|
|
1075
1081
|
/map keyword extract auth.py -> keywords # capture tool output into variable
|
|
@@ -1094,6 +1100,23 @@ summarize this for me -> myplan # capture LLM reply
|
|
|
1094
1100
|
поясни: $ # ask main model to explain its own reply
|
|
1095
1101
|
```
|
|
1096
1102
|
|
|
1103
|
+
**`@` — file picker (numbered tree):**
|
|
1104
|
+
```
|
|
1105
|
+
/readln @ # pick any file from current directory
|
|
1106
|
+
/readln @src # pick from src/ subtree
|
|
1107
|
+
/fim @src fix the null check # pick file, then run /fim on it
|
|
1108
|
+
```
|
|
1109
|
+
Type `@` (optionally followed by a path, no space), press Enter — a numbered tree appears; type the number to substitute the path.
|
|
1110
|
+
|
|
1111
|
+
**`@/` — directory picker:**
|
|
1112
|
+
```
|
|
1113
|
+
/save @/result.txt code # pick a directory, save to chosen_dir/result.txt
|
|
1114
|
+
/save @/result1.txt @/result2.txt code # pick once, both tokens get the same prefix
|
|
1115
|
+
```
|
|
1116
|
+
Type `@/suffix` — a numbered tree of directories appears; pick one; every `@/suffix` in the command is replaced by `chosen_dir/suffix`. Use this when you want to save output into a deeply nested directory without typing the full path.
|
|
1117
|
+
|
|
1118
|
+
`@` and `@/` work wherever `$` and `~` work: in any command or message.
|
|
1119
|
+
|
|
1097
1120
|
`->` stores the full text (including ANSI-stripped terminal output) and also updates `$` for immediate reuse. Variables captured with `->` appear in `/var get` like any other session variable.
|
|
1098
1121
|
|
|
1099
1122
|
---
|
|
@@ -1347,7 +1370,7 @@ Use `list:` when you want to explore a single question from multiple angles simu
|
|
|
1347
1370
|
| `ctx: last` | Last message only (default) |
|
|
1348
1371
|
| `ctx: none` | No context — prompt only |
|
|
1349
1372
|
|
|
1350
|
-
|
|
1373
|
+
**`$`, `~` and `@` expansion** — `$` expands to the last AI reply, `~` to your last input, `@` opens a file picker:
|
|
1351
1374
|
|
|
1352
1375
|
```
|
|
1353
1376
|
/parallel $ profile: short # ask short model to summarise last reply
|
|
@@ -1790,7 +1813,7 @@ For human input, the corrected command is shown with `[fix?]` and you are asked
|
|
|
1790
1813
|
|
|
1791
1814
|
## Part of the SIMARGL toolkit
|
|
1792
1815
|
|
|
1793
|
-
1bcoder is one of
|
|
1816
|
+
1bcoder is one of five tools that together form an **intellectual development support system**:
|
|
1794
1817
|
|
|
1795
1818
|
| Tool | Role |
|
|
1796
1819
|
|---|---|
|
|
@@ -1798,16 +1821,18 @@ For human input, the corrected command is shown with `[fix?]` and you are asked
|
|
|
1798
1821
|
| **[svitovyd](https://github.com/szholobetsky/svitovyd)** | Project map — scans any codebase and produces a structural map of definitions and cross-file dependencies; exposes it as an MCP server |
|
|
1799
1822
|
| **[1bcoder](https://github.com/szholobetsky/1bcoder)** | AI coding assistant for small local models — surgical context management, agents, parallel inference, proc scripts |
|
|
1800
1823
|
| **[yasna](https://github.com/szholobetsky/yasna)** | Session memory — indexes conversations from all AI agents so you can find what was discussed, when, and where |
|
|
1824
|
+
| **[radogast](https://github.com/szholobetsky/radogast)** | Context drift monitor — measures how far an AI agent's conversation has drifted from the original task |
|
|
1801
1825
|
|
|
1802
1826
|
- **simargl** answers: *what code is related to this task?*
|
|
1803
1827
|
- **svitovyd** answers: *how is the code structured and what depends on what?*
|
|
1804
1828
|
- **1bcoder** answers: *how do I work with local models efficiently?*
|
|
1805
1829
|
- **yasna** answers: *where did I already discuss this?*
|
|
1830
|
+
- **radogast** answers: *is the AI agent still on track toward the goal?*
|
|
1806
1831
|
|
|
1807
|
-
Together they cover the full development loop: understand the codebase, find relevant history, work with AI locally, remember what was decided.
|
|
1832
|
+
Together they cover the full development loop: understand the codebase, find relevant history, work with AI locally, remember what was decided, and verify the context stays on target.
|
|
1808
1833
|
|
|
1809
1834
|
---
|
|
1810
1835
|
|
|
1811
|
-
**(c) 2026 Stanislav Zholobetskyi**
|
|
1836
|
+
**(c) 2026 Stanislav Zholobetskyi, Oleh Andriichuk**
|
|
1812
1837
|
Institute for Information Recording, National Academy of Sciences of Ukraine, Kyiv
|
|
1813
1838
|
*PhD research: «Intelligent Technology for Software Development and Maintenance Support»*
|
|
@@ -10,6 +10,8 @@
|
|
|
10
10
|
/scan = /agent scan {{args}}
|
|
11
11
|
/compact = /agent compact {{args}}
|
|
12
12
|
/websearch = /agent websearch {{args}}
|
|
13
|
+
/visual_search = /flow visual_search {{args}}
|
|
14
|
+
/deepagent = /flow deepagent {{args}}
|
|
13
15
|
/webask = /flow webask {{args}}
|
|
14
16
|
/simargl = /run simargl {{args}}
|
|
15
17
|
/sim = /run simargl {{args}}
|