1bcoder 0.1.14__tar.gz → 0.1.15__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.14 → 1bcoder-0.1.15}/1bcoder.egg-info/PKG-INFO +1 -1
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/PKG-INFO +1 -1
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/doc/PARAM.md +4 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/chat.py +71 -17
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/pyproject.toml +1 -1
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/1bcoder.egg-info/SOURCES.txt +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/1bcoder.egg-info/dependency_links.txt +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/1bcoder.egg-info/entry_points.txt +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/1bcoder.egg-info/requires.txt +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/1bcoder.egg-info/top_level.txt +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/LICENSE +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/README.md +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/__init__.py +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/agents/advance.txt +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/agents/ask.txt +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/agents/compact.txt +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/agents/concepts.txt +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/agents/fill.txt +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/agents/planning.txt +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/agents/scan.txt +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/agents/sqlite.txt +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/agents/websearch.txt +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/aliases.txt +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/doc/FLOWS.md +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/doc/MCP.md +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/doc/OLLAMA_SERVER_PARAM.md +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/doc/PROC.md +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/doc/TRANSLATE.md +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/flows/__pycache__/commit_message.cpython-311.pyc +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/flows/__pycache__/webcrawl.cpython-311.pyc +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/flows/commit_message.py +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/flows/deepagent.py +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/flows/deobfuscate.py +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/flows/external_help.py +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/flows/grounding.py +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/flows/obfuscate.py +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/flows/py_error_trace.py +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/flows/simargl_files.py +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/flows/visual_search.py +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/flows/webask.py +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/flows/webcrawl.py +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/map.txt +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/proc/action-required.py +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/proc/add-save.py +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/proc/assist.py +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/proc/collect-files.py +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/proc/ctx_cut.py +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/proc/extract-code.py +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/proc/extract-files.py +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/proc/extract-list.py +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/proc/grounding-check.py +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/proc/md.py +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/proc/mdx.py +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/proc/pattern-gate.py +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/proc/regexp-extract.py +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/proc/rude_words.py +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/proc/scan-save.py +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/proc/secret_check.py +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/proc/sql_readonly_guard.py +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/proc/tempctx-cut.py +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/profiles.txt +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/prompts/analysis.txt +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/prompts/sumarise.txt +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/prompts.txt +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/scripts/AddFunction.txt +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/scripts/AskProject.txt +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/scripts/CheckRequirements.txt +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/scripts/DockerMySQL.txt +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/scripts/DockerNginx.txt +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/scripts/DockerPython.txt +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/scripts/DockerStack.txt +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/scripts/DuckDuckGoInstant.txt +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/scripts/EnvTemplate.txt +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/scripts/Explain.txt +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/scripts/ExploreProjectStructure.txt +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/scripts/GitIgnorePython.txt +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/scripts/MySQLDump.txt +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/scripts/NewScript.txt +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/scripts/PipFreeze.txt +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/scripts/PyPI.txt +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/scripts/Refactor.txt +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/scripts/RunAndFix.txt +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/scripts/SQLiteSchema.txt +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/scripts/Translate.txt +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/scripts/WikiPage.txt +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/scripts/WikiSearch.txt +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/scripts/auto-bkup.txt +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/scripts/edit-control.txt +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/scripts/parallel_call.txt +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/scripts/personal/content/create-regular-content.txt +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/scripts/personal/content/plan.txt +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/scripts/personal/test/collect-data-from-test-environment.txt +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/scripts/plan.txt +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/scripts/remote/create-content-on-remote-server.txt +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/scripts/set_ctx.txt +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/scripts/simargl-cli_index_files.txt +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/scripts/simargl-cli_index_units.txt +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/scripts/simargl-cli_search.txt +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/scripts/team-map-worker.txt +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/scripts/team-search-worker.txt +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/scripts/team-summarize.txt +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/scripts/team-tree-worker.txt +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/scripts/test.txt +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/teams/code-analysis.yaml +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/map_index.py +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/map_query.py +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/setup.cfg +0 -0
- {1bcoder-0.1.14 → 1bcoder-0.1.15}/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.15
|
|
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
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: 1bcoder
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.15
|
|
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
|
|
@@ -19,6 +19,7 @@ These are handled by 1bcoder directly and are not forwarded to the model API.
|
|
|
19
19
|
| `ask_show` | 500 | Characters shown in terminal when output is truncated. |
|
|
20
20
|
| `run_timeout` | 30 | Timeout in seconds for `/run` shell commands. Set to `0` to disable (no timeout). Useful for long-running CLI tools like `simargl search`. |
|
|
21
21
|
| `log` | `false` | Print full request details before each LLM call: URL, model, message count, options. Also prints HTTP response headers on error. Useful for debugging 500 errors or unexpected model behaviour. |
|
|
22
|
+
| `keep_alive` | *(not set)* | **Ollama only.** How long to keep the model loaded after a response. `-1` = never unload. `"5m"` = 5 minutes (Ollama default). `"0"` = unload immediately. Set `-1` to prevent KV-cache eviction during long sessions. |
|
|
22
23
|
|
|
23
24
|
---
|
|
24
25
|
|
|
@@ -134,6 +135,9 @@ An alternative to top_p/top_k that targets a specific perplexity level.
|
|
|
134
135
|
# Keep reasoning in context for chained agents
|
|
135
136
|
/param think_exclude false
|
|
136
137
|
|
|
138
|
+
# Prevent Ollama from evicting KV-cache between requests (fixes slowdown after 10k+ tokens)
|
|
139
|
+
/param keep_alive -1
|
|
140
|
+
|
|
137
141
|
# Reset everything
|
|
138
142
|
/param clear
|
|
139
143
|
```
|
|
@@ -867,10 +867,14 @@ Output capture operators (work with any command — LLM reply, tool, proc):
|
|
|
867
867
|
|
|
868
868
|
/clear Clear conversation context, reset params, clear /var variables, and reload model metadata.
|
|
869
869
|
Use this to fully reset session state when the model starts behaving oddly.
|
|
870
|
+
/clear kv Evict the Ollama KV cache by unloading the model (keep_alive=0). Ollama-only.
|
|
871
|
+
Use before benchmarks or tests that require a completely clean inference state.
|
|
872
|
+
The model will be reloaded on the next request.
|
|
870
873
|
|
|
871
|
-
/model [-sc]
|
|
872
|
-
/model <name> [-sc]
|
|
874
|
+
/model [-sc] [-cc] Switch AI model interactively (type number from list).
|
|
875
|
+
/model <name> [-sc] [-cc] Switch directly by model name (e.g. /model gemma3:1b).
|
|
873
876
|
-sc / save-context: keep context when switching.
|
|
877
|
+
-cc / clear-cache: evict KV cache of the old model before switching (Ollama only).
|
|
874
878
|
|
|
875
879
|
/host <url> [-sc] Switch host and provider on the fly.
|
|
876
880
|
-sc / save-context: keep context when switching.
|
|
@@ -1141,6 +1145,7 @@ Output capture operators (work with any command — LLM reply, tool, proc):
|
|
|
1141
1145
|
/help Show full help.
|
|
1142
1146
|
/help <command> Show help for one command (e.g. /help map, /help fix).
|
|
1143
1147
|
/help <command> ctx Same but also inject the text into AI context.
|
|
1148
|
+
/help all ctx Inject the entire help reference into AI context — then ask the model anything about available commands.
|
|
1144
1149
|
|
|
1145
1150
|
/doc list List documentation articles in doc/.
|
|
1146
1151
|
/doc <name> Show article rendered as Markdown.
|
|
@@ -1149,6 +1154,8 @@ Output capture operators (work with any command — LLM reply, tool, proc):
|
|
|
1149
1154
|
|
|
1150
1155
|
/exit Quit.
|
|
1151
1156
|
|
|
1157
|
+
/help all ctx Inject the entire help reference into AI context — then ask the model anything about available commands.
|
|
1158
|
+
|
|
1152
1159
|
Ctrl+C - interrupt AI response mid-stream.
|
|
1153
1160
|
Enter - submit message.
|
|
1154
1161
|
"""
|
|
@@ -2392,6 +2399,27 @@ class CoderCLI:
|
|
|
2392
2399
|
if self._meta_ctx:
|
|
2393
2400
|
self.num_ctx = self._meta_ctx
|
|
2394
2401
|
|
|
2402
|
+
def _evict_kv_cache(self) -> None:
|
|
2403
|
+
"""Unload the model from Ollama to evict the KV cache.
|
|
2404
|
+
|
|
2405
|
+
Sends keep_alive=0 with no prompt — Ollama unloads the model immediately.
|
|
2406
|
+
The next request will reload the model with a completely clean KV cache.
|
|
2407
|
+
Ollama-only; prints a warning for other providers.
|
|
2408
|
+
"""
|
|
2409
|
+
if self.provider != "ollama":
|
|
2410
|
+
print("[kv] KV eviction is Ollama-only (current provider: openai)")
|
|
2411
|
+
return
|
|
2412
|
+
try:
|
|
2413
|
+
resp = requests.post(
|
|
2414
|
+
f"{self.base_url}/api/generate",
|
|
2415
|
+
json={"model": self.model, "keep_alive": 0},
|
|
2416
|
+
timeout=10,
|
|
2417
|
+
)
|
|
2418
|
+
resp.raise_for_status()
|
|
2419
|
+
print(f"[kv] model '{self.model}' unloaded — KV cache cleared")
|
|
2420
|
+
except Exception as e:
|
|
2421
|
+
print(f"[kv] failed to evict: {e}")
|
|
2422
|
+
|
|
2395
2423
|
def _short_model(self) -> str:
|
|
2396
2424
|
"""Truncate model name to fit a narrow terminal.
|
|
2397
2425
|
|
|
@@ -2756,13 +2784,18 @@ class CoderCLI:
|
|
|
2756
2784
|
else:
|
|
2757
2785
|
opts = {"num_ctx": self.num_ctx}
|
|
2758
2786
|
opts.update(self.params)
|
|
2787
|
+
keep_alive = opts.pop("keep_alive", None)
|
|
2788
|
+
ollama_body = {"model": self.model, "messages": messages, "stream": True,
|
|
2789
|
+
"options": opts}
|
|
2790
|
+
if keep_alive is not None:
|
|
2791
|
+
ollama_body["keep_alive"] = keep_alive
|
|
2759
2792
|
if self.log_requests:
|
|
2760
2793
|
print(f" [log] POST {self.base_url}/api/chat")
|
|
2761
|
-
print(f" [log] model={self.model} messages={len(messages)} options={opts}"
|
|
2794
|
+
print(f" [log] model={self.model} messages={len(messages)} options={opts}"
|
|
2795
|
+
+ (f" keep_alive={keep_alive}" if keep_alive is not None else ""))
|
|
2762
2796
|
with requests.post(
|
|
2763
2797
|
f"{self.base_url}/api/chat",
|
|
2764
|
-
json=
|
|
2765
|
-
"options": opts},
|
|
2798
|
+
json=ollama_body,
|
|
2766
2799
|
stream=True, timeout=self.timeout,
|
|
2767
2800
|
) as resp:
|
|
2768
2801
|
resp.raise_for_status()
|
|
@@ -3014,14 +3047,18 @@ class CoderCLI:
|
|
|
3014
3047
|
self._cmd_format(user_input)
|
|
3015
3048
|
elif user_input.startswith("/param"):
|
|
3016
3049
|
self._cmd_param(user_input)
|
|
3017
|
-
elif user_input
|
|
3018
|
-
|
|
3019
|
-
|
|
3020
|
-
|
|
3021
|
-
|
|
3022
|
-
|
|
3023
|
-
|
|
3024
|
-
|
|
3050
|
+
elif user_input in ("/clear", "/clear kv"):
|
|
3051
|
+
kv = user_input == "/clear kv"
|
|
3052
|
+
if kv:
|
|
3053
|
+
self._evict_kv_cache()
|
|
3054
|
+
else:
|
|
3055
|
+
self.messages.clear()
|
|
3056
|
+
self.last_reply = ""
|
|
3057
|
+
self.params.clear()
|
|
3058
|
+
self._vars.clear()
|
|
3059
|
+
self._last_proc_stdout = ""
|
|
3060
|
+
self._load_model_meta() # re-detect num_ctx, forces Ollama model reload
|
|
3061
|
+
print("[context cleared]")
|
|
3025
3062
|
elif user_input.startswith("/model"):
|
|
3026
3063
|
self._cmd_model(user_input)
|
|
3027
3064
|
elif user_input.startswith("/host"):
|
|
@@ -3822,8 +3859,14 @@ advanced_tools =
|
|
|
3822
3859
|
|
|
3823
3860
|
def _cmd_model(self, user_input: str = ""):
|
|
3824
3861
|
tokens = user_input.split()
|
|
3825
|
-
save_ctx
|
|
3826
|
-
|
|
3862
|
+
save_ctx = "-sc" in tokens or "save-context" in tokens
|
|
3863
|
+
clear_kv = "-cc" in tokens or "clear-cache" in tokens
|
|
3864
|
+
flag_strs = {"-sc", "save-context", "-cc", "clear-cache"}
|
|
3865
|
+
args = [t for t in tokens[1:] if t not in flag_strs]
|
|
3866
|
+
|
|
3867
|
+
# evict KV cache of the current model before switching
|
|
3868
|
+
if clear_kv:
|
|
3869
|
+
self._evict_kv_cache()
|
|
3827
3870
|
|
|
3828
3871
|
# refresh model list from server
|
|
3829
3872
|
try:
|
|
@@ -3845,7 +3888,8 @@ advanced_tools =
|
|
|
3845
3888
|
print(f"[switched to {self.model}, context cleared]")
|
|
3846
3889
|
else:
|
|
3847
3890
|
print(f"[switched to {self.model}, context kept]")
|
|
3848
|
-
|
|
3891
|
+
flags = (" -sc" if save_ctx else "") + (" -cc" if clear_kv else "")
|
|
3892
|
+
self.cmd_history.append(f"/model {name}{flags}")
|
|
3849
3893
|
return
|
|
3850
3894
|
|
|
3851
3895
|
# interactive selection by number
|
|
@@ -3866,7 +3910,8 @@ advanced_tools =
|
|
|
3866
3910
|
print(f"[switched to {self.model}, context cleared]")
|
|
3867
3911
|
else:
|
|
3868
3912
|
print(f"[switched to {self.model}, context kept]")
|
|
3869
|
-
|
|
3913
|
+
flags = (" -sc" if save_ctx else "") + (" -cc" if clear_kv else "")
|
|
3914
|
+
self.cmd_history.append(f"/model {self.model}{flags}")
|
|
3870
3915
|
else:
|
|
3871
3916
|
print("invalid choice")
|
|
3872
3917
|
except ValueError:
|
|
@@ -8323,6 +8368,15 @@ Config stored in ~/.1bcoder/translate.json
|
|
|
8323
8368
|
cmd = parts[1].lstrip('/')
|
|
8324
8369
|
ctx = len(parts) > 2 and parts[2].strip() == "ctx"
|
|
8325
8370
|
|
|
8371
|
+
# /help all ctx — inject full help into context
|
|
8372
|
+
if cmd == "all":
|
|
8373
|
+
if ctx:
|
|
8374
|
+
self.messages.append({"role": "user", "content": f"[help: all commands]\n{HELP_TEXT}"})
|
|
8375
|
+
print(f"[help] full help injected into context ({len(HELP_TEXT):,} chars)")
|
|
8376
|
+
else:
|
|
8377
|
+
print(HELP_TEXT)
|
|
8378
|
+
return
|
|
8379
|
+
|
|
8326
8380
|
# find paragraphs whose first line starts with /<cmd>
|
|
8327
8381
|
paragraphs = HELP_TEXT.split('\n\n')
|
|
8328
8382
|
pattern = re.compile(r'^/' + re.escape(cmd) + r'(\s|$)', re.MULTILINE)
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "1bcoder"
|
|
7
|
-
version = "0.1.
|
|
7
|
+
version = "0.1.15"
|
|
8
8
|
description = "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."
|
|
9
9
|
requires-python = ">=3.10"
|
|
10
10
|
readme = {file = "README.md", content-type = "text/markdown"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/flows/__pycache__/commit_message.cpython-311.pyc
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/scripts/personal/content/create-regular-content.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{1bcoder-0.1.14 → 1bcoder-0.1.15}/_bcoder_data/scripts/remote/create-content-on-remote-server.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|