1bcoder 0.1.10__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.10 → 1bcoder-0.1.12/1bcoder.egg-info}/PKG-INFO +66 -14
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/1bcoder.egg-info/SOURCES.txt +2 -0
- 1bcoder-0.1.10/README.md → 1bcoder-0.1.12/PKG-INFO +1853 -1786
- 1bcoder-0.1.10/1bcoder.egg-info/PKG-INFO → 1bcoder-0.1.12/README.md +1838 -1801
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/agents/advance.txt +3 -2
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/aliases.txt +2 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/doc/PARAM.md +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.10 → 1bcoder-0.1.12}/chat.py +911 -87
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/map_query.py +17 -8
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/pyproject.toml +1 -1
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/1bcoder.egg-info/dependency_links.txt +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/1bcoder.egg-info/entry_points.txt +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/1bcoder.egg-info/requires.txt +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/1bcoder.egg-info/top_level.txt +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/LICENSE +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/__init__.py +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/agents/ask.txt +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/agents/compact.txt +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/agents/concepts.txt +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/agents/fill.txt +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/agents/planning.txt +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/agents/scan.txt +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/agents/sqlite.txt +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/agents/websearch.txt +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/doc/FLOWS.md +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/doc/MCP.md +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/doc/OLLAMA_SERVER_PARAM.md +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/doc/PROC.md +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/doc/TRANSLATE.md +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/flows/__pycache__/commit_message.cpython-311.pyc +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/flows/commit_message.py +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/flows/grounding.py +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/flows/py_error_trace.py +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/flows/simargl_files.py +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/flows/webask.py +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/map.txt +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/proc/action-required.py +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/proc/add-save.py +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/proc/assist.py +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/proc/collect-files.py +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/proc/ctx_cut.py +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/proc/extract-code.py +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/proc/extract-files.py +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/proc/extract-list.py +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/proc/grounding-check.py +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/proc/md.py +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/proc/mdx.py +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/proc/pattern-gate.py +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/proc/regexp-extract.py +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/proc/rude_words.py +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/proc/scan-save.py +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/proc/secret_check.py +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/proc/sql_readonly_guard.py +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/proc/tempctx-cut.py +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/profiles.txt +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/prompts/analysis.txt +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/prompts/sumarise.txt +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/prompts.txt +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/scripts/AddFunction.txt +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/scripts/AskProject.txt +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/scripts/CheckRequirements.txt +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/scripts/DockerMySQL.txt +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/scripts/DockerNginx.txt +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/scripts/DockerPython.txt +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/scripts/DockerStack.txt +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/scripts/DuckDuckGoInstant.txt +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/scripts/EnvTemplate.txt +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/scripts/Explain.txt +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/scripts/ExploreProjectStructure.txt +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/scripts/GitIgnorePython.txt +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/scripts/MySQLDump.txt +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/scripts/NewScript.txt +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/scripts/PipFreeze.txt +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/scripts/PyPI.txt +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/scripts/Refactor.txt +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/scripts/RunAndFix.txt +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/scripts/SQLiteSchema.txt +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/scripts/Translate.txt +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/scripts/WikiPage.txt +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/scripts/WikiSearch.txt +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/scripts/auto-bkup.txt +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/scripts/edit-control.txt +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/scripts/parallel_call.txt +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/scripts/personal/content/create-regular-content.txt +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/scripts/personal/content/plan.txt +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/scripts/personal/test/collect-data-from-test-environment.txt +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/scripts/plan.txt +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/scripts/remote/create-content-on-remote-server.txt +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/scripts/set_ctx.txt +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/scripts/simargl-cli_index_files.txt +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/scripts/simargl-cli_index_units.txt +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/scripts/simargl-cli_search.txt +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/scripts/team-map-worker.txt +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/scripts/team-search-worker.txt +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/scripts/team-summarize.txt +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/scripts/team-tree-worker.txt +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/scripts/test.txt +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/_bcoder_data/teams/code-analysis.yaml +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/map_index.py +0 -0
- {1bcoder-0.1.10 → 1bcoder-0.1.12}/setup.cfg +0 -0
- {1bcoder-0.1.10 → 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
|
|
@@ -13,6 +13,8 @@ Requires-Dist: tqdm>=4.64
|
|
|
13
13
|
Requires-Dist: rich>=13.0
|
|
14
14
|
Dynamic: license-file
|
|
15
15
|
|
|
16
|
+

|
|
17
|
+
|
|
16
18
|
# 1bcoder
|
|
17
19
|
|
|
18
20
|
AI coding assistant for small local models (0.5B–4B) — runs via [Ollama](https://ollama.com), [LMStudio](https://lmstudio.ai), or any OpenAI-compatible backend.
|
|
@@ -42,8 +44,8 @@ This is not a niche concern. It is the default requirement for any serious profe
|
|
|
42
44
|
| Size | Reliable in 1bcoder |
|
|
43
45
|
|---|---|
|
|
44
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 |
|
|
45
|
-
| 1b | Explain a full module; recognize a tech stack from a directory tree; answer questions about error messages and short log excerpts |
|
|
46
|
-
| 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` |
|
|
47
49
|
| 2b–4b | Edit files under instruction; write new functions; follow SEARCH/REPLACE format consistently |
|
|
48
50
|
|
|
49
51
|
Every tier is useful. Each requires a different approach to context preparation. 1bcoder provides the tools to do that preparation with surgical precision.
|
|
@@ -124,11 +126,12 @@ Tasks that require the model to decide *what to look at* — refactoring across
|
|
|
124
126
|
## Features
|
|
125
127
|
|
|
126
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 %
|
|
127
|
-
- **`/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
|
|
128
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
|
|
129
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)
|
|
130
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
|
|
131
|
-
- AI proposes a **one-line fix** (`/fix`)
|
|
134
|
+
- AI proposes a **one-line fix** (`/fix`), a **SEARCH/REPLACE patch** (`/patch`), or a **FIM-based fix** (`/fim`) — always shows a unified diff before applying
|
|
132
135
|
- **Apply AI code blocks directly** with `/edit <file> code` (new/full file) or `/patch <file> code` (SEARCH/REPLACE from reply, no line numbers needed) — preferred for agent mode
|
|
133
136
|
- **`<think>` tag support** — reasoning blocks shown in terminal by default; `/think hide` suppresses terminal display; `/think include` keeps reasoning in context for chained turns
|
|
134
137
|
- Run shell commands and inject their output with `/run`
|
|
@@ -296,7 +299,7 @@ Examples:
|
|
|
296
299
|
> /map index .
|
|
297
300
|
> /read main.py 1-20
|
|
298
301
|
> what does the divide() function do?
|
|
299
|
-
> /
|
|
302
|
+
> /fim main.py 5 wrong operator
|
|
300
303
|
```
|
|
301
304
|
|
|
302
305
|
---
|
|
@@ -419,7 +422,8 @@ Then configure `/translate` to use it:
|
|
|
419
422
|
| Command | Description |
|
|
420
423
|
|---|---|
|
|
421
424
|
| `/read <file> [file2 ...] [start-end]` | Inject file(s) into AI context **without line numbers** (clean text) |
|
|
422
|
-
| `/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 |
|
|
423
427
|
| `/insert <file> <line>` | Insert last AI reply before line N (full text) |
|
|
424
428
|
| `/insert <file> <line> code` | Insert extracted code block from last AI reply before line N |
|
|
425
429
|
| `/insert <file> <line> <text>` | Insert literal text directly, preserving indentation (e.g. `/insert main.py 14 x = 1`) |
|
|
@@ -434,6 +438,8 @@ Then configure `/translate` to use it:
|
|
|
434
438
|
|
|
435
439
|
`/save` modes: `overwrite` (default), `append-above` / `-aa`, `append-below` / `-ab`, `add-suffix`, `code`
|
|
436
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
|
+
|
|
437
443
|
```
|
|
438
444
|
/diff main.py main.py.bkup # colored diff, asks to inject into context
|
|
439
445
|
/diff v1/calc.py v2/calc.py -y # auto-inject without confirmation
|
|
@@ -453,10 +459,12 @@ Then configure `/translate` to use it:
|
|
|
453
459
|
| Command | Description |
|
|
454
460
|
|---|---|
|
|
455
461
|
| `/fix <file> [start-end] [hint]` | AI proposes one-line fix, shows diff, asks to apply |
|
|
462
|
+
| `/fim <file> <line or start-end> [-w N] [hint]` | FIM-based fix — model rewrites the marked section, shows unified diff |
|
|
456
463
|
| `/patch <file> [start-end] [hint]` | AI proposes SEARCH/REPLACE block, shows unified diff |
|
|
457
464
|
| `/patch <file> code` | Apply SEARCH/REPLACE block from last AI reply (no new LLM call) |
|
|
458
465
|
|
|
459
|
-
`/fix`
|
|
466
|
+
`/fix` asks the model to output `LINE N: content` — simple but small models often lose indentation.
|
|
467
|
+
`/fim` (Fill-In-the-Middle) marks the target line(s) with `<<<...>>>` inside the full file, asks the model to return the corrected file, then diffs the result — no output format to learn, grammar constraints come from the surrounding code. Use `-w N` to limit context to N lines around the target when the file is larger than the context window.
|
|
460
468
|
`/patch` works better with larger models (7B+) and can replace multiple consecutive lines.
|
|
461
469
|
`/patch <file> code` is the preferred agent mode edit — the agent writes the SEARCH/REPLACE block in its reply, then calls `/patch <file> code` to apply it without needing line numbers.
|
|
462
470
|
|
|
@@ -465,6 +473,9 @@ When `/patch` fails to find the SEARCH text it shows a diagnostic diff — the S
|
|
|
465
473
|
```
|
|
466
474
|
/fix main.py
|
|
467
475
|
/fix main.py 2-2 wrong operator
|
|
476
|
+
/fim main.py 3 replace != with ==
|
|
477
|
+
/fim main.py 3-5 fix the logic
|
|
478
|
+
/fim huge_file.py 14567 -w 20 fix indentation
|
|
468
479
|
/patch main.py 10-40 fix the loop logic
|
|
469
480
|
/patch main.py code
|
|
470
481
|
```
|
|
@@ -981,7 +992,7 @@ Lines starting with `[v]` are already done and skipped. Lines starting with `#`
|
|
|
981
992
|
| `/script apply [file] [key=value ...]` | Run steps one by one (Y/n/q per step) |
|
|
982
993
|
| `/script apply -y [file] [key=value ...]` | Run all pending steps automatically |
|
|
983
994
|
|
|
984
|
-
**`/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:
|
|
985
996
|
|
|
986
997
|
```
|
|
987
998
|
> /host http://192.168.1.50:11434
|
|
@@ -1072,12 +1083,14 @@ Any `{{key}}` found but not yet set is registered as NaN — `/script reapply` w
|
|
|
1072
1083
|
|
|
1073
1084
|
---
|
|
1074
1085
|
|
|
1075
|
-
### Output capture (`->`,
|
|
1086
|
+
### Output capture (`->`, `$`, `~` and `@`)
|
|
1076
1087
|
|
|
1077
|
-
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:
|
|
1078
1089
|
|
|
1079
1090
|
- `$` — last captured output (last AI reply or tool result)
|
|
1080
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
|
|
1081
1094
|
|
|
1082
1095
|
```
|
|
1083
1096
|
/map keyword extract auth.py -> keywords # capture tool output into variable
|
|
@@ -1102,6 +1115,23 @@ summarize this for me -> myplan # capture LLM reply
|
|
|
1102
1115
|
поясни: $ # ask main model to explain its own reply
|
|
1103
1116
|
```
|
|
1104
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
|
+
|
|
1105
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.
|
|
1106
1136
|
|
|
1107
1137
|
---
|
|
@@ -1355,7 +1385,7 @@ Use `list:` when you want to explore a single question from multiple angles simu
|
|
|
1355
1385
|
| `ctx: last` | Last message only (default) |
|
|
1356
1386
|
| `ctx: none` | No context — prompt only |
|
|
1357
1387
|
|
|
1358
|
-
|
|
1388
|
+
**`$`, `~` and `@` expansion** — `$` expands to the last AI reply, `~` to your last input, `@` opens a file picker:
|
|
1359
1389
|
|
|
1360
1390
|
```
|
|
1361
1391
|
/parallel $ profile: short # ask short model to summarise last reply
|
|
@@ -1739,7 +1769,7 @@ On Windows: hold `Shift` and drag with the left mouse button to select and copy
|
|
|
1739
1769
|
## Tips for 1B models
|
|
1740
1770
|
|
|
1741
1771
|
- **Start small.** Use `/read file.py 10-25` instead of loading the whole file. Short context = better focus.
|
|
1742
|
-
- **
|
|
1772
|
+
- **Try `/fim` for tricky fixes.** FIM-based editing activates the model's grammar knowledge through surrounding code context — more reliable than `/fix` for indentation and multi-line logic. Use `-w 20` for large files.
|
|
1743
1773
|
- **Build a map first.** Run `/map index .` at the start of a session, then use `/map find` to load only the relevant parts into context.
|
|
1744
1774
|
- **Use scripts.** Scripts make multi-step work reproducible — the model only needs to handle one step at a time.
|
|
1745
1775
|
- **Capture workflows.** After solving a task manually, run `/script create ctx` to save the exact steps as a reusable script.
|
|
@@ -1796,6 +1826,28 @@ For human input, the corrected command is shown with `[fix?]` and you are asked
|
|
|
1796
1826
|
|
|
1797
1827
|
---
|
|
1798
1828
|
|
|
1799
|
-
|
|
1829
|
+
## Part of the SIMARGL toolkit
|
|
1830
|
+
|
|
1831
|
+
1bcoder is one of five tools that together form an **intellectual development support system**:
|
|
1832
|
+
|
|
1833
|
+
| Tool | Role |
|
|
1834
|
+
|---|---|
|
|
1835
|
+
| **[simargl](https://github.com/szholobetsky/simargl)** | Task-to-code retrieval — given a task description, finds which files and modules are likely affected, using semantic similarity over git history |
|
|
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 |
|
|
1837
|
+
| **[1bcoder](https://github.com/szholobetsky/1bcoder)** | AI coding assistant for small local models — surgical context management, agents, parallel inference, proc scripts |
|
|
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 |
|
|
1840
|
+
|
|
1841
|
+
- **simargl** answers: *what code is related to this task?*
|
|
1842
|
+
- **svitovyd** answers: *how is the code structured and what depends on what?*
|
|
1843
|
+
- **1bcoder** answers: *how do I work with local models efficiently?*
|
|
1844
|
+
- **yasna** answers: *where did I already discuss this?*
|
|
1845
|
+
- **radogast** answers: *is the AI agent still on track toward the goal?*
|
|
1846
|
+
|
|
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.
|
|
1848
|
+
|
|
1849
|
+
---
|
|
1850
|
+
|
|
1851
|
+
**(c) 2026 Stanislav Zholobetskyi, Oleh Andriichuk**
|
|
1800
1852
|
Institute for Information Recording, National Academy of Sciences of Ukraine, Kyiv
|
|
1801
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
|