vibego 1.0.2__py3-none-any.whl → 1.0.10__py3-none-any.whl
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.
- bot.py +299 -117
- master.py +18 -3
- scripts/master_healthcheck.py +34 -134
- scripts/requirements.txt +1 -0
- scripts/run_bot.sh +3 -0
- scripts/session_pointer_watch.py +265 -0
- scripts/start.sh +16 -9
- scripts/start_tmux_codex.sh +25 -0
- tasks/service.py +1 -46
- {vibego-1.0.2.dist-info → vibego-1.0.10.dist-info}/METADATA +10 -20
- {vibego-1.0.2.dist-info → vibego-1.0.10.dist-info}/RECORD +16 -15
- vibego_cli/__init__.py +1 -1
- {vibego-1.0.2.dist-info → vibego-1.0.10.dist-info}/WHEEL +0 -0
- {vibego-1.0.2.dist-info → vibego-1.0.10.dist-info}/entry_points.txt +0 -0
- {vibego-1.0.2.dist-info → vibego-1.0.10.dist-info}/licenses/LICENSE +0 -0
- {vibego-1.0.2.dist-info → vibego-1.0.10.dist-info}/top_level.txt +0 -0
tasks/service.py
CHANGED
|
@@ -445,15 +445,6 @@ class TaskService:
|
|
|
445
445
|
0,
|
|
446
446
|
),
|
|
447
447
|
)
|
|
448
|
-
await self._insert_history(
|
|
449
|
-
db,
|
|
450
|
-
task_id,
|
|
451
|
-
"create",
|
|
452
|
-
None,
|
|
453
|
-
title,
|
|
454
|
-
actor,
|
|
455
|
-
created_at=now,
|
|
456
|
-
)
|
|
457
448
|
await db.commit()
|
|
458
449
|
return TaskRecord(
|
|
459
450
|
id=task_id,
|
|
@@ -605,10 +596,8 @@ class TaskService:
|
|
|
605
596
|
raise ValueError("Task does not exist")
|
|
606
597
|
updates = []
|
|
607
598
|
params: List[object] = []
|
|
608
|
-
history_items: List[Tuple[str, Optional[str], Optional[str]]] = []
|
|
609
599
|
if title is not None and title != row["title"]:
|
|
610
600
|
updates.append("title = ?")
|
|
611
|
-
history_items.append(("title", row["title"], title))
|
|
612
601
|
params.append(title)
|
|
613
602
|
if status is not None:
|
|
614
603
|
normalized_status = self._normalize_status_token(status, context="update")
|
|
@@ -624,35 +613,28 @@ class TaskService:
|
|
|
624
613
|
status_value = None
|
|
625
614
|
if status_value is not None and status_value != row["status"]:
|
|
626
615
|
updates.append("status = ?")
|
|
627
|
-
history_items.append(("status", row["status"], status_value))
|
|
628
616
|
params.append(status_value)
|
|
629
617
|
if priority is not None and priority != row["priority"]:
|
|
630
618
|
updates.append("priority = ?")
|
|
631
|
-
history_items.append(("priority", str(row["priority"]), str(priority)))
|
|
632
619
|
params.append(priority)
|
|
633
620
|
if task_type is not None and task_type != row["task_type"]:
|
|
634
621
|
updates.append("task_type = ?")
|
|
635
|
-
history_items.append(("task_type", row["task_type"], task_type))
|
|
636
622
|
params.append(task_type)
|
|
637
623
|
if tags is not None:
|
|
638
624
|
tags_json = json.dumps(list(tags))
|
|
639
625
|
if tags_json != row["tags"]:
|
|
640
626
|
updates.append("tags = ?")
|
|
641
|
-
history_items.append(("tags", row["tags"], tags_json))
|
|
642
627
|
params.append(tags_json)
|
|
643
628
|
if due_date is not None and due_date != row["due_date"]:
|
|
644
629
|
updates.append("due_date = ?")
|
|
645
|
-
history_items.append(("due_date", row["due_date"], due_date))
|
|
646
630
|
params.append(due_date)
|
|
647
631
|
if description is not None and description != row["description"]:
|
|
648
632
|
updates.append("description = ?")
|
|
649
|
-
history_items.append(("description", row["description"], description))
|
|
650
633
|
params.append(description)
|
|
651
634
|
if archived is not None:
|
|
652
635
|
archived_int = 1 if archived else 0
|
|
653
636
|
if archived_int != row["archived"]:
|
|
654
637
|
updates.append("archived = ?")
|
|
655
|
-
history_items.append(("archived", str(row["archived"]), str(archived_int)))
|
|
656
638
|
params.append(archived_int)
|
|
657
639
|
if updates:
|
|
658
640
|
now = shanghai_now_iso()
|
|
@@ -663,16 +645,6 @@ class TaskService:
|
|
|
663
645
|
f"UPDATE tasks SET {' , '.join(updates)} WHERE id = ?",
|
|
664
646
|
params,
|
|
665
647
|
)
|
|
666
|
-
for field, old, new in history_items:
|
|
667
|
-
await self._insert_history(
|
|
668
|
-
db,
|
|
669
|
-
task_id,
|
|
670
|
-
field,
|
|
671
|
-
old,
|
|
672
|
-
new,
|
|
673
|
-
actor,
|
|
674
|
-
created_at=now,
|
|
675
|
-
)
|
|
676
648
|
await db.commit()
|
|
677
649
|
updated = await self.get_task(task_id)
|
|
678
650
|
if updated is None:
|
|
@@ -687,7 +659,7 @@ class TaskService:
|
|
|
687
659
|
content: str,
|
|
688
660
|
actor: Optional[str],
|
|
689
661
|
) -> TaskNoteRecord:
|
|
690
|
-
"""Append a note to a task
|
|
662
|
+
"""Append a note to a task (notes no longer create task history entries)."""
|
|
691
663
|
|
|
692
664
|
canonical_task_id = self._canonical_task_id(task_id)
|
|
693
665
|
if not canonical_task_id:
|
|
@@ -711,23 +683,6 @@ class TaskService:
|
|
|
711
683
|
(task_id, note_type, content, now),
|
|
712
684
|
)
|
|
713
685
|
note_id = cursor.lastrowid
|
|
714
|
-
payload = {
|
|
715
|
-
"action": "add_note",
|
|
716
|
-
"note_type": note_type,
|
|
717
|
-
"note_id": note_id,
|
|
718
|
-
"content_length": len(content or ""),
|
|
719
|
-
}
|
|
720
|
-
await self._insert_history(
|
|
721
|
-
db,
|
|
722
|
-
task_id,
|
|
723
|
-
"note",
|
|
724
|
-
None,
|
|
725
|
-
content,
|
|
726
|
-
actor,
|
|
727
|
-
event_type="task_action",
|
|
728
|
-
payload=json.dumps(payload, ensure_ascii=False),
|
|
729
|
-
created_at=now,
|
|
730
|
-
)
|
|
731
686
|
await db.commit()
|
|
732
687
|
return TaskNoteRecord(
|
|
733
688
|
id=note_id,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: vibego
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.10
|
|
4
4
|
Summary: vibego CLI: tools for bootstrapping and managing the Telegram Master Bot
|
|
5
5
|
Author: DavidChan
|
|
6
6
|
License-Expression: LicenseRef-Proprietary
|
|
@@ -23,7 +23,7 @@ Dynamic: license-file
|
|
|
23
23
|
|
|
24
24
|
**Drive your terminal AI CLI via Telegram anytime and anywhere (supports Codex / ClaudeCode)**
|
|
25
25
|
|
|
26
|
-
For the Simplified Chinese version, see [
|
|
26
|
+
For the Simplified Chinese version, see [中文文档](README-zh.md).
|
|
27
27
|
|
|
28
28
|
## Features
|
|
29
29
|
|
|
@@ -35,24 +35,12 @@ For the Simplified Chinese version, see [README-zh.md](README-zh.md).
|
|
|
35
35
|
|
|
36
36
|
## Environment Requirements
|
|
37
37
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
- To run the Codex model you also need the Codex CLI:
|
|
45
|
-
```bash
|
|
46
|
-
brew install codex
|
|
47
|
-
```
|
|
48
|
-
`scripts/run_bot.sh` checks for the `codex` executable before the worker launches. Confirm with `codex --version`.
|
|
49
|
-
- The scripts use the `python3` available on your `PATH` and automatically create `~/.config/vibego/runtime/venv` on
|
|
50
|
-
first launch to install Python dependencies. If you prefer to bootstrap manually:
|
|
51
|
-
```bash
|
|
52
|
-
python3 -m venv ~/.config/vibego/runtime/venv
|
|
53
|
-
source ~/.config/vibego/runtime/venv/bin/activate
|
|
54
|
-
```
|
|
55
|
-
Set `VIBEGO_RUNTIME_ROOT` if you need a custom runtime location (pipx users typically do not).
|
|
38
|
+
**The terminal environment has installed and login in codex / claudeCode**
|
|
39
|
+
```bash
|
|
40
|
+
brew install python@3.11 tmux
|
|
41
|
+
python3 -m venv ~/.config/vibego/runtime/venv
|
|
42
|
+
source ~/.config/vibego/runtime/venv/bin/activate
|
|
43
|
+
```
|
|
56
44
|
|
|
57
45
|
## Quick Start
|
|
58
46
|
|
|
@@ -79,6 +67,8 @@ vibego init # initialise the config directory and persist the Master Bo
|
|
|
79
67
|
vibego start # start the master service
|
|
80
68
|
```
|
|
81
69
|
|
|
70
|
+
Then click on `/start` in the bot created by Telegram ,Enjoy it!
|
|
71
|
+
|
|
82
72
|
## Directory Layout
|
|
83
73
|
|
|
84
74
|
- `bot.py`: aiogram 3 worker that supports multiple model sessions (Codex / ClaudeCode / reserved Gemini).
|
|
@@ -1,16 +1,17 @@
|
|
|
1
|
-
bot.py,sha256=
|
|
1
|
+
bot.py,sha256=bQ-tadaS-CX9699JhO6wtgBeAiXZsbb21GDRAusXJiQ,300928
|
|
2
2
|
logging_setup.py,sha256=ViXK11TNVakIbA8QMLKXa6ywpAV_j1ydcws0Hx2QqNo,5084
|
|
3
|
-
master.py,sha256=
|
|
3
|
+
master.py,sha256=bpcqGsUpk8kHW8sqD6QG6ss-5LGO1OsQ7zsdvkgDJ3E,132763
|
|
4
4
|
project_repository.py,sha256=fdO3xzvt7eBLvek_3mXjXkFpALwllrNWDWeSjtscW2I,17675
|
|
5
5
|
scripts/__init__.py,sha256=Sg-nUv9JfbojPpjpHlxImt6tA0p5-z1AqDA6csaFNZI,74
|
|
6
6
|
scripts/bump_version.sh,sha256=bAV-NHTSmqnjrsHjvrNTF3wS2rxhF-lZ5h5kpK2-Zyc,4462
|
|
7
7
|
scripts/log_writer.py,sha256=65HGLPREiBL1b4QRiMdxGmHfT21WBEUvg9RuCjP73Kc,3957
|
|
8
|
-
scripts/master_healthcheck.py,sha256=
|
|
8
|
+
scripts/master_healthcheck.py,sha256=7uCCuKeyE70SjzWbT_ILxng3OUY1As2A0AeyGSOcaUg,4009
|
|
9
9
|
scripts/publish.sh,sha256=e3tzRFtweJnLpJin0i43xpCWseX4jzeO2sAd2eGcTKk,3686
|
|
10
|
-
scripts/requirements.txt,sha256=
|
|
11
|
-
scripts/run_bot.sh,sha256=
|
|
12
|
-
scripts/
|
|
13
|
-
scripts/
|
|
10
|
+
scripts/requirements.txt,sha256=slmiARPzUg-75zfi2h_a-JiBXArTokKjg2o4yTmdMlA,107
|
|
11
|
+
scripts/run_bot.sh,sha256=palEshZaHTYwWRBgRN6pMOiU69dta430yQP9_gUaQxI,5362
|
|
12
|
+
scripts/session_pointer_watch.py,sha256=IvOTTj-i_3rFA2J4pmsCI1iUM9n64Z5tHYw_-2syhKo,9285
|
|
13
|
+
scripts/start.sh,sha256=nqJHO9iJ-OHbLMaLxAyycRT0o1rprrzSVNwQV4QEphA,16350
|
|
14
|
+
scripts/start_tmux_codex.sh,sha256=NfIHi23ASQYDyX_2NMX47TuM3K95QaplhpVfOYzJRDo,5836
|
|
14
15
|
scripts/stop_all.sh,sha256=bvl3--jNnXLt9xUrzPqXt8SWUNLAKTELwlMArU5-8gU,4400
|
|
15
16
|
scripts/stop_bot.sh,sha256=1pI8hxQRIWJTOCLXddWMOmsnk3XIkuAlQwF9mPqRW_k,6163
|
|
16
17
|
scripts/test_deps_check.sh,sha256=_g-xYY_VSaqe8xk7OPw33aKJrUqwJxB8hJf0bcF5cp0,2112
|
|
@@ -425,16 +426,16 @@ tasks/commands.py,sha256=vgFoSyTGyppn84it5vZ5H43RGzT-AQCkhrEQj04hYf8,1598
|
|
|
425
426
|
tasks/constants.py,sha256=BNMxSnswF-PTij-p7paMK0G5Tj6wKN-6qpUlMwo1JQA,318
|
|
426
427
|
tasks/fsm.py,sha256=6n0hdFNF3j6ZUcpdJ_TwZBgkrE8aMYHNLHppdGbXGO4,1494
|
|
427
428
|
tasks/models.py,sha256=3OJL3F3nVZIQIejL6LplZkPQxYJXgOhCNA9Rikg8ihk,2461
|
|
428
|
-
tasks/service.py,sha256=
|
|
429
|
-
vibego-1.0.
|
|
430
|
-
vibego_cli/__init__.py,sha256=
|
|
429
|
+
tasks/service.py,sha256=rzd2v3kZaRpTi54cEAg2GJbeg45VTufC8bGSL1nGJWc,40115
|
|
430
|
+
vibego-1.0.10.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
431
|
+
vibego_cli/__init__.py,sha256=FPYqYQIBrm5aP_ujpHbtBhSFUsvBDlKfE0fD-RdZFAo,350
|
|
431
432
|
vibego_cli/__main__.py,sha256=lM_m-i1x3yVNQhzRt8wqvuIYeeo1OlLNAEVoJVD7tmw,155
|
|
432
433
|
vibego_cli/config.py,sha256=W-n5y4CTrRpencadWlmhpdrhUHX6tdXQEGXJG1pRM0U,3149
|
|
433
434
|
vibego_cli/deps.py,sha256=nFT-DMsfAiD1lLFnDotxe6aYfeeD9V5TrIPbIbAMTF4,1478
|
|
434
435
|
vibego_cli/main.py,sha256=CZAUHWr45GzzEfALoLuSrnvG2VUuCexiFuCpIvyH8Jc,12506
|
|
435
436
|
vibego_cli/data/worker_requirements.txt,sha256=QSt30DSSSHtfucTFPpc7twk9kLS5rVLNTcvDiagxrZg,62
|
|
436
|
-
vibego-1.0.
|
|
437
|
-
vibego-1.0.
|
|
438
|
-
vibego-1.0.
|
|
439
|
-
vibego-1.0.
|
|
440
|
-
vibego-1.0.
|
|
437
|
+
vibego-1.0.10.dist-info/METADATA,sha256=gnkCSgLPXn8SwqS3DpNp4G8rIdrXxXZPvy3kRkVrHLI,11901
|
|
438
|
+
vibego-1.0.10.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
439
|
+
vibego-1.0.10.dist-info/entry_points.txt,sha256=Lsy_zm-dlyxt8-9DL9blBReIwU2k22c8-kifr46ND1M,48
|
|
440
|
+
vibego-1.0.10.dist-info/top_level.txt,sha256=R56CT3nW5H5v3ce0l3QDN4-C4qxTrNWzRTwrxnkDX4U,69
|
|
441
|
+
vibego-1.0.10.dist-info/RECORD,,
|
vibego_cli/__init__.py
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|