Run extraction under the Max OAuth subscription via `claude -p` instead of the per-token Anthropic API. The new src/second_brain/llm/claude_cli.py spawns the CLI in a hermetic tempdir so the host project's CLAUDE.md, hooks, MCP config, and settings don't leak into the prompt. Uses --json-schema with LLMExtraction.model_json_schema() so the CLI guarantees valid structured output — replaces the brittle markdown-fence stripping in the old engine. The Anthropic SDK is preserved as an optional "api" backend selectable via config. While in here, fix a handful of blockers that the smoke test surfaced: - scheduler filtered ANALYZED instead of TRANSCRIBED, so it never actually advanced any sources - process command read sources in a closed session, raising DetachedInstanceError before any work happened - config.prompts_dir walked one parent too many, resolving outside the project and forcing the fallback prompt for every domain - compiler called git rev-parse against a vault that was never git-init'd; now auto-inits with an empty seed commit and skips empty commits cleanly - datetime.utcnow() deprecated in 3.12+ — single utcnow() helper in models.py keeps naive UTC semantics so no DB migration is needed - sess.query(...).get() deprecated in SA 2.x → sess.get(...) - dead `import anthropic` removed from compiler Smoke test (article → process → accept → compile) succeeds end-to-end with ANTHROPIC_API_KEY unset. a-review run saved under reviews/. Co-Authored-By: Claude Opus 4 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| wiki.py | ||