zotero-cli-ai 0.11.0__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.
- zotero_cli_ai-0.11.0/.github/workflows/ci.yml +38 -0
- zotero_cli_ai-0.11.0/.github/workflows/docs.yml +52 -0
- zotero_cli_ai-0.11.0/.github/workflows/publish.yml +31 -0
- zotero_cli_ai-0.11.0/.gitignore +30 -0
- zotero_cli_ai-0.11.0/.pre-commit-config.yaml +21 -0
- zotero_cli_ai-0.11.0/CHANGELOG.md +519 -0
- zotero_cli_ai-0.11.0/CLAUDE.md +100 -0
- zotero_cli_ai-0.11.0/CONTRIBUTING.md +39 -0
- zotero_cli_ai-0.11.0/LICENSE +235 -0
- zotero_cli_ai-0.11.0/LICENSE-COMMERCIAL +33 -0
- zotero_cli_ai-0.11.0/PKG-INFO +33 -0
- zotero_cli_ai-0.11.0/README.md +133 -0
- zotero_cli_ai-0.11.0/README_CN.md +143 -0
- zotero_cli_ai-0.11.0/ROADMAP.md +49 -0
- zotero_cli_ai-0.11.0/asserts/architecture.png +0 -0
- zotero_cli_ai-0.11.0/asserts/banner_official.png +0 -0
- zotero_cli_ai-0.11.0/asserts/claude_icon.png +0 -0
- zotero_cli_ai-0.11.0/asserts/zotero_logo.png +0 -0
- zotero_cli_ai-0.11.0/docs/agent-interface.md +651 -0
- zotero_cli_ai-0.11.0/docs/assets/architecture.png +0 -0
- zotero_cli_ai-0.11.0/docs/assets/banner_official.png +0 -0
- zotero_cli_ai-0.11.0/docs/en/changelog.md +145 -0
- zotero_cli_ai-0.11.0/docs/en/comparison.md +35 -0
- zotero_cli_ai-0.11.0/docs/en/getting-started/installation.md +60 -0
- zotero_cli_ai-0.11.0/docs/en/getting-started/quickstart.md +63 -0
- zotero_cli_ai-0.11.0/docs/en/getting-started/setup.md +90 -0
- zotero_cli_ai-0.11.0/docs/en/guide/citations.md +37 -0
- zotero_cli_ai-0.11.0/docs/en/guide/collections.md +65 -0
- zotero_cli_ai-0.11.0/docs/en/guide/item-management.md +69 -0
- zotero_cli_ai-0.11.0/docs/en/guide/notes-tags.md +45 -0
- zotero_cli_ai-0.11.0/docs/en/guide/pdf.md +41 -0
- zotero_cli_ai-0.11.0/docs/en/guide/search.md +96 -0
- zotero_cli_ai-0.11.0/docs/en/guide/update-status.md +41 -0
- zotero_cli_ai-0.11.0/docs/en/guide/workspace.md +92 -0
- zotero_cli_ai-0.11.0/docs/en/index.md +33 -0
- zotero_cli_ai-0.11.0/docs/en/mcp/claude-code.md +76 -0
- zotero_cli_ai-0.11.0/docs/en/mcp/setup.md +68 -0
- zotero_cli_ai-0.11.0/docs/en/mcp/tools.md +66 -0
- zotero_cli_ai-0.11.0/docs/en/reference/agent-interface.md +273 -0
- zotero_cli_ai-0.11.0/docs/en/reference/cli.md +10 -0
- zotero_cli_ai-0.11.0/docs/zh/changelog.md +145 -0
- zotero_cli_ai-0.11.0/docs/zh/comparison.md +35 -0
- zotero_cli_ai-0.11.0/docs/zh/getting-started/installation.md +60 -0
- zotero_cli_ai-0.11.0/docs/zh/getting-started/quickstart.md +63 -0
- zotero_cli_ai-0.11.0/docs/zh/getting-started/setup.md +90 -0
- zotero_cli_ai-0.11.0/docs/zh/guide/citations.md +37 -0
- zotero_cli_ai-0.11.0/docs/zh/guide/collections.md +65 -0
- zotero_cli_ai-0.11.0/docs/zh/guide/item-management.md +69 -0
- zotero_cli_ai-0.11.0/docs/zh/guide/notes-tags.md +45 -0
- zotero_cli_ai-0.11.0/docs/zh/guide/pdf.md +41 -0
- zotero_cli_ai-0.11.0/docs/zh/guide/search.md +96 -0
- zotero_cli_ai-0.11.0/docs/zh/guide/update-status.md +41 -0
- zotero_cli_ai-0.11.0/docs/zh/guide/workspace.md +92 -0
- zotero_cli_ai-0.11.0/docs/zh/index.md +33 -0
- zotero_cli_ai-0.11.0/docs/zh/mcp/claude-code.md +75 -0
- zotero_cli_ai-0.11.0/docs/zh/mcp/setup.md +68 -0
- zotero_cli_ai-0.11.0/docs/zh/mcp/tools.md +66 -0
- zotero_cli_ai-0.11.0/docs/zh/reference/agent-interface.md +273 -0
- zotero_cli_ai-0.11.0/docs/zh/reference/cli.md +10 -0
- zotero_cli_ai-0.11.0/extension/zot-cli-bridge/README.md +88 -0
- zotero_cli_ai-0.11.0/extension/zot-cli-bridge/bootstrap.js +395 -0
- zotero_cli_ai-0.11.0/extension/zot-cli-bridge/icon.png +0 -0
- zotero_cli_ai-0.11.0/extension/zot-cli-bridge/manifest.json +20 -0
- zotero_cli_ai-0.11.0/mkdocs.yml +85 -0
- zotero_cli_ai-0.11.0/pyproject.toml +93 -0
- zotero_cli_ai-0.11.0/skill/zotero-cli/SKILL.md +86 -0
- zotero_cli_ai-0.11.0/skill/zotero-cli/references/commands.md +253 -0
- zotero_cli_ai-0.11.0/skill/zotero-cli/references/windows-encoding.md +90 -0
- zotero_cli_ai-0.11.0/skill/zotero-cli/references/workflows.md +96 -0
- zotero_cli_ai-0.11.0/skill/zotero-cli/references/workspaces.md +105 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/__init__.py +9 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/cli.py +318 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/commands/__init__.py +0 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/commands/_helpers.py +45 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/commands/add.py +374 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/commands/ask.py +87 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/commands/attach.py +160 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/commands/attachment.py +140 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/commands/bridge.py +127 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/commands/cite.py +227 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/commands/collection.py +288 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/commands/completions.py +54 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/commands/config.py +234 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/commands/delete.py +119 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/commands/duplicates.py +45 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/commands/enrich.py +142 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/commands/export.py +60 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/commands/find_pdf.py +112 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/commands/list_cmd.py +68 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/commands/mcp.py +25 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/commands/note.py +95 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/commands/open_cmd.py +82 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/commands/orphans.py +218 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/commands/pdf.py +285 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/commands/read.py +35 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/commands/recent.py +47 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/commands/relate.py +35 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/commands/rename.py +206 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/commands/schema.py +244 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/commands/search.py +77 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/commands/stats.py +41 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/commands/summarize.py +82 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/commands/summarize_all.py +50 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/commands/tag.py +91 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/commands/trash.py +99 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/commands/update.py +112 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/commands/update_status.py +254 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/commands/workspace.py +748 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/config.py +327 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/core/__init__.py +0 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/core/attachment_resolver.py +120 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/core/bridge_install.py +93 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/core/embedding_provider.py +17 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/core/embedding_router.py +47 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/core/enrich.py +103 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/core/idempotency.py +76 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/core/local_bridge.py +385 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/core/metadata_resolver.py +193 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/core/path_utils.py +47 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/core/pdf_cache.py +67 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/core/pdf_errors.py +3 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/core/pdf_extractor.py +987 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/core/providers/__init__.py +5 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/core/providers/aliyun.py +92 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/core/providers/jina.py +92 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/core/rag.py +394 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/core/rag_index.py +142 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/core/reader.py +1245 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/core/rename.py +210 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/core/semantic_scholar.py +185 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/core/version_check.py +70 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/core/workspace.py +125 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/core/writer.py +289 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/exit_codes.py +72 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/formatter.py +485 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/mcp_server.py +1905 -0
- zotero_cli_ai-0.11.0/src/zotero_cli_cc/models.py +101 -0
- zotero_cli_ai-0.11.0/tests/conftest.py +31 -0
- zotero_cli_ai-0.11.0/tests/fixtures/create_test_db.py +250 -0
- zotero_cli_ai-0.11.0/tests/fixtures/sensors-21-05067-v2.pdf:Zone.Identifier +4 -0
- zotero_cli_ai-0.11.0/tests/fixtures/storage/ATCH005/attention.pdf +47 -0
- zotero_cli_ai-0.11.0/tests/fixtures/storage/ATTN001/attention.pdf +47 -0
- zotero_cli_ai-0.11.0/tests/fixtures/test.pdf +47 -0
- zotero_cli_ai-0.11.0/tests/fixtures/test2.pdf +0 -0
- zotero_cli_ai-0.11.0/tests/fixtures/test3.pdf +0 -0
- zotero_cli_ai-0.11.0/tests/fixtures/zotero.sqlite +0 -0
- zotero_cli_ai-0.11.0/tests/test_add_pdf.py +80 -0
- zotero_cli_ai-0.11.0/tests/test_agent_interface.py +288 -0
- zotero_cli_ai-0.11.0/tests/test_agent_p1.py +200 -0
- zotero_cli_ai-0.11.0/tests/test_agent_p2.py +105 -0
- zotero_cli_ai-0.11.0/tests/test_ask.py +132 -0
- zotero_cli_ai-0.11.0/tests/test_attach.py +392 -0
- zotero_cli_ai-0.11.0/tests/test_attachment_resolver.py +129 -0
- zotero_cli_ai-0.11.0/tests/test_bridge_install.py +110 -0
- zotero_cli_ai-0.11.0/tests/test_cli_attachment.py +210 -0
- zotero_cli_ai-0.11.0/tests/test_cli_config.py +128 -0
- zotero_cli_ai-0.11.0/tests/test_cli_note.py +66 -0
- zotero_cli_ai-0.11.0/tests/test_cli_p0.py +195 -0
- zotero_cli_ai-0.11.0/tests/test_cli_p1.py +194 -0
- zotero_cli_ai-0.11.0/tests/test_cli_p2.py +86 -0
- zotero_cli_ai-0.11.0/tests/test_cli_p3.py +100 -0
- zotero_cli_ai-0.11.0/tests/test_cli_stats_open.py +92 -0
- zotero_cli_ai-0.11.0/tests/test_completions.py +13 -0
- zotero_cli_ai-0.11.0/tests/test_config.py +241 -0
- zotero_cli_ai-0.11.0/tests/test_duplicates.py +107 -0
- zotero_cli_ai-0.11.0/tests/test_enrich.py +188 -0
- zotero_cli_ai-0.11.0/tests/test_extractor_fallback.py +141 -0
- zotero_cli_ai-0.11.0/tests/test_extractor_grobid.py +114 -0
- zotero_cli_ai-0.11.0/tests/test_extractor_pdfium.py +56 -0
- zotero_cli_ai-0.11.0/tests/test_extractor_pdfplumber.py +82 -0
- zotero_cli_ai-0.11.0/tests/test_extractor_pymupdf.py +57 -0
- zotero_cli_ai-0.11.0/tests/test_find_pdf.py +238 -0
- zotero_cli_ai-0.11.0/tests/test_formatter.py +149 -0
- zotero_cli_ai-0.11.0/tests/test_group_library.py +130 -0
- zotero_cli_ai-0.11.0/tests/test_integration.py +69 -0
- zotero_cli_ai-0.11.0/tests/test_mcp_server.py +1335 -0
- zotero_cli_ai-0.11.0/tests/test_metadata_resolver.py +162 -0
- zotero_cli_ai-0.11.0/tests/test_models.py +42 -0
- zotero_cli_ai-0.11.0/tests/test_new_features.py +375 -0
- zotero_cli_ai-0.11.0/tests/test_orphans.py +182 -0
- zotero_cli_ai-0.11.0/tests/test_path_utils.py +51 -0
- zotero_cli_ai-0.11.0/tests/test_pdf_cache.py +54 -0
- zotero_cli_ai-0.11.0/tests/test_pdf_extractor.py +22 -0
- zotero_cli_ai-0.11.0/tests/test_pdf_integration.py +226 -0
- zotero_cli_ai-0.11.0/tests/test_rag.py +283 -0
- zotero_cli_ai-0.11.0/tests/test_reader.py +289 -0
- zotero_cli_ai-0.11.0/tests/test_rename.py +291 -0
- zotero_cli_ai-0.11.0/tests/test_summarize_all.py +31 -0
- zotero_cli_ai-0.11.0/tests/test_tier1_annotations.py +80 -0
- zotero_cli_ai-0.11.0/tests/test_tier1_recent.py +80 -0
- zotero_cli_ai-0.11.0/tests/test_tier1_search.py +108 -0
- zotero_cli_ai-0.11.0/tests/test_tier1_update.py +142 -0
- zotero_cli_ai-0.11.0/tests/test_trash.py +136 -0
- zotero_cli_ai-0.11.0/tests/test_update_status.py +124 -0
- zotero_cli_ai-0.11.0/tests/test_version_check.py +137 -0
- zotero_cli_ai-0.11.0/tests/test_workspace.py +291 -0
- zotero_cli_ai-0.11.0/tests/test_workspace_rag.py +238 -0
- zotero_cli_ai-0.11.0/tests/test_writer.py +144 -0
- zotero_cli_ai-0.11.0/uv.lock +2343 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [main]
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
test:
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
strategy:
|
|
13
|
+
matrix:
|
|
14
|
+
python-version: ["3.10", "3.11", "3.12", "3.13"]
|
|
15
|
+
steps:
|
|
16
|
+
- uses: actions/checkout@v4
|
|
17
|
+
- uses: astral-sh/setup-uv@v4
|
|
18
|
+
with:
|
|
19
|
+
python-version: ${{ matrix.python-version }}
|
|
20
|
+
enable-cache: true
|
|
21
|
+
- run: uv sync --locked --group dev --extra mcp
|
|
22
|
+
- run: uv run ruff check src/ tests/
|
|
23
|
+
- run: uv run ruff format --check src/ tests/
|
|
24
|
+
- run: uv run mypy src/zotero_cli_cc/
|
|
25
|
+
- run: uv run pytest tests/ -v
|
|
26
|
+
|
|
27
|
+
build:
|
|
28
|
+
runs-on: ubuntu-latest
|
|
29
|
+
steps:
|
|
30
|
+
- uses: actions/checkout@v4
|
|
31
|
+
- uses: astral-sh/setup-uv@v4
|
|
32
|
+
with:
|
|
33
|
+
enable-cache: true
|
|
34
|
+
# The wheel force-includes the Zotero bridge plugin assets; fail here
|
|
35
|
+
# rather than at release time if they go missing.
|
|
36
|
+
- run: uv build
|
|
37
|
+
- name: Verify bridge assets are bundled
|
|
38
|
+
run: unzip -l dist/*.whl | grep bridge_assets
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
name: Deploy Docs
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
paths:
|
|
7
|
+
- "docs/**"
|
|
8
|
+
- "mkdocs.yml"
|
|
9
|
+
- "CHANGELOG.md"
|
|
10
|
+
- "src/zotero_cli_cc/**"
|
|
11
|
+
workflow_dispatch:
|
|
12
|
+
|
|
13
|
+
permissions:
|
|
14
|
+
contents: read
|
|
15
|
+
pages: write
|
|
16
|
+
id-token: write
|
|
17
|
+
|
|
18
|
+
concurrency:
|
|
19
|
+
group: "pages"
|
|
20
|
+
cancel-in-progress: false
|
|
21
|
+
|
|
22
|
+
jobs:
|
|
23
|
+
build:
|
|
24
|
+
runs-on: ubuntu-latest
|
|
25
|
+
steps:
|
|
26
|
+
- uses: actions/checkout@v4
|
|
27
|
+
|
|
28
|
+
- uses: astral-sh/setup-uv@v4
|
|
29
|
+
with:
|
|
30
|
+
python-version: "3.12"
|
|
31
|
+
|
|
32
|
+
- name: Install dependencies
|
|
33
|
+
run: uv sync --extra docs
|
|
34
|
+
|
|
35
|
+
- name: Build docs
|
|
36
|
+
run: uv run mkdocs build --strict
|
|
37
|
+
|
|
38
|
+
- name: Upload artifact
|
|
39
|
+
uses: actions/upload-pages-artifact@v3
|
|
40
|
+
with:
|
|
41
|
+
path: ./site
|
|
42
|
+
|
|
43
|
+
deploy:
|
|
44
|
+
environment:
|
|
45
|
+
name: github-pages
|
|
46
|
+
url: ${{ steps.deployment.outputs.page_url }}
|
|
47
|
+
runs-on: ubuntu-latest
|
|
48
|
+
needs: build
|
|
49
|
+
steps:
|
|
50
|
+
- name: Deploy to GitHub Pages
|
|
51
|
+
id: deployment
|
|
52
|
+
uses: actions/deploy-pages@v4
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
name: Publish to PyPI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- "v*"
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
lint:
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
steps:
|
|
12
|
+
- uses: actions/checkout@v4
|
|
13
|
+
- uses: astral-sh/setup-uv@v4
|
|
14
|
+
- run: uv sync --group dev --extra mcp
|
|
15
|
+
- run: uv run ruff check src/ tests/
|
|
16
|
+
- run: uv run ruff format --check src/ tests/
|
|
17
|
+
- run: uv run mypy src/zotero_cli_cc/
|
|
18
|
+
|
|
19
|
+
publish:
|
|
20
|
+
needs: lint
|
|
21
|
+
runs-on: ubuntu-latest
|
|
22
|
+
environment: pypi
|
|
23
|
+
permissions:
|
|
24
|
+
id-token: write
|
|
25
|
+
steps:
|
|
26
|
+
- uses: actions/checkout@v4
|
|
27
|
+
- uses: astral-sh/setup-uv@v4
|
|
28
|
+
- run: uv build
|
|
29
|
+
- uses: pypa/gh-action-pypi-publish@release/v1
|
|
30
|
+
with:
|
|
31
|
+
skip-existing: true
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
__pycache__/
|
|
2
|
+
*.pyc
|
|
3
|
+
.venv/
|
|
4
|
+
# Built Zotero bridge plugin (produced by `zot bridge install`)
|
|
5
|
+
extension/*.xpi
|
|
6
|
+
*.egg-info/
|
|
7
|
+
dist/
|
|
8
|
+
build/
|
|
9
|
+
.pytest_cache/
|
|
10
|
+
.coverage
|
|
11
|
+
htmlcov/
|
|
12
|
+
.mypy_cache/
|
|
13
|
+
.ruff_cache/
|
|
14
|
+
*.log
|
|
15
|
+
# Docs build output
|
|
16
|
+
site/
|
|
17
|
+
# Internal dev docs (plans, specs)
|
|
18
|
+
docs/superpowers/
|
|
19
|
+
docs/gap-analysis.md
|
|
20
|
+
plan/
|
|
21
|
+
logs/
|
|
22
|
+
.vscode/
|
|
23
|
+
my-docs/
|
|
24
|
+
.sisyphus/
|
|
25
|
+
.claude/
|
|
26
|
+
.DS_Store
|
|
27
|
+
# Local-only assets and notes (not part of the published repo)
|
|
28
|
+
asserts/banner_cn.png
|
|
29
|
+
asserts/banner_en.png
|
|
30
|
+
goal-pdf-extraction-tiers.md
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
repos:
|
|
2
|
+
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
3
|
+
rev: v0.9.10
|
|
4
|
+
hooks:
|
|
5
|
+
- id: ruff
|
|
6
|
+
args: [--fix]
|
|
7
|
+
- id: ruff-format
|
|
8
|
+
|
|
9
|
+
- repo: https://github.com/pre-commit/mirrors-mypy
|
|
10
|
+
rev: v1.14.1
|
|
11
|
+
hooks:
|
|
12
|
+
- id: mypy
|
|
13
|
+
args: [--ignore-missing-imports]
|
|
14
|
+
additional_dependencies:
|
|
15
|
+
- click>=8.1
|
|
16
|
+
- pyzotero>=1.5
|
|
17
|
+
- rich>=13.0
|
|
18
|
+
- platformdirs>=4.0
|
|
19
|
+
- markdownify>=1.2.2
|
|
20
|
+
pass_filenames: false
|
|
21
|
+
entry: mypy src/zotero_cli_cc/
|