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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aline-ai
3
- Version: 0.2.3
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.3.dist-info/licenses/LICENSE,sha256=H8wTqV5IF1oHw_HbBtS1PSDU8G_q81yblEIL_JfV8Vo,1077
2
- realign/__init__.py,sha256=6iuIYTdZeDYzshM5Mw9bUC2pET6Fut-Xfw0PM84c7tM,68
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=bkwS329jMDEkrUEihXRN2DDyeTKE6HbAysoDxxskZ8g,941
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=dntFatMpozI80K5hHrIiQ9sviC6ARKTP89goULhi1T4,16477
10
+ realign/mcp_server.py,sha256=Q82nuEm6LF17eKUZfHHt6exQjzOWbbBmGXLYwNIGnoo,21002
11
11
  realign/mcp_watcher.py,sha256=ffYOXDLuf9T6Kab3CdGNAOY3DBlAbjZrVrSjM5RdYGU,26828
12
- realign/redactor.py,sha256=uZvLKKGrRGJm-qM8S4XJyJK6i0CSSby_wbKiay7VGJw,8148
13
- realign/commands/__init__.py,sha256=GG6IMw6fUBQAXGJDFJvOOQgv6pkiRSfMh8z3AYXTyRM,31
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.3.dist-info/METADATA,sha256=aHvGzs0gfRaJI8HBTXMA-4h-V42mHAKmMROKjSk75SE,1398
22
- aline_ai-0.2.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
23
- aline_ai-0.2.3.dist-info/entry_points.txt,sha256=h-NocHDzSueXfsepHTIdRPNQzhNZQPAztJfldd-mQTE,202
24
- aline_ai-0.2.3.dist-info/top_level.txt,sha256=yIL3s2xv9nf1GwD5n71Aq_JEIV4AfzCIDNKBzewuRm4,8
25
- aline_ai-0.2.3.dist-info/RECORD,,
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
@@ -1,3 +1,3 @@
1
1
  """Aline - AI Agent Chat Session Tracker."""
2
2
 
3
- __version__ = "0.2.3"
3
+ __version__ = "0.2.5"
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."""
@@ -1 +1,5 @@
1
1
  """ReAlign commands module."""
2
+
3
+ from . import init, search, show, config, commit, auto_commit, review, hide, push
4
+
5
+ __all__ = ["init", "search", "show", "config", "commit", "auto_commit", "review", "hide", "push"]