← Files BetterContextARCHIVED FILE
scripts/actions.py
1.57 KB · Oct 2, 2026 · 00:36 UTC
#!/usr/bin/env python3
"""Run BetterContext actions locally without registering an MCP server."""
import argparse
import json
from pathlib import Path
import sqlite3
import subprocess
import sys
sys.dont_write_bytecode = True
from memory_mcp import TOOLS, BY_NAME, invoke
def main():
for stream in (sys.stdout, sys.stderr):
if hasattr(stream, 'reconfigure'):
stream.reconfigure(encoding='utf-8')
parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument('action', nargs='?', default='list', choices=['list', *BY_NAME])
values = parser.add_mutually_exclusive_group()
values.add_argument('--arguments-file', type=Path, help='UTF-8 JSON object containing action arguments.')
values.add_argument('--arguments-json', help='A JSON object; prefer a file to avoid shell quoting problems.')
args = parser.parse_args()
if args.action == 'list':
result = {'transport': 'local-command', 'actions': TOOLS}
else:
raw = args.arguments_file.read_text(encoding='utf-8-sig') if args.arguments_file else (args.arguments_json or '{}')
result = invoke(args.action, json.loads(raw))
if args.action == 'memory_health':
result['transport'] = 'local-command'
print(json.dumps(result, ensure_ascii=False, indent=2, default=str))
if __name__ == '__main__':
try:
main()
except (ValueError, OSError, sqlite3.Error, subprocess.SubprocessError) as error:
print(json.dumps({'error':str(error)}, ensure_ascii=False), file=sys.stderr)
raise SystemExit(2)
SHA-256: a1a250e88c3a25ea417b6697e664484055aedfafe8e7d9a61d0c2054f8bafd39