aline-ai 0.5.3__py3-none-any.whl → 0.5.5__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.
- {aline_ai-0.5.3.dist-info → aline_ai-0.5.5.dist-info}/METADATA +1 -1
- aline_ai-0.5.5.dist-info/RECORD +93 -0
- realign/__init__.py +1 -1
- realign/adapters/antigravity.py +28 -20
- realign/adapters/base.py +46 -50
- realign/adapters/claude.py +14 -14
- realign/adapters/codex.py +7 -7
- realign/adapters/gemini.py +11 -11
- realign/adapters/registry.py +14 -10
- realign/claude_detector.py +2 -2
- realign/claude_hooks/__init__.py +3 -3
- realign/claude_hooks/permission_request_hook.py +35 -0
- realign/claude_hooks/permission_request_hook_installer.py +31 -32
- realign/claude_hooks/stop_hook.py +4 -1
- realign/claude_hooks/stop_hook_installer.py +30 -31
- realign/cli.py +24 -0
- realign/codex_detector.py +11 -11
- realign/commands/add.py +361 -35
- realign/commands/config.py +3 -12
- realign/commands/context.py +3 -1
- realign/commands/export_shares.py +86 -127
- realign/commands/import_shares.py +145 -155
- realign/commands/init.py +166 -30
- realign/commands/restore.py +18 -6
- realign/commands/search.py +14 -42
- realign/commands/upgrade.py +155 -11
- realign/commands/watcher.py +98 -219
- realign/commands/worker.py +29 -6
- realign/config.py +25 -20
- realign/context.py +1 -3
- realign/dashboard/app.py +4 -4
- realign/dashboard/screens/create_event.py +3 -1
- realign/dashboard/screens/event_detail.py +14 -6
- realign/dashboard/screens/session_detail.py +3 -1
- realign/dashboard/screens/share_import.py +7 -3
- realign/dashboard/tmux_manager.py +91 -22
- realign/dashboard/widgets/config_panel.py +85 -1
- realign/dashboard/widgets/events_table.py +3 -1
- realign/dashboard/widgets/header.py +1 -0
- realign/dashboard/widgets/search_panel.py +37 -27
- realign/dashboard/widgets/sessions_table.py +24 -15
- realign/dashboard/widgets/terminal_panel.py +207 -17
- realign/dashboard/widgets/watcher_panel.py +6 -2
- realign/dashboard/widgets/worker_panel.py +10 -1
- realign/db/__init__.py +1 -1
- realign/db/base.py +5 -15
- realign/db/locks.py +0 -1
- realign/db/migration.py +82 -76
- realign/db/schema.py +2 -6
- realign/db/sqlite_db.py +23 -41
- realign/events/__init__.py +0 -1
- realign/events/event_summarizer.py +27 -15
- realign/events/session_summarizer.py +29 -15
- realign/file_lock.py +1 -0
- realign/hooks.py +150 -60
- realign/logging_config.py +12 -15
- realign/mcp_server.py +30 -51
- realign/mcp_watcher.py +0 -1
- realign/models/event.py +29 -20
- realign/prompts/__init__.py +7 -7
- realign/prompts/presets.py +15 -11
- realign/redactor.py +99 -59
- realign/triggers/__init__.py +9 -9
- realign/triggers/antigravity_trigger.py +30 -28
- realign/triggers/base.py +4 -3
- realign/triggers/claude_trigger.py +104 -85
- realign/triggers/codex_trigger.py +15 -5
- realign/triggers/gemini_trigger.py +57 -47
- realign/triggers/next_turn_trigger.py +3 -1
- realign/triggers/registry.py +6 -2
- realign/triggers/turn_status.py +3 -1
- realign/watcher_core.py +306 -131
- realign/watcher_daemon.py +8 -8
- realign/worker_core.py +3 -1
- realign/worker_daemon.py +3 -1
- aline_ai-0.5.3.dist-info/RECORD +0 -93
- {aline_ai-0.5.3.dist-info → aline_ai-0.5.5.dist-info}/WHEEL +0 -0
- {aline_ai-0.5.3.dist-info → aline_ai-0.5.5.dist-info}/entry_points.txt +0 -0
- {aline_ai-0.5.3.dist-info → aline_ai-0.5.5.dist-info}/licenses/LICENSE +0 -0
- {aline_ai-0.5.3.dist-info → aline_ai-0.5.5.dist-info}/top_level.txt +0 -0
realign/watcher_daemon.py
CHANGED
|
@@ -21,12 +21,12 @@ except ImportError:
|
|
|
21
21
|
from realign.logging_config import setup_logger
|
|
22
22
|
|
|
23
23
|
# Initialize logger
|
|
24
|
-
logger = setup_logger(
|
|
24
|
+
logger = setup_logger("realign.daemon", "watcher_daemon.log")
|
|
25
25
|
|
|
26
26
|
|
|
27
27
|
def get_pid_file() -> Path:
|
|
28
28
|
"""Get the path to the PID file."""
|
|
29
|
-
return Path.home() /
|
|
29
|
+
return Path.home() / ".aline/.logs/watcher.pid"
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
def write_pid():
|
|
@@ -89,15 +89,15 @@ def main():
|
|
|
89
89
|
"""Main entry point for the daemon."""
|
|
90
90
|
try:
|
|
91
91
|
# Redirect stdout/stderr to log files
|
|
92
|
-
log_dir = Path.home() /
|
|
92
|
+
log_dir = Path.home() / ".aline/.logs"
|
|
93
93
|
log_dir.mkdir(parents=True, exist_ok=True)
|
|
94
94
|
|
|
95
|
-
stdout_log = log_dir /
|
|
96
|
-
stderr_log = log_dir /
|
|
95
|
+
stdout_log = log_dir / "watcher_stdout.log"
|
|
96
|
+
stderr_log = log_dir / "watcher_stderr.log"
|
|
97
97
|
|
|
98
98
|
# Open log files in append mode
|
|
99
|
-
sys.stdout = open(stdout_log,
|
|
100
|
-
sys.stderr = open(stderr_log,
|
|
99
|
+
sys.stdout = open(stdout_log, "a", buffering=1)
|
|
100
|
+
sys.stderr = open(stderr_log, "a", buffering=1)
|
|
101
101
|
|
|
102
102
|
# Run the async daemon
|
|
103
103
|
asyncio.run(run_daemon())
|
|
@@ -111,5 +111,5 @@ def main():
|
|
|
111
111
|
sys.exit(1)
|
|
112
112
|
|
|
113
113
|
|
|
114
|
-
if __name__ ==
|
|
114
|
+
if __name__ == "__main__":
|
|
115
115
|
main()
|
realign/worker_core.py
CHANGED
|
@@ -222,7 +222,9 @@ class AlineWorker:
|
|
|
222
222
|
# If no new turn was created, decide if this job is actually complete.
|
|
223
223
|
existing = self.db.get_turn_by_number(session_id, turn_number)
|
|
224
224
|
if existing is None:
|
|
225
|
-
raise RuntimeError(
|
|
225
|
+
raise RuntimeError(
|
|
226
|
+
f"Turn not created and not present in DB: {session_id} #{turn_number}"
|
|
227
|
+
)
|
|
226
228
|
|
|
227
229
|
status = getattr(existing, "turn_status", None)
|
|
228
230
|
if status in (None, "completed"):
|
realign/worker_daemon.py
CHANGED
|
@@ -61,7 +61,9 @@ async def run_daemon() -> None:
|
|
|
61
61
|
if db is not None:
|
|
62
62
|
n = db.requeue_processing_jobs_locked_by(worker_id=worker.worker_id)
|
|
63
63
|
if n:
|
|
64
|
-
logger.info(
|
|
64
|
+
logger.info(
|
|
65
|
+
f"Requeued {n} in-flight job(s) for worker_id={worker.worker_id}"
|
|
66
|
+
)
|
|
65
67
|
except Exception as e:
|
|
66
68
|
logger.warning(f"Failed to requeue in-flight jobs on shutdown: {e}")
|
|
67
69
|
except Exception:
|
aline_ai-0.5.3.dist-info/RECORD
DELETED
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
aline_ai-0.5.3.dist-info/licenses/LICENSE,sha256=H8wTqV5IF1oHw_HbBtS1PSDU8G_q81yblEIL_JfV8Vo,1077
|
|
2
|
-
realign/__init__.py,sha256=ii28HcuehiV7QZMbEa-1t_hZkRPYlMzW801qcAZLYzo,1623
|
|
3
|
-
realign/claude_detector.py,sha256=hU5OcFO7JH9BCVbmajAmz4TIP-EQuvz9VlpsRYuSoVM,2792
|
|
4
|
-
realign/cli.py,sha256=CGuAGp4s7LCV7DOuF54eF2s6xe30oie7zkCF8xttXaU,29207
|
|
5
|
-
realign/codex_detector.py,sha256=vDjRWHycjzX9Pavv8IwrznMf5oyFKBn4FvqYYy3I0s4,4141
|
|
6
|
-
realign/config.py,sha256=fDwXstNF80yNSUOtNJYAqkDEWZOQkzNC7cN0-_2W0KU,12223
|
|
7
|
-
realign/context.py,sha256=ttQL4_Q9FNv6JA85aRslBuu97LeJPoKAgRbShaj_UiU,10006
|
|
8
|
-
realign/file_lock.py,sha256=ff02cxCPOqauF5BVqRvdtfbm30czUhla6MTuwsURHTM,3443
|
|
9
|
-
realign/hooks.py,sha256=VBLxAX_gcybWeAr4MnrN4aFh8UGNHnEtoSE1D0Og7M8,73443
|
|
10
|
-
realign/llm_client.py,sha256=KPfJScQvqse-Tm-VpqnZ6C5jvajPl2n4Ddz9sUp7WIY,24564
|
|
11
|
-
realign/logging_config.py,sha256=pw0RgG_pneUUAFCsLFm03x7n8syBMSJfwZMAFTiXgXg,4925
|
|
12
|
-
realign/mcp_server.py,sha256=3rhuHtUeo4XXPan9QoXltrIrqB2-yMy1JNkYzgGPSJ8,10401
|
|
13
|
-
realign/mcp_watcher.py,sha256=_z6dz4TPYkNVfiM3VIOvFI2aG1svep7RMk8PF30HXDE,1261
|
|
14
|
-
realign/redactor.py,sha256=iOdajShODYXYsnkTajV3aNGeudg0hXg859ltn5KDNXA,16783
|
|
15
|
-
realign/watcher_core.py,sha256=p5fgyMl_h4rAUUNOS2vCv2ZxTJ0Oa7i1t4bCsjgD9rM,103488
|
|
16
|
-
realign/watcher_daemon.py,sha256=H_nEPx5DDnd3PPUJ_dv8jN7u5kkPgk8DbkcQKgciFhU,3090
|
|
17
|
-
realign/worker_core.py,sha256=W-RsnFFWoi-g4WHzrw1yJLpBDac1d6ZV8ZC3fTpUGmA,10075
|
|
18
|
-
realign/worker_daemon.py,sha256=FoV65cROCI37baELWdAelncSyNKNkxbz2jbOjfNGsY4,3512
|
|
19
|
-
realign/adapters/__init__.py,sha256=bpDm5aBxMdq4OA_beYahoUb4zfNaq3KOG6KghQJruRc,827
|
|
20
|
-
realign/adapters/antigravity.py,sha256=sEHviZx1jK14sXrVLT3qkeZY_t8ow0MHn6mFFXu939Y,5510
|
|
21
|
-
realign/adapters/base.py,sha256=tnBQ0F48LI_j5mKbNSbHKWobqxxNCowJUKb-hhBPHsQ,7801
|
|
22
|
-
realign/adapters/claude.py,sha256=UTCBfzcBaqsR1YUMDULxWsIBcshVL8mko5grD0QPjI4,5161
|
|
23
|
-
realign/adapters/codex.py,sha256=o9XyZEPDVqskHgXSkCDovu3yJM8x6HTIIobU90MGE3s,2075
|
|
24
|
-
realign/adapters/gemini.py,sha256=Oaucgz6l_6Cb0GDdt0ant_Pun6B1CfrDMN9B4irIHXc,2636
|
|
25
|
-
realign/adapters/registry.py,sha256=gJf9MSfd0clt653eBfcM17snrSDXeQDwVXal0N2NrHo,3303
|
|
26
|
-
realign/claude_hooks/__init__.py,sha256=-2CiH5UIjPQzok2pBQ8yIVXB5oFxkzLhFXQ8NDDVy0c,594
|
|
27
|
-
realign/claude_hooks/permission_request_hook.py,sha256=p3rTT5zyFPUzSeGW2_5uW5P7cwyK109UoFRwAd47X88,5220
|
|
28
|
-
realign/claude_hooks/permission_request_hook_installer.py,sha256=B05ey_7OT3tlJBGzBlmy6DFJdW3OGMZCCrk1HSXl0Cs,7800
|
|
29
|
-
realign/claude_hooks/stop_hook.py,sha256=bcWr9jCDZErijSzVSP-kdfmoZ6DHYc6hkRaJ_A2PmQ8,11989
|
|
30
|
-
realign/claude_hooks/stop_hook_installer.py,sha256=BjzabUrAPLCA0m_8ZQWqDW4eCujdPTzlwUNdVGxtRk4,7238
|
|
31
|
-
realign/claude_hooks/terminal_state.py,sha256=ZvdQ-ZmqEltdMoNk3lXVsbpvbAQEmf2hxTCY_8WFu9g,2586
|
|
32
|
-
realign/claude_hooks/user_prompt_submit_hook.py,sha256=WD-UavhBTueN2TPfnZrnPC7DFYGEeptjUEF21EJn7Qo,10312
|
|
33
|
-
realign/claude_hooks/user_prompt_submit_hook_installer.py,sha256=2xLF8yZcE7Iwib9gU-xCkA1NWxNH9Nc5CFKPYK7rtXw,5371
|
|
34
|
-
realign/commands/__init__.py,sha256=sx_ck55oxaoiF4N3LugG0ZXwonUDxeEZ5uHbBKCC7K8,89
|
|
35
|
-
realign/commands/add.py,sha256=QWNx78ASIvcaVrj1bv4524P25PdcJ-N2NAX1Q4v5wJw,12535
|
|
36
|
-
realign/commands/config.py,sha256=rVwWUgLQDoRh25bjNzsN2eC77aiaPB5D77UtxgS3RlY,6798
|
|
37
|
-
realign/commands/context.py,sha256=tD5jQG4kXPfV57PrS1Du3JUzvY6RCbNbxsOQWdomrPg,7057
|
|
38
|
-
realign/commands/export_shares.py,sha256=6omUtPK8OJsWfrzeQAx5LbM8-lOiONZtWa9btpVumVQ,136179
|
|
39
|
-
realign/commands/import_shares.py,sha256=bDf-_1hnlFbqBvVnLTg8Qm4JheQcjTFhhmiBlg75M7k,25314
|
|
40
|
-
realign/commands/init.py,sha256=ZJpmB0QhKHzEi8d8g8i5QKgnEFl8V6Kt7vFEPOWHzxM,27454
|
|
41
|
-
realign/commands/restore.py,sha256=59WXsS09EN6wbYgmc1xYdArF-qhCMbmEwyj8vGLmxTc,11057
|
|
42
|
-
realign/commands/search.py,sha256=_ovwHzDNSZEVP4EdOcg9ELQ5y_84BvXRHhKKALHD738,25173
|
|
43
|
-
realign/commands/upgrade.py,sha256=7FuuLTQ3KyH33GD8RWMh1JMwFnVV3naolS-SQ5vxCjE,8547
|
|
44
|
-
realign/commands/watcher.py,sha256=6EBzIc439ClqS4UG8iGd_tfb5MQMPeieAgjCc-M-NEI,137995
|
|
45
|
-
realign/commands/worker.py,sha256=LErEjB9T9_XatuLTS9Wn0BbSFc3ah0O9lFTzQOin4qU,22673
|
|
46
|
-
realign/dashboard/__init__.py,sha256=QZkHTsGityH8UkF8rmvA3xW7dMXNe0swEWr443qfgCM,128
|
|
47
|
-
realign/dashboard/app.py,sha256=SOlQ6QHt01-Jj5Daa5xyigrNhR-gXC3jupH24lcbeLY,11935
|
|
48
|
-
realign/dashboard/tmux_manager.py,sha256=XDfznyF9-j5fKdxzSNtGWh8L0i7_AG3S_MZhgYLtsZ8,21066
|
|
49
|
-
realign/dashboard/screens/__init__.py,sha256=x42K31sqL5KVMtufOnZjG8LnFN7hQyN5-z8CySqbwlM,304
|
|
50
|
-
realign/dashboard/screens/create_event.py,sha256=nPMZMOekduxLXBTjMmLJEQMhb33RXWRIY0uHbD5fmmM,5484
|
|
51
|
-
realign/dashboard/screens/event_detail.py,sha256=WJFO7pryO0DZIMtyA-IOriFYtSLZ5Ri5AVSzjYiW1BQ,20842
|
|
52
|
-
realign/dashboard/screens/session_detail.py,sha256=eQZUbKq3VyeuH6uXXfayBYqeBmNQA5qwXEaAIveESQk,9579
|
|
53
|
-
realign/dashboard/screens/share_import.py,sha256=f57Q5yz-pPoAkPn-eo1UQms_FIMwvD_judQ3a4-BEJA,6238
|
|
54
|
-
realign/dashboard/styles/dashboard.tcss,sha256=9sSIs3r4V8eeTwCK56s7fnYxjMEuASP8EcmK1fhpUmA,3454
|
|
55
|
-
realign/dashboard/widgets/__init__.py,sha256=3Pf2_K9obrertgv_psfxradgkI9RXlmjoXYQH7oBKm0,583
|
|
56
|
-
realign/dashboard/widgets/config_panel.py,sha256=skOK0bo0yIom04hfc8v-5bRfdU76ooq4vMWwFpeTRwg,7915
|
|
57
|
-
realign/dashboard/widgets/events_table.py,sha256=vQ_m-LW8Et2awljqNXrdP3kCGGW4cEUCHfbtj-DhjZU,21866
|
|
58
|
-
realign/dashboard/widgets/header.py,sha256=ESejMT53T3sbtRrlCGJk8smUv0ts8binkshzCM-hgLI,1582
|
|
59
|
-
realign/dashboard/widgets/openable_table.py,sha256=GeJPDEYp0kRHShqvmPMzAePpYXRZHUNqcWNnxqsqxjA,1963
|
|
60
|
-
realign/dashboard/widgets/search_panel.py,sha256=D0NXVIdNXpcnnVETfA44Muue4CyZq5XkMj4vfpNb3LQ,8635
|
|
61
|
-
realign/dashboard/widgets/sessions_table.py,sha256=CfSy93AbAqGGDFxEQW4u59twZDoVnHyuMmPcSOZTiW4,21852
|
|
62
|
-
realign/dashboard/widgets/terminal_panel.py,sha256=85FTGJVd8sRW_AoWJXFUTaVWIaB_kqtREpwkv7_GcYc,24560
|
|
63
|
-
realign/dashboard/widgets/watcher_panel.py,sha256=ThQfVi_GOP-KR1GDNh5WsSmPJ11TEiP_fuuyxd2sdEk,19662
|
|
64
|
-
realign/dashboard/widgets/worker_panel.py,sha256=ufJYpW0nIPcek7GHa1nuMkrpNU9AY0WvtnWzhNZneW0,18547
|
|
65
|
-
realign/db/__init__.py,sha256=dqFKTskcVA7qCn7JAXeUz_c5T0_g--e9BAVokmk2Ys0,1874
|
|
66
|
-
realign/db/base.py,sha256=mNk57KEIJP4L5oxG5jlUe_QSkF7wReLoD5qdB9NGn18,12103
|
|
67
|
-
realign/db/locks.py,sha256=g9UyJRQUvJN-YAp9hf4EaprovzdG5bMtHyng_73CMcY,1699
|
|
68
|
-
realign/db/migration.py,sha256=IGszYBkZ8YW5IVcs7P1qvwyyGK25KNxdakXRXKvzkyg,13342
|
|
69
|
-
realign/db/schema.py,sha256=3uLER0Azo_BJk8XG7F740xuor1oXMkdj1NQknBDuWlA,18110
|
|
70
|
-
realign/db/sqlite_db.py,sha256=wfdlOr7-JTqAbqYcotXglGJ3B5oqrsZwkxVMSc6BJE0,81972
|
|
71
|
-
realign/events/__init__.py,sha256=oeD-qyUqbrjh3E3_2RLKnnZphoxlX0q-3aoZrRqtGFk,36
|
|
72
|
-
realign/events/debouncer.py,sha256=U3Q7dYpnMsAgWsW_E_IbSC4lrdEoi6H_SFLGLOAazs4,3062
|
|
73
|
-
realign/events/event_summarizer.py,sha256=mNxB62ZuwiWVHDaNUpJxltT1-ClP-gmt95y3Wq1H72k,8125
|
|
74
|
-
realign/events/session_summarizer.py,sha256=D7BqeMt4htHKteUi3SE4AEP7_l_SGWcHjk2oA7PN19c,10201
|
|
75
|
-
realign/models/event.py,sha256=xerdRPU6KOTgG18T4ed4FzHHr25z3DpRT0v6A95gyHs,5533
|
|
76
|
-
realign/prompts/__init__.py,sha256=Qzp4j2sf_OF_n34p-uI1BtfCIfJlka3NfEUCS9Fdqvs,443
|
|
77
|
-
realign/prompts/presets.py,sha256=NH3u2z3oxUHy0YctvWKEt91mG8388DhEOX5QfBSWncY,7188
|
|
78
|
-
realign/tracker/__init__.py,sha256=Apd-xxomkiOjSIthseqZpVQ8l0yT4nkaErsUyA1ptIE,161
|
|
79
|
-
realign/triggers/__init__.py,sha256=URGUFpr3nG6B34Yx2BH8dg2iIFhG28G7nBSfFN5VfOo,674
|
|
80
|
-
realign/triggers/antigravity_trigger.py,sha256=Z5S4Nh2-FqHnGkZ_0KY8J5qmDD35y5V1P12uyINCCpE,5223
|
|
81
|
-
realign/triggers/base.py,sha256=hy1OXiWg63KTj_Z1wBhRFyMrji3HJL2uzGW5Vvnw8KI,4147
|
|
82
|
-
realign/triggers/claude_trigger.py,sha256=KyyTAm3B0OTc7lyDnoGgrYciKpt3WJt7bQDltw5j4K8,19570
|
|
83
|
-
realign/triggers/codex_trigger.py,sha256=IENTa6F-PJYuT9Cw8ar5vaJmxojUSc9-xz1dkUJ-iRQ,13687
|
|
84
|
-
realign/triggers/gemini_trigger.py,sha256=qXOBqNU-b5WfzPhNfsIEASc8QhWrb3BP4f-aAwUWNXk,7719
|
|
85
|
-
realign/triggers/next_turn_trigger.py,sha256=CU6jsIxA_uoV-ROIke0iwEh4-on8vuataLGf4obwtYM,4287
|
|
86
|
-
realign/triggers/registry.py,sha256=AVlMm5xjzWLCnJMuzvfw4hMdNGlLqSTsgd3VCOZ-cHs,3799
|
|
87
|
-
realign/triggers/turn_status.py,sha256=tPHUB3NnnBfMVCIYdrFt5W1840IUGEZ-3v2GEtC981g,5987
|
|
88
|
-
realign/triggers/turn_summary.py,sha256=f3hEUshgv9skJ9AbfWpoYs417lsv_HK2A_vpPjgryO4,4467
|
|
89
|
-
aline_ai-0.5.3.dist-info/METADATA,sha256=6R443dwfUWv_LioywElkXwak1fzgKbrJz_hcaeSLjo0,1597
|
|
90
|
-
aline_ai-0.5.3.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
91
|
-
aline_ai-0.5.3.dist-info/entry_points.txt,sha256=TvYELpMoWsUTcQdMV8tBHxCbEf_LbK4sESqK3r8PM6Y,78
|
|
92
|
-
aline_ai-0.5.3.dist-info/top_level.txt,sha256=yIL3s2xv9nf1GwD5n71Aq_JEIV4AfzCIDNKBzewuRm4,8
|
|
93
|
-
aline_ai-0.5.3.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|