methodproof 0.4.2__tar.gz → 0.4.3__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.
- methodproof-0.4.3/.github/workflows/ci.yml +35 -0
- {methodproof-0.4.2 → methodproof-0.4.3}/PKG-INFO +1 -1
- {methodproof-0.4.2 → methodproof-0.4.3}/methodproof/__init__.py +1 -1
- {methodproof-0.4.2 → methodproof-0.4.3}/methodproof/cli.py +26 -5
- {methodproof-0.4.2 → methodproof-0.4.3}/pyproject.toml +1 -1
- methodproof-0.4.2/.github/workflows/ci.yml +0 -122
- {methodproof-0.4.2 → methodproof-0.4.3}/.gitignore +0 -0
- {methodproof-0.4.2 → methodproof-0.4.3}/CHANGELOG.md +0 -0
- {methodproof-0.4.2 → methodproof-0.4.3}/LICENSE +0 -0
- {methodproof-0.4.2 → methodproof-0.4.3}/README.md +0 -0
- {methodproof-0.4.2 → methodproof-0.4.3}/methodproof/__main__.py +0 -0
- {methodproof-0.4.2 → methodproof-0.4.3}/methodproof/agents/__init__.py +0 -0
- {methodproof-0.4.2 → methodproof-0.4.3}/methodproof/agents/base.py +0 -0
- {methodproof-0.4.2 → methodproof-0.4.3}/methodproof/agents/music.py +0 -0
- {methodproof-0.4.2 → methodproof-0.4.3}/methodproof/agents/terminal.py +0 -0
- {methodproof-0.4.2 → methodproof-0.4.3}/methodproof/agents/watcher.py +0 -0
- {methodproof-0.4.2 → methodproof-0.4.3}/methodproof/analysis.py +0 -0
- {methodproof-0.4.2 → methodproof-0.4.3}/methodproof/bridge.py +0 -0
- {methodproof-0.4.2 → methodproof-0.4.3}/methodproof/config.py +0 -0
- {methodproof-0.4.2 → methodproof-0.4.3}/methodproof/crypto.py +0 -0
- {methodproof-0.4.2 → methodproof-0.4.3}/methodproof/graph.py +0 -0
- {methodproof-0.4.2 → methodproof-0.4.3}/methodproof/hook.py +0 -0
- {methodproof-0.4.2 → methodproof-0.4.3}/methodproof/hooks/__init__.py +0 -0
- {methodproof-0.4.2 → methodproof-0.4.3}/methodproof/hooks/claude_code.py +0 -0
- {methodproof-0.4.2 → methodproof-0.4.3}/methodproof/hooks/claude_code.sh +0 -0
- {methodproof-0.4.2 → methodproof-0.4.3}/methodproof/hooks/cline_hook.sh +0 -0
- {methodproof-0.4.2 → methodproof-0.4.3}/methodproof/hooks/codex_hook.sh +0 -0
- {methodproof-0.4.2 → methodproof-0.4.3}/methodproof/hooks/gemini_hook.sh +0 -0
- {methodproof-0.4.2 → methodproof-0.4.3}/methodproof/hooks/install.py +0 -0
- {methodproof-0.4.2 → methodproof-0.4.3}/methodproof/hooks/kiro_hook.sh +0 -0
- {methodproof-0.4.2 → methodproof-0.4.3}/methodproof/hooks/mcp_register.py +0 -0
- {methodproof-0.4.2 → methodproof-0.4.3}/methodproof/hooks/openclaw/HOOK.md +0 -0
- {methodproof-0.4.2 → methodproof-0.4.3}/methodproof/hooks/openclaw/handler.ts +0 -0
- {methodproof-0.4.2 → methodproof-0.4.3}/methodproof/hooks/openclaw_install.py +0 -0
- {methodproof-0.4.2 → methodproof-0.4.3}/methodproof/hooks/opencode_plugin.js +0 -0
- {methodproof-0.4.2 → methodproof-0.4.3}/methodproof/hooks/wrappers.py +0 -0
- {methodproof-0.4.2 → methodproof-0.4.3}/methodproof/integrity.py +0 -0
- {methodproof-0.4.2 → methodproof-0.4.3}/methodproof/live.py +0 -0
- {methodproof-0.4.2 → methodproof-0.4.3}/methodproof/mcp.py +0 -0
- {methodproof-0.4.2 → methodproof-0.4.3}/methodproof/proxy.py +0 -0
- {methodproof-0.4.2 → methodproof-0.4.3}/methodproof/proxy_daemon.py +0 -0
- {methodproof-0.4.2 → methodproof-0.4.3}/methodproof/repos.py +0 -0
- {methodproof-0.4.2 → methodproof-0.4.3}/methodproof/skills/methodproof/SKILL.md +0 -0
- {methodproof-0.4.2 → methodproof-0.4.3}/methodproof/store.py +0 -0
- {methodproof-0.4.2 → methodproof-0.4.3}/methodproof/sync.py +0 -0
- {methodproof-0.4.2 → methodproof-0.4.3}/methodproof/viewer.py +0 -0
- {methodproof-0.4.2 → methodproof-0.4.3}/test_windows_compat.py +0 -0
- {methodproof-0.4.2 → methodproof-0.4.3}/tests/__init__.py +0 -0
- {methodproof-0.4.2 → methodproof-0.4.3}/tests/test_analysis.py +0 -0
- {methodproof-0.4.2 → methodproof-0.4.3}/tests/test_graph.py +0 -0
- {methodproof-0.4.2 → methodproof-0.4.3}/tests/test_hooks.py +0 -0
- {methodproof-0.4.2 → methodproof-0.4.3}/tests/test_live.py +0 -0
- {methodproof-0.4.2 → methodproof-0.4.3}/tests/test_openclaw_hooks.py +0 -0
- {methodproof-0.4.2 → methodproof-0.4.3}/tests/test_store.py +0 -0
- {methodproof-0.4.2 → methodproof-0.4.3}/tests/test_wrappers.py +0 -0
- {methodproof-0.4.2 → methodproof-0.4.3}/uv.lock +0 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
tags: ["v*"]
|
|
7
|
+
pull_request:
|
|
8
|
+
branches: [main]
|
|
9
|
+
|
|
10
|
+
jobs:
|
|
11
|
+
test:
|
|
12
|
+
runs-on: ubuntu-latest
|
|
13
|
+
steps:
|
|
14
|
+
- uses: actions/checkout@v4
|
|
15
|
+
- uses: astral-sh/setup-uv@v4
|
|
16
|
+
with: { version: "latest" }
|
|
17
|
+
- uses: actions/setup-python@v5
|
|
18
|
+
with: { python-version: "3.12" }
|
|
19
|
+
- run: uv sync --frozen
|
|
20
|
+
- run: uv run pytest tests/ -v --tb=short
|
|
21
|
+
|
|
22
|
+
publish:
|
|
23
|
+
needs: test
|
|
24
|
+
if: startsWith(github.ref, 'refs/tags/v')
|
|
25
|
+
runs-on: ubuntu-latest
|
|
26
|
+
permissions:
|
|
27
|
+
id-token: write
|
|
28
|
+
steps:
|
|
29
|
+
- uses: actions/checkout@v4
|
|
30
|
+
- uses: astral-sh/setup-uv@v4
|
|
31
|
+
with: { version: "latest" }
|
|
32
|
+
- uses: actions/setup-python@v5
|
|
33
|
+
with: { python-version: "3.12" }
|
|
34
|
+
- run: uv build
|
|
35
|
+
- uses: pypa/gh-action-pypi-publish@release/v1
|
|
@@ -509,15 +509,20 @@ def cmd_uninstall(args: argparse.Namespace) -> None:
|
|
|
509
509
|
"""Remove all MethodProof hooks, data, and config."""
|
|
510
510
|
import shutil
|
|
511
511
|
|
|
512
|
+
keep_sessions = getattr(args, "keep_sessions", False)
|
|
513
|
+
|
|
512
514
|
if not args.force:
|
|
513
515
|
sessions = store.list_sessions()
|
|
514
516
|
unsynced = [s for s in sessions if not s["synced"]]
|
|
515
|
-
if
|
|
516
|
-
print(f"
|
|
517
|
-
answer = input("\n Remove all MethodProof
|
|
517
|
+
if sessions:
|
|
518
|
+
print(f" {len(sessions)} session(s) on disk ({len(unsynced)} not pushed).")
|
|
519
|
+
answer = input("\n Remove all MethodProof hooks and config? [y/N]: ").strip().lower()
|
|
518
520
|
if answer not in ("y", "yes"):
|
|
519
521
|
print(" Cancelled.")
|
|
520
522
|
return
|
|
523
|
+
if sessions and not keep_sessions:
|
|
524
|
+
keep = input(" Keep session data? [Y/n]: ").strip().lower()
|
|
525
|
+
keep_sessions = keep != "n"
|
|
521
526
|
|
|
522
527
|
removed = []
|
|
523
528
|
|
|
@@ -572,14 +577,29 @@ def cmd_uninstall(args: argparse.Namespace) -> None:
|
|
|
572
577
|
|
|
573
578
|
# Data directory
|
|
574
579
|
if config.DIR.exists():
|
|
575
|
-
|
|
576
|
-
|
|
580
|
+
if keep_sessions and config.DB_PATH.exists():
|
|
581
|
+
# Remove everything except the session database
|
|
582
|
+
for item in config.DIR.iterdir():
|
|
583
|
+
if item == config.DB_PATH:
|
|
584
|
+
continue
|
|
585
|
+
if item.is_dir():
|
|
586
|
+
shutil.rmtree(item)
|
|
587
|
+
else:
|
|
588
|
+
item.unlink()
|
|
589
|
+
removed.append(str(item))
|
|
590
|
+
removed.append(f"Kept: {config.DB_PATH}")
|
|
591
|
+
else:
|
|
592
|
+
shutil.rmtree(config.DIR)
|
|
593
|
+
removed.append(str(config.DIR))
|
|
577
594
|
|
|
578
595
|
if removed:
|
|
579
596
|
print("\n Removed:")
|
|
580
597
|
for r in removed:
|
|
581
598
|
print(f" {r}")
|
|
582
599
|
print("\n To remove the CLI itself: pip uninstall methodproof")
|
|
600
|
+
if keep_sessions:
|
|
601
|
+
print(f" Session data preserved at: {config.DB_PATH}")
|
|
602
|
+
print(" Re-install and run `mp init` to resume.")
|
|
583
603
|
print(" Restart your shell to clear hooks.\n")
|
|
584
604
|
|
|
585
605
|
|
|
@@ -1425,6 +1445,7 @@ def main() -> None:
|
|
|
1425
1445
|
rs.add_argument("--force", "-f", action="store_true", help="Skip confirmation")
|
|
1426
1446
|
un = sub.add_parser("uninstall", help="Remove all hooks, data, and config")
|
|
1427
1447
|
un.add_argument("--force", "-f", action="store_true", help="Skip confirmation")
|
|
1448
|
+
un.add_argument("--keep-sessions", action="store_true", help="Preserve session database")
|
|
1428
1449
|
ext = sub.add_parser("extension", help="Browser extension pairing and status")
|
|
1429
1450
|
ext_sub = ext.add_subparsers(dest="ext_cmd")
|
|
1430
1451
|
ext_sub.add_parser("pair", help="Pair extension to active session")
|
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
name: CI
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
push:
|
|
5
|
-
branches: [main]
|
|
6
|
-
tags: ["v*"]
|
|
7
|
-
pull_request:
|
|
8
|
-
branches: [main]
|
|
9
|
-
|
|
10
|
-
jobs:
|
|
11
|
-
test:
|
|
12
|
-
runs-on: ubuntu-latest
|
|
13
|
-
steps:
|
|
14
|
-
- uses: actions/checkout@v4
|
|
15
|
-
- uses: astral-sh/setup-uv@v4
|
|
16
|
-
with: { version: "latest" }
|
|
17
|
-
- uses: actions/setup-python@v5
|
|
18
|
-
with: { python-version: "3.12" }
|
|
19
|
-
- run: uv sync --frozen
|
|
20
|
-
- run: uv run pytest tests/ -v --tb=short
|
|
21
|
-
|
|
22
|
-
publish:
|
|
23
|
-
needs: test
|
|
24
|
-
if: startsWith(github.ref, 'refs/tags/v')
|
|
25
|
-
runs-on: ubuntu-latest
|
|
26
|
-
permissions:
|
|
27
|
-
id-token: write
|
|
28
|
-
steps:
|
|
29
|
-
- uses: actions/checkout@v4
|
|
30
|
-
- uses: astral-sh/setup-uv@v4
|
|
31
|
-
with: { version: "latest" }
|
|
32
|
-
- uses: actions/setup-python@v5
|
|
33
|
-
with: { python-version: "3.12" }
|
|
34
|
-
- run: uv build
|
|
35
|
-
- uses: pypa/gh-action-pypi-publish@release/v1
|
|
36
|
-
|
|
37
|
-
update-homebrew:
|
|
38
|
-
needs: publish
|
|
39
|
-
if: startsWith(github.ref, 'refs/tags/v')
|
|
40
|
-
runs-on: ubuntu-latest
|
|
41
|
-
steps:
|
|
42
|
-
- uses: actions/checkout@v4
|
|
43
|
-
|
|
44
|
-
- name: Extract version from tag
|
|
45
|
-
id: version
|
|
46
|
-
run: echo "version=${GITHUB_REF#refs/tags/v}" >> "$GITHUB_OUTPUT"
|
|
47
|
-
|
|
48
|
-
- name: Wait for PyPI availability
|
|
49
|
-
run: |
|
|
50
|
-
VERSION=${{ steps.version.outputs.version }}
|
|
51
|
-
for i in $(seq 1 30); do
|
|
52
|
-
URL="https://files.pythonhosted.org/packages/source/m/methodproof/methodproof-${VERSION}.tar.gz"
|
|
53
|
-
if curl -sfIL "$URL" > /dev/null 2>&1; then
|
|
54
|
-
echo "Package available on PyPI"
|
|
55
|
-
exit 0
|
|
56
|
-
fi
|
|
57
|
-
echo "Waiting for PyPI... ($i/30)"
|
|
58
|
-
sleep 10
|
|
59
|
-
done
|
|
60
|
-
echo "::error::Package not available on PyPI after 5 minutes"
|
|
61
|
-
exit 1
|
|
62
|
-
|
|
63
|
-
- name: Compute SHA256
|
|
64
|
-
id: sha
|
|
65
|
-
run: |
|
|
66
|
-
VERSION=${{ steps.version.outputs.version }}
|
|
67
|
-
URL="https://files.pythonhosted.org/packages/source/m/methodproof/methodproof-${VERSION}.tar.gz"
|
|
68
|
-
SHA=$(curl -sfL "$URL" | sha256sum | cut -d' ' -f1)
|
|
69
|
-
echo "sha256=$SHA" >> "$GITHUB_OUTPUT"
|
|
70
|
-
echo "url=$URL" >> "$GITHUB_OUTPUT"
|
|
71
|
-
|
|
72
|
-
- name: Update Homebrew formula
|
|
73
|
-
env:
|
|
74
|
-
TAP_TOKEN: ${{ secrets.HOMEBREW_TAP_TOKEN }}
|
|
75
|
-
run: |
|
|
76
|
-
VERSION=${{ steps.version.outputs.version }}
|
|
77
|
-
SHA=${{ steps.sha.outputs.sha256 }}
|
|
78
|
-
URL=${{ steps.sha.outputs.url }}
|
|
79
|
-
|
|
80
|
-
git clone https://x-access-token:${TAP_TOKEN}@github.com/MethodProof/homebrew-tools.git /tmp/tap
|
|
81
|
-
cd /tmp/tap
|
|
82
|
-
|
|
83
|
-
cat > Formula/mp.rb << FORMULA
|
|
84
|
-
class Mp < Formula
|
|
85
|
-
include Language::Python::Virtualenv
|
|
86
|
-
|
|
87
|
-
desc "Capture and visualize your engineering process as a knowledge graph"
|
|
88
|
-
homepage "https://github.com/MethodProof/methodproof-cli"
|
|
89
|
-
url "${URL}"
|
|
90
|
-
sha256 "${SHA}"
|
|
91
|
-
license "Apache-2.0"
|
|
92
|
-
|
|
93
|
-
depends_on "python@3.13"
|
|
94
|
-
|
|
95
|
-
resource "watchdog" do
|
|
96
|
-
url "https://files.pythonhosted.org/packages/source/w/watchdog/watchdog-6.0.0.tar.gz"
|
|
97
|
-
sha256 "9ddf7c82fda3ae8e24decda1338ede66e1c99883db93711d8fb941eaa2d8c282"
|
|
98
|
-
end
|
|
99
|
-
|
|
100
|
-
resource "websocket-client" do
|
|
101
|
-
url "https://files.pythonhosted.org/packages/source/w/websocket-client/websocket_client-1.8.0.tar.gz"
|
|
102
|
-
sha256 "3239df9f44da632f96012472805d40a23281a991027ce11d2f45a6f24ac4c3da"
|
|
103
|
-
end
|
|
104
|
-
|
|
105
|
-
def install
|
|
106
|
-
virtualenv_install_with_resources
|
|
107
|
-
end
|
|
108
|
-
|
|
109
|
-
test do
|
|
110
|
-
assert_match "methodproof", shell_output("#{bin}/methodproof --help")
|
|
111
|
-
end
|
|
112
|
-
end
|
|
113
|
-
FORMULA
|
|
114
|
-
|
|
115
|
-
# Fix heredoc indentation
|
|
116
|
-
sed -i 's/^ //' Formula/mp.rb
|
|
117
|
-
|
|
118
|
-
git config user.name "github-actions[bot]"
|
|
119
|
-
git config user.email "github-actions[bot]@users.noreply.github.com"
|
|
120
|
-
git add Formula/mp.rb
|
|
121
|
-
git commit -m "update methodproof to ${VERSION}"
|
|
122
|
-
git push
|
|
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
|