methodproof 0.7.3__tar.gz → 0.7.4__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.7.3 → methodproof-0.7.4}/PKG-INFO +1 -1
- {methodproof-0.7.3 → methodproof-0.7.4}/methodproof/__init__.py +1 -1
- {methodproof-0.7.3 → methodproof-0.7.4}/methodproof/cli.py +7 -4
- {methodproof-0.7.3 → methodproof-0.7.4}/methodproof/config.py +13 -3
- {methodproof-0.7.3 → methodproof-0.7.4}/pyproject.toml +1 -1
- {methodproof-0.7.3 → methodproof-0.7.4}/.github/workflows/ci.yml +0 -0
- {methodproof-0.7.3 → methodproof-0.7.4}/.gitignore +0 -0
- {methodproof-0.7.3 → methodproof-0.7.4}/CHANGELOG.md +0 -0
- {methodproof-0.7.3 → methodproof-0.7.4}/LICENSE +0 -0
- {methodproof-0.7.3 → methodproof-0.7.4}/README.md +0 -0
- {methodproof-0.7.3 → methodproof-0.7.4}/methodproof/__main__.py +0 -0
- {methodproof-0.7.3 → methodproof-0.7.4}/methodproof/_daemon.py +0 -0
- {methodproof-0.7.3 → methodproof-0.7.4}/methodproof/agents/__init__.py +0 -0
- {methodproof-0.7.3 → methodproof-0.7.4}/methodproof/agents/base.py +0 -0
- {methodproof-0.7.3 → methodproof-0.7.4}/methodproof/agents/music.py +0 -0
- {methodproof-0.7.3 → methodproof-0.7.4}/methodproof/agents/terminal.py +0 -0
- {methodproof-0.7.3 → methodproof-0.7.4}/methodproof/agents/watcher.py +0 -0
- {methodproof-0.7.3 → methodproof-0.7.4}/methodproof/analysis.py +0 -0
- {methodproof-0.7.3 → methodproof-0.7.4}/methodproof/binding.py +0 -0
- {methodproof-0.7.3 → methodproof-0.7.4}/methodproof/bip39.py +0 -0
- {methodproof-0.7.3 → methodproof-0.7.4}/methodproof/bridge.py +0 -0
- {methodproof-0.7.3 → methodproof-0.7.4}/methodproof/crypto.py +0 -0
- {methodproof-0.7.3 → methodproof-0.7.4}/methodproof/e2e.py +0 -0
- {methodproof-0.7.3 → methodproof-0.7.4}/methodproof/graph.py +0 -0
- {methodproof-0.7.3 → methodproof-0.7.4}/methodproof/hook.py +0 -0
- {methodproof-0.7.3 → methodproof-0.7.4}/methodproof/hooks/__init__.py +0 -0
- {methodproof-0.7.3 → methodproof-0.7.4}/methodproof/hooks/claude_code.py +0 -0
- {methodproof-0.7.3 → methodproof-0.7.4}/methodproof/hooks/claude_code.sh +0 -0
- {methodproof-0.7.3 → methodproof-0.7.4}/methodproof/hooks/cline_hook.sh +0 -0
- {methodproof-0.7.3 → methodproof-0.7.4}/methodproof/hooks/codex_hook.sh +0 -0
- {methodproof-0.7.3 → methodproof-0.7.4}/methodproof/hooks/gemini_hook.sh +0 -0
- {methodproof-0.7.3 → methodproof-0.7.4}/methodproof/hooks/install.py +0 -0
- {methodproof-0.7.3 → methodproof-0.7.4}/methodproof/hooks/kiro_hook.sh +0 -0
- {methodproof-0.7.3 → methodproof-0.7.4}/methodproof/hooks/mcp_register.py +0 -0
- {methodproof-0.7.3 → methodproof-0.7.4}/methodproof/hooks/openclaw/HOOK.md +0 -0
- {methodproof-0.7.3 → methodproof-0.7.4}/methodproof/hooks/openclaw/handler.ts +0 -0
- {methodproof-0.7.3 → methodproof-0.7.4}/methodproof/hooks/openclaw_install.py +0 -0
- {methodproof-0.7.3 → methodproof-0.7.4}/methodproof/hooks/opencode_plugin.js +0 -0
- {methodproof-0.7.3 → methodproof-0.7.4}/methodproof/hooks/wrappers.py +0 -0
- {methodproof-0.7.3 → methodproof-0.7.4}/methodproof/integrity.py +0 -0
- {methodproof-0.7.3 → methodproof-0.7.4}/methodproof/kdf.py +0 -0
- {methodproof-0.7.3 → methodproof-0.7.4}/methodproof/keychain.py +0 -0
- {methodproof-0.7.3 → methodproof-0.7.4}/methodproof/live.py +0 -0
- {methodproof-0.7.3 → methodproof-0.7.4}/methodproof/lock.py +0 -0
- {methodproof-0.7.3 → methodproof-0.7.4}/methodproof/mcp.py +0 -0
- {methodproof-0.7.3 → methodproof-0.7.4}/methodproof/migrate_db.py +0 -0
- {methodproof-0.7.3 → methodproof-0.7.4}/methodproof/proxy.py +0 -0
- {methodproof-0.7.3 → methodproof-0.7.4}/methodproof/proxy_daemon.py +0 -0
- {methodproof-0.7.3 → methodproof-0.7.4}/methodproof/repos.py +0 -0
- {methodproof-0.7.3 → methodproof-0.7.4}/methodproof/skills/methodproof/SKILL.md +0 -0
- {methodproof-0.7.3 → methodproof-0.7.4}/methodproof/store.py +0 -0
- {methodproof-0.7.3 → methodproof-0.7.4}/methodproof/sync.py +0 -0
- {methodproof-0.7.3 → methodproof-0.7.4}/methodproof/viewer.py +0 -0
- {methodproof-0.7.3 → methodproof-0.7.4}/methodproof/wordlist.py +0 -0
- {methodproof-0.7.3 → methodproof-0.7.4}/test_windows_compat.py +0 -0
- {methodproof-0.7.3 → methodproof-0.7.4}/tests/__init__.py +0 -0
- {methodproof-0.7.3 → methodproof-0.7.4}/tests/test_analysis.py +0 -0
- {methodproof-0.7.3 → methodproof-0.7.4}/tests/test_graph.py +0 -0
- {methodproof-0.7.3 → methodproof-0.7.4}/tests/test_hooks.py +0 -0
- {methodproof-0.7.3 → methodproof-0.7.4}/tests/test_live.py +0 -0
- {methodproof-0.7.3 → methodproof-0.7.4}/tests/test_openclaw_hooks.py +0 -0
- {methodproof-0.7.3 → methodproof-0.7.4}/tests/test_security.py +0 -0
- {methodproof-0.7.3 → methodproof-0.7.4}/tests/test_store.py +0 -0
- {methodproof-0.7.3 → methodproof-0.7.4}/tests/test_wrappers.py +0 -0
- {methodproof-0.7.3 → methodproof-0.7.4}/uv.lock +0 -0
|
@@ -1329,13 +1329,15 @@ def cmd_login(args: argparse.Namespace) -> None:
|
|
|
1329
1329
|
|
|
1330
1330
|
|
|
1331
1331
|
def cmd_push(args: argparse.Namespace) -> None:
|
|
1332
|
-
|
|
1332
|
+
local = getattr(args, "local", False)
|
|
1333
|
+
cfg = config.load(local=local)
|
|
1333
1334
|
if not cfg.get("token"):
|
|
1334
|
-
|
|
1335
|
+
target = "local API" if local else "platform"
|
|
1336
|
+
print(f"Run `methodproof login{' --api-url http://localhost:8000' if local else ''}` first.")
|
|
1335
1337
|
sys.exit(1)
|
|
1336
1338
|
from methodproof.sync import sync_research_consent
|
|
1337
1339
|
sync_research_consent(cfg["token"], cfg["api_url"])
|
|
1338
|
-
cfg = config.load()
|
|
1340
|
+
cfg = config.load(local=local)
|
|
1339
1341
|
sid = args.session_id or _latest()
|
|
1340
1342
|
if not sid:
|
|
1341
1343
|
print("No sessions to push.")
|
|
@@ -1343,7 +1345,7 @@ def cmd_push(args: argparse.Namespace) -> None:
|
|
|
1343
1345
|
from methodproof.sync import push
|
|
1344
1346
|
remote_id = push(sid, cfg["token"], cfg["api_url"])
|
|
1345
1347
|
app = _app_url(cfg["api_url"])
|
|
1346
|
-
print(f"Pushed {sid[:8]} (private).")
|
|
1348
|
+
print(f"Pushed {sid[:8]} → {cfg['api_url']} (private).")
|
|
1347
1349
|
print(f" View: {app}/personal/sessions/{remote_id}")
|
|
1348
1350
|
print(f" Publish: mp publish {sid[:8]}")
|
|
1349
1351
|
|
|
@@ -1744,6 +1746,7 @@ def main() -> None:
|
|
|
1744
1746
|
sub.add_parser("logout", help="Clear login credentials (keeps consent and sessions)")
|
|
1745
1747
|
pu = sub.add_parser("push", help="Upload privately to your account")
|
|
1746
1748
|
pu.add_argument("session_id", nargs="?")
|
|
1749
|
+
pu.add_argument("--local", action="store_true", help="Push to local dev API (localhost:8000)")
|
|
1747
1750
|
tg = sub.add_parser("tag", help="Tag a session")
|
|
1748
1751
|
tg.add_argument("session_id", help="Session ID (prefix ok)")
|
|
1749
1752
|
tg.add_argument("tags", help="Comma-separated tags")
|
|
@@ -134,10 +134,20 @@ def secure_file(path: Path) -> None:
|
|
|
134
134
|
path.chmod(0o600)
|
|
135
135
|
|
|
136
136
|
|
|
137
|
-
|
|
137
|
+
LOCAL_API_URL = "http://localhost:8000"
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
def load(local: bool = False) -> dict[str, Any]:
|
|
138
141
|
if not CONFIG.exists():
|
|
139
|
-
|
|
140
|
-
|
|
142
|
+
cfg = dict(_DEFAULTS)
|
|
143
|
+
else:
|
|
144
|
+
cfg = {**_DEFAULTS, **json.loads(CONFIG.read_text())}
|
|
145
|
+
env_url = os.environ.get("METHODPROOF_API_URL")
|
|
146
|
+
if local:
|
|
147
|
+
cfg["api_url"] = LOCAL_API_URL
|
|
148
|
+
elif env_url:
|
|
149
|
+
cfg["api_url"] = env_url
|
|
150
|
+
return cfg
|
|
141
151
|
|
|
142
152
|
|
|
143
153
|
def save(cfg: dict[str, Any]) -> None:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "methodproof"
|
|
3
|
-
version = "0.7.
|
|
3
|
+
version = "0.7.4"
|
|
4
4
|
description = "See how you code. Capture and visualize your engineering process."
|
|
5
5
|
requires-python = ">=3.11"
|
|
6
6
|
dependencies = ["watchdog>=4.0", "websocket-client>=1.7", "cryptography>=43.0", "keyring>=25.0"]
|
|
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
|
|
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
|