1bcoder 0.1.5__tar.gz → 0.1.6__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.5 → 1bcoder-0.1.6}/1bcoder.egg-info/PKG-INFO +26 -1
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/PKG-INFO +26 -1
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/README.md +25 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/chat.py +114 -1
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/pyproject.toml +1 -1
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/1bcoder.egg-info/SOURCES.txt +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/1bcoder.egg-info/dependency_links.txt +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/1bcoder.egg-info/entry_points.txt +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/1bcoder.egg-info/requires.txt +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/1bcoder.egg-info/top_level.txt +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/LICENSE +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/__init__.py +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/agents/advance.txt +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/agents/ask.txt +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/agents/compact.txt +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/agents/concepts.txt +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/agents/fill.txt +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/agents/planning.txt +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/agents/scan.txt +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/agents/sqlite.txt +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/aliases.txt +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/doc/MCP.md +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/doc/OLLAMA_SERVER_PARAM.md +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/doc/PARAM.md +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/doc/PROC.md +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/map.txt +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/proc/action-required.py +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/proc/add-save.py +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/proc/assist.py +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/proc/collect-files.py +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/proc/ctx_cut.py +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/proc/extract-code.py +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/proc/extract-files.py +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/proc/extract-list.py +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/proc/grounding-check.py +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/proc/md.py +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/proc/mdx.py +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/proc/pattern-gate.py +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/proc/regexp-extract.py +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/proc/rude_words.py +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/proc/scan-save.py +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/proc/secret_check.py +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/proc/sql_readonly_guard.py +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/proc/tempctx-cut.py +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/profiles.txt +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/prompts/analysis.txt +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/prompts/sumarise.txt +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/prompts.txt +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/scripts/AddFunction.txt +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/scripts/AskProject.txt +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/scripts/CheckRequirements.txt +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/scripts/DockerMySQL.txt +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/scripts/DockerNginx.txt +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/scripts/DockerPython.txt +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/scripts/DockerStack.txt +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/scripts/DuckDuckGoInstant.txt +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/scripts/EnvTemplate.txt +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/scripts/Explain.txt +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/scripts/ExploreProjectStructure.txt +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/scripts/GitIgnorePython.txt +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/scripts/MySQLDump.txt +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/scripts/NewScript.txt +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/scripts/PipFreeze.txt +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/scripts/PyPI.txt +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/scripts/Refactor.txt +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/scripts/RunAndFix.txt +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/scripts/SQLiteSchema.txt +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/scripts/WikiPage.txt +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/scripts/WikiSearch.txt +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/scripts/auto-bkup.txt +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/scripts/edit-control.txt +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/scripts/parallel_call.txt +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/scripts/personal/content/create-regular-content.txt +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/scripts/personal/content/plan.txt +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/scripts/personal/test/collect-data-from-test-environment.txt +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/scripts/plan.txt +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/scripts/remote/create-content-on-remote-server.txt +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/scripts/set_ctx.txt +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/scripts/simargl-cli_index_files.txt +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/scripts/simargl-cli_index_units.txt +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/scripts/simargl-cli_search.txt +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/scripts/team-map-worker.txt +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/scripts/team-search-worker.txt +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/scripts/team-summarize.txt +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/scripts/team-tree-worker.txt +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/scripts/test.txt +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/_bcoder_data/teams/code-analysis.yaml +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/map_index.py +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/map_query.py +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/setup.cfg +0 -0
- {1bcoder-0.1.5 → 1bcoder-0.1.6}/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.6
|
|
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
|
|
@@ -303,6 +303,31 @@ Examples:
|
|
|
303
303
|
|
|
304
304
|
## Command Reference
|
|
305
305
|
|
|
306
|
+
### Multi-line input
|
|
307
|
+
|
|
308
|
+
`/text` opens a full multi-line editor inside the terminal and sends the composed text to the AI as a regular message.
|
|
309
|
+
|
|
310
|
+
| Key / Command | Action |
|
|
311
|
+
|---|---|
|
|
312
|
+
| Enter | New line |
|
|
313
|
+
| Ctrl+D | Submit without saving |
|
|
314
|
+
| `/end` on its own line + Enter | Submit without saving |
|
|
315
|
+
| `/save` on its own line + Enter | Save to `.1bcoder/task.txt` and submit |
|
|
316
|
+
| `/save filename.txt` on its own line + Enter | Save to custom file and submit |
|
|
317
|
+
| Ctrl+C | Cancel without sending |
|
|
318
|
+
|
|
319
|
+
Requires `prompt_toolkit` for full editing (arrow keys, Home/End, scroll). Falls back to plain line-by-line input if not installed.
|
|
320
|
+
|
|
321
|
+
```
|
|
322
|
+
> /text
|
|
323
|
+
··· Describe the bug in detail here.
|
|
324
|
+
··· Paste stack traces, requirements, anything long.
|
|
325
|
+
··· /save
|
|
326
|
+
[text] saved → .1bcoder/task.txt
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
---
|
|
330
|
+
|
|
306
331
|
### File operations
|
|
307
332
|
|
|
308
333
|
| Command | Description |
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: 1bcoder
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.6
|
|
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
|
|
@@ -303,6 +303,31 @@ Examples:
|
|
|
303
303
|
|
|
304
304
|
## Command Reference
|
|
305
305
|
|
|
306
|
+
### Multi-line input
|
|
307
|
+
|
|
308
|
+
`/text` opens a full multi-line editor inside the terminal and sends the composed text to the AI as a regular message.
|
|
309
|
+
|
|
310
|
+
| Key / Command | Action |
|
|
311
|
+
|---|---|
|
|
312
|
+
| Enter | New line |
|
|
313
|
+
| Ctrl+D | Submit without saving |
|
|
314
|
+
| `/end` on its own line + Enter | Submit without saving |
|
|
315
|
+
| `/save` on its own line + Enter | Save to `.1bcoder/task.txt` and submit |
|
|
316
|
+
| `/save filename.txt` on its own line + Enter | Save to custom file and submit |
|
|
317
|
+
| Ctrl+C | Cancel without sending |
|
|
318
|
+
|
|
319
|
+
Requires `prompt_toolkit` for full editing (arrow keys, Home/End, scroll). Falls back to plain line-by-line input if not installed.
|
|
320
|
+
|
|
321
|
+
```
|
|
322
|
+
> /text
|
|
323
|
+
··· Describe the bug in detail here.
|
|
324
|
+
··· Paste stack traces, requirements, anything long.
|
|
325
|
+
··· /save
|
|
326
|
+
[text] saved → .1bcoder/task.txt
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
---
|
|
330
|
+
|
|
306
331
|
### File operations
|
|
307
332
|
|
|
308
333
|
| Command | Description |
|
|
@@ -288,6 +288,31 @@ Examples:
|
|
|
288
288
|
|
|
289
289
|
## Command Reference
|
|
290
290
|
|
|
291
|
+
### Multi-line input
|
|
292
|
+
|
|
293
|
+
`/text` opens a full multi-line editor inside the terminal and sends the composed text to the AI as a regular message.
|
|
294
|
+
|
|
295
|
+
| Key / Command | Action |
|
|
296
|
+
|---|---|
|
|
297
|
+
| Enter | New line |
|
|
298
|
+
| Ctrl+D | Submit without saving |
|
|
299
|
+
| `/end` on its own line + Enter | Submit without saving |
|
|
300
|
+
| `/save` on its own line + Enter | Save to `.1bcoder/task.txt` and submit |
|
|
301
|
+
| `/save filename.txt` on its own line + Enter | Save to custom file and submit |
|
|
302
|
+
| Ctrl+C | Cancel without sending |
|
|
303
|
+
|
|
304
|
+
Requires `prompt_toolkit` for full editing (arrow keys, Home/End, scroll). Falls back to plain line-by-line input if not installed.
|
|
305
|
+
|
|
306
|
+
```
|
|
307
|
+
> /text
|
|
308
|
+
··· Describe the bug in detail here.
|
|
309
|
+
··· Paste stack traces, requirements, anything long.
|
|
310
|
+
··· /save
|
|
311
|
+
[text] saved → .1bcoder/task.txt
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
---
|
|
315
|
+
|
|
291
316
|
### File operations
|
|
292
317
|
|
|
293
318
|
| Command | Description |
|
|
@@ -42,6 +42,85 @@ def _info(msg: str): print(f"{_CYAN}{msg}{_R}")
|
|
|
42
42
|
def _warn(msg: str): print(f"{_YELL}{msg}{_R}")
|
|
43
43
|
|
|
44
44
|
|
|
45
|
+
def _multiline_input() -> str:
|
|
46
|
+
"""Open a multi-line text editor in the terminal.
|
|
47
|
+
|
|
48
|
+
Uses prompt_toolkit if available (Alt+Enter / Esc→Enter to submit).
|
|
49
|
+
Falls back to a line-by-line collector terminated by '/end' on its own line.
|
|
50
|
+
Returns the composed text, or empty string on Ctrl+C / cancel.
|
|
51
|
+
"""
|
|
52
|
+
try:
|
|
53
|
+
from prompt_toolkit import prompt as _pt_prompt
|
|
54
|
+
from prompt_toolkit.key_binding import KeyBindings as _KB
|
|
55
|
+
|
|
56
|
+
kb = _KB()
|
|
57
|
+
_QUICKSAVE_FILE = os.path.join('.1bcoder', 'task.txt')
|
|
58
|
+
|
|
59
|
+
@kb.add('c-d')
|
|
60
|
+
def _submit(event):
|
|
61
|
+
event.current_buffer.validate_and_handle()
|
|
62
|
+
|
|
63
|
+
@kb.add('enter')
|
|
64
|
+
def _enter_or_end(event):
|
|
65
|
+
buf = event.current_buffer
|
|
66
|
+
current_line = buf.document.current_line.strip()
|
|
67
|
+
if current_line in ('/end', '/save') or current_line.startswith('/save '):
|
|
68
|
+
buf.validate_and_handle()
|
|
69
|
+
else:
|
|
70
|
+
buf.newline()
|
|
71
|
+
|
|
72
|
+
print(f"[multiline — Enter = new line · Ctrl+D or /end to submit · /save to save to .1bcoder/task.txt · /save filename.txt for custom name · Ctrl+C to cancel]")
|
|
73
|
+
try:
|
|
74
|
+
text = _pt_prompt('··· ', multiline=True, key_bindings=kb)
|
|
75
|
+
except KeyboardInterrupt:
|
|
76
|
+
print()
|
|
77
|
+
return ""
|
|
78
|
+
|
|
79
|
+
# strip trailing empty lines, check for /end or /save command
|
|
80
|
+
lines = text.split('\n')
|
|
81
|
+
while lines and lines[-1].strip() == '':
|
|
82
|
+
lines.pop()
|
|
83
|
+
|
|
84
|
+
save_filename = None
|
|
85
|
+
if lines:
|
|
86
|
+
last = lines[-1].strip()
|
|
87
|
+
if last == '/end':
|
|
88
|
+
lines.pop()
|
|
89
|
+
elif last == '/save':
|
|
90
|
+
save_filename = ''
|
|
91
|
+
lines.pop()
|
|
92
|
+
elif last.startswith('/save '):
|
|
93
|
+
save_filename = last[6:].strip()
|
|
94
|
+
lines.pop()
|
|
95
|
+
|
|
96
|
+
text = '\n'.join(lines)
|
|
97
|
+
|
|
98
|
+
if save_filename == '' and text.strip():
|
|
99
|
+
os.makedirs('.1bcoder', exist_ok=True)
|
|
100
|
+
with open(_QUICKSAVE_FILE, 'w', encoding='utf-8') as _f:
|
|
101
|
+
_f.write(text)
|
|
102
|
+
print(f" [text] saved → {_QUICKSAVE_FILE}")
|
|
103
|
+
elif save_filename and text.strip():
|
|
104
|
+
with open(save_filename, 'w', encoding='utf-8') as _f:
|
|
105
|
+
_f.write(text)
|
|
106
|
+
print(f" [text] saved → {save_filename}")
|
|
107
|
+
return text
|
|
108
|
+
|
|
109
|
+
except ImportError:
|
|
110
|
+
print("[multiline — type /end on its own line to submit · Ctrl+C to cancel]")
|
|
111
|
+
lines = []
|
|
112
|
+
while True:
|
|
113
|
+
try:
|
|
114
|
+
line = input("··· ")
|
|
115
|
+
except (EOFError, KeyboardInterrupt):
|
|
116
|
+
print()
|
|
117
|
+
return ""
|
|
118
|
+
if line.strip() == "/end":
|
|
119
|
+
break
|
|
120
|
+
lines.append(line)
|
|
121
|
+
return "\n".join(lines)
|
|
122
|
+
|
|
123
|
+
|
|
45
124
|
def _fts_rank(terms: list, file_contents: dict, top_k: int = 10) -> list:
|
|
46
125
|
"""Rank files by BM25 using in-memory FTS5.
|
|
47
126
|
|
|
@@ -326,6 +405,18 @@ Commands
|
|
|
326
405
|
/readln models.py 40-60
|
|
327
406
|
/readln {{find_files}}
|
|
328
407
|
|
|
408
|
+
/text
|
|
409
|
+
Open a multi-line text editor and send the composed text to the AI.
|
|
410
|
+
Enter = new line. To submit, use one of:
|
|
411
|
+
Ctrl+D — submit without saving
|
|
412
|
+
/end — submit without saving (type on its own line, then Enter)
|
|
413
|
+
/save — save to .1bcoder/task.txt and submit
|
|
414
|
+
/save <filename> — save to custom file and submit
|
|
415
|
+
Ctrl+C cancels without sending.
|
|
416
|
+
If prompt_toolkit is installed: full editing with arrow keys, Home/End, scroll.
|
|
417
|
+
Fallback (no prompt_toolkit): same commands work line by line.
|
|
418
|
+
Useful for pasting multi-paragraph task descriptions, code snippets, or long instructions.
|
|
419
|
+
|
|
329
420
|
/edit <file> <line>
|
|
330
421
|
Manually replace a line. Type new content when prompted.
|
|
331
422
|
e.g. /edit main.py 15
|
|
@@ -1855,7 +1946,7 @@ _KNOWN_CMDS = [
|
|
|
1855
1946
|
"/find", "/map", "/ctx", "/think", "/format", "/param", "/model",
|
|
1856
1947
|
"/host", "/help", "/init", "/clear", "/exit",
|
|
1857
1948
|
"/prompt", "/proc", "/team", "/var", "/config", "/alias",
|
|
1858
|
-
"/doc", "/tempctx", "/proj",
|
|
1949
|
+
"/doc", "/tempctx", "/proj", "/text", "/role", "/ask",
|
|
1859
1950
|
]
|
|
1860
1951
|
|
|
1861
1952
|
# file_idx : position of the file-path argument (None = no file arg)
|
|
@@ -2547,6 +2638,8 @@ class CoderCLI:
|
|
|
2547
2638
|
self._cmd_team(user_input)
|
|
2548
2639
|
elif user_input.startswith("/var"):
|
|
2549
2640
|
self._cmd_var(user_input)
|
|
2641
|
+
elif user_input.startswith("/text"):
|
|
2642
|
+
self._cmd_note()
|
|
2550
2643
|
elif user_input.startswith("/role"):
|
|
2551
2644
|
self._cmd_role(user_input)
|
|
2552
2645
|
elif user_input.startswith("/config"):
|
|
@@ -4913,6 +5006,26 @@ advanced_tools =
|
|
|
4913
5006
|
else:
|
|
4914
5007
|
print("usage: /proc list | run <name> | on <name> | off | new <name>")
|
|
4915
5008
|
|
|
5009
|
+
# ── /text ───────────────────────────────────────────────────────────────────
|
|
5010
|
+
|
|
5011
|
+
def _cmd_note(self):
|
|
5012
|
+
"""Open multi-line editor, then send the composed text to the AI."""
|
|
5013
|
+
text = _multiline_input()
|
|
5014
|
+
if not text.strip():
|
|
5015
|
+
print("[note] empty — nothing sent")
|
|
5016
|
+
return
|
|
5017
|
+
self.messages.append({"role": "user", "content": text})
|
|
5018
|
+
self._sep("AI")
|
|
5019
|
+
reply = self._stream_chat(self.messages)
|
|
5020
|
+
if reply:
|
|
5021
|
+
self.last_reply = reply
|
|
5022
|
+
self._last_output = reply
|
|
5023
|
+
self.messages.append({"role": "assistant", "content": reply})
|
|
5024
|
+
for _proc in self._proc_active:
|
|
5025
|
+
self._run_proc(_proc, auto=True)
|
|
5026
|
+
elif self.messages:
|
|
5027
|
+
self.messages.pop()
|
|
5028
|
+
|
|
4916
5029
|
# ── /var ────────────────────────────────────────────────────────────────────
|
|
4917
5030
|
|
|
4918
5031
|
def _cmd_role(self, user_input: str):
|
|
@@ -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.6"
|
|
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
|
|
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.5 → 1bcoder-0.1.6}/_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.5 → 1bcoder-0.1.6}/_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
|