aline-ai 0.2.3__py3-none-any.whl → 0.2.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.2.3.dist-info → aline_ai-0.2.5.dist-info}/METADATA +2 -1
- {aline_ai-0.2.3.dist-info → aline_ai-0.2.5.dist-info}/RECORD +14 -11
- realign/__init__.py +1 -1
- realign/cli.py +47 -1
- realign/commands/__init__.py +4 -0
- realign/commands/hide.py +1024 -0
- realign/commands/push.py +290 -0
- realign/commands/review.py +492 -0
- realign/mcp_server.py +133 -0
- realign/redactor.py +48 -10
- {aline_ai-0.2.3.dist-info → aline_ai-0.2.5.dist-info}/WHEEL +0 -0
- {aline_ai-0.2.3.dist-info → aline_ai-0.2.5.dist-info}/entry_points.txt +0 -0
- {aline_ai-0.2.3.dist-info → aline_ai-0.2.5.dist-info}/licenses/LICENSE +0 -0
- {aline_ai-0.2.3.dist-info → aline_ai-0.2.5.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: aline-ai
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.5
|
|
4
4
|
Summary: Shared AI memory; everyone knows everything in teams
|
|
5
5
|
Author: Sharemind
|
|
6
6
|
License: MIT
|
|
@@ -26,6 +26,7 @@ Requires-Dist: mcp>=1.0.0
|
|
|
26
26
|
Requires-Dist: anthropic>=0.18.0
|
|
27
27
|
Requires-Dist: openai>=1.0.0
|
|
28
28
|
Requires-Dist: detect-secrets>=1.4.0
|
|
29
|
+
Requires-Dist: git-filter-repo>=2.38.0
|
|
29
30
|
Provides-Extra: dev
|
|
30
31
|
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
31
32
|
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
|
|
@@ -1,25 +1,28 @@
|
|
|
1
|
-
aline_ai-0.2.
|
|
2
|
-
realign/__init__.py,sha256=
|
|
1
|
+
aline_ai-0.2.5.dist-info/licenses/LICENSE,sha256=H8wTqV5IF1oHw_HbBtS1PSDU8G_q81yblEIL_JfV8Vo,1077
|
|
2
|
+
realign/__init__.py,sha256=zx1q8jbbAtSFt2eDYbUqaqss8LohQnvmI4gRY_HWVWY,68
|
|
3
3
|
realign/claude_detector.py,sha256=NLxI0zJWcqNxNha9jAy9AslTMwHKakCc9yPGdkrbiFE,3028
|
|
4
|
-
realign/cli.py,sha256=
|
|
4
|
+
realign/cli.py,sha256=WSdT9zpHLswBeDPjb5M_U2cvhIm7yrgnXPDyb7vD-jg,2798
|
|
5
5
|
realign/codex_detector.py,sha256=RI3JbZgebrhoqpRfTBMfclYCAISN7hZAHVW3bgftJpU,4428
|
|
6
6
|
realign/config.py,sha256=jarinbr0mA6e5DmgY19b_VpMnxk6SOYTwyvB9luq0ww,7207
|
|
7
7
|
realign/file_lock.py,sha256=-9c3tMdMj_ZxmasK5y6hV9Gfo6KDsSO3Q7PXiTBhsu4,3369
|
|
8
8
|
realign/hooks.py,sha256=GzkEbW35-ifwAilYbVxDpNURZ_7XrF68DTqDSQ8v7fE,50670
|
|
9
9
|
realign/logging_config.py,sha256=KvkKktF-bkUu031y9vgUoHpsbnOw7ud25jhpzliNZwA,4929
|
|
10
|
-
realign/mcp_server.py,sha256=
|
|
10
|
+
realign/mcp_server.py,sha256=Q82nuEm6LF17eKUZfHHt6exQjzOWbbBmGXLYwNIGnoo,21002
|
|
11
11
|
realign/mcp_watcher.py,sha256=ffYOXDLuf9T6Kab3CdGNAOY3DBlAbjZrVrSjM5RdYGU,26828
|
|
12
|
-
realign/redactor.py,sha256=
|
|
13
|
-
realign/commands/__init__.py,sha256=
|
|
12
|
+
realign/redactor.py,sha256=FizaGSdW-QTBAQl4h-gtmMpx2mFrfd2a5DoPEPyLfRg,9989
|
|
13
|
+
realign/commands/__init__.py,sha256=caHulsUeguKyy2ZIIa9hVwzGwNHfIbeHwZIC67C8gnI,213
|
|
14
14
|
realign/commands/auto_commit.py,sha256=jgjAYZHqN34NmQkncZg3Vtwsl3MyAlsvucxEBwUj7ko,7450
|
|
15
15
|
realign/commands/commit.py,sha256=mlwrv5nfTRY17WlcAdiJKKGh5uM7dGvT7sMxhdbsfkw,12605
|
|
16
16
|
realign/commands/config.py,sha256=iiu7usqw00djKZja5bx0iDH8DB0vU2maUPMkXLdgXwI,6609
|
|
17
|
+
realign/commands/hide.py,sha256=i_XLsmsB4duLKNIA-eRAUvniS4N6GdQUyfN92CGndEA,34138
|
|
17
18
|
realign/commands/init.py,sha256=vOXSAveWgP8TWp0rgqZO8zNRKZMPiaxWsg4PeDZ9RVs,13586
|
|
19
|
+
realign/commands/push.py,sha256=77GXeKggzzc-100JN1PSgDFcDhSaB4kv2jN24h5YM6I,10249
|
|
20
|
+
realign/commands/review.py,sha256=3TY6F87RGNEbutxvUr_konr24-gCyj5fmD9usd3n4-U,15570
|
|
18
21
|
realign/commands/search.py,sha256=xTWuX0lpjQPX8cen0ewl-BNF0FeWgjMwN06bdeesED8,18770
|
|
19
22
|
realign/commands/session_utils.py,sha256=L1DwZIGCOBirp6tkAswACJEeDa6i9aAAfsialAs4rRY,864
|
|
20
23
|
realign/commands/show.py,sha256=A9LvhOBcY6_HoI76irPB2rBOSgdftBuX2uZiO8IwNoU,16338
|
|
21
|
-
aline_ai-0.2.
|
|
22
|
-
aline_ai-0.2.
|
|
23
|
-
aline_ai-0.2.
|
|
24
|
-
aline_ai-0.2.
|
|
25
|
-
aline_ai-0.2.
|
|
24
|
+
aline_ai-0.2.5.dist-info/METADATA,sha256=Deqqt3Tjs66ZW_76UA7itCXB_YLnhcO-rGa6vN_6vys,1437
|
|
25
|
+
aline_ai-0.2.5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
26
|
+
aline_ai-0.2.5.dist-info/entry_points.txt,sha256=h-NocHDzSueXfsepHTIdRPNQzhNZQPAztJfldd-mQTE,202
|
|
27
|
+
aline_ai-0.2.5.dist-info/top_level.txt,sha256=yIL3s2xv9nf1GwD5n71Aq_JEIV4AfzCIDNKBzewuRm4,8
|
|
28
|
+
aline_ai-0.2.5.dist-info/RECORD,,
|
realign/__init__.py
CHANGED
realign/cli.py
CHANGED
|
@@ -7,7 +7,7 @@ from typing import Optional
|
|
|
7
7
|
from rich.console import Console
|
|
8
8
|
from rich.syntax import Syntax
|
|
9
9
|
|
|
10
|
-
from .commands import init, search, show, config, commit, auto_commit
|
|
10
|
+
from .commands import init, search, show, config, commit, auto_commit, review, hide, push
|
|
11
11
|
|
|
12
12
|
app = typer.Typer(
|
|
13
13
|
name="realign",
|
|
@@ -25,6 +25,52 @@ app.command(name="commit")(commit.commit_command)
|
|
|
25
25
|
app.command(name="auto-commit")(auto_commit.auto_commit_command)
|
|
26
26
|
|
|
27
27
|
|
|
28
|
+
@app.command(name="review")
|
|
29
|
+
def review_cli(
|
|
30
|
+
verbose: bool = typer.Option(False, "--verbose", "-v", help="Show detailed information"),
|
|
31
|
+
detect_secrets: bool = typer.Option(False, "--detect-secrets", help="Detect sensitive content"),
|
|
32
|
+
):
|
|
33
|
+
"""Review unpushed commits with session summaries."""
|
|
34
|
+
exit_code = review.review_command(verbose=verbose, detect_secrets=detect_secrets)
|
|
35
|
+
raise typer.Exit(code=exit_code)
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
@app.command(name="hide")
|
|
39
|
+
def hide_cli(
|
|
40
|
+
indices: str = typer.Argument(..., help="Commit indices to hide (e.g., '1,3,5-7' or '--all'), or 'reset' to undo last hide"),
|
|
41
|
+
force: bool = typer.Option(False, "--force", "-f", help="Skip confirmation prompt"),
|
|
42
|
+
):
|
|
43
|
+
"""Hide (redact) specific commits before pushing, or reset to undo last hide."""
|
|
44
|
+
if indices.lower() == "reset":
|
|
45
|
+
exit_code = hide.hide_reset_command(force=force)
|
|
46
|
+
else:
|
|
47
|
+
exit_code = hide.hide_command(indices=indices, force=force)
|
|
48
|
+
raise typer.Exit(code=exit_code)
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
@app.command(name="push")
|
|
52
|
+
def push_cli(
|
|
53
|
+
remote: str = typer.Option("origin", "--remote", "-r", help="Git remote name"),
|
|
54
|
+
branch: Optional[str] = typer.Option(None, "--branch", "-b", help="Branch to push (default: current branch)"),
|
|
55
|
+
force: bool = typer.Option(False, "--force", "-f", help="Skip all confirmation prompts"),
|
|
56
|
+
dry_run: bool = typer.Option(False, "--dry-run", help="Show what would be pushed without actually pushing"),
|
|
57
|
+
):
|
|
58
|
+
"""Interactive push workflow with review and hide options.
|
|
59
|
+
|
|
60
|
+
This command provides an interactive workflow:
|
|
61
|
+
1. Review unpushed commits
|
|
62
|
+
2. Optionally hide sensitive commits
|
|
63
|
+
3. Final confirmation before pushing
|
|
64
|
+
"""
|
|
65
|
+
exit_code = push.push_command(
|
|
66
|
+
remote=remote,
|
|
67
|
+
branch=branch,
|
|
68
|
+
force=force,
|
|
69
|
+
dry_run=dry_run
|
|
70
|
+
)
|
|
71
|
+
raise typer.Exit(code=exit_code)
|
|
72
|
+
|
|
73
|
+
|
|
28
74
|
@app.command()
|
|
29
75
|
def version():
|
|
30
76
|
"""Show ReAlign version."""
|