agent-wiki-cli 1.3.0__tar.gz → 1.3.1__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.
- {agent_wiki_cli-1.3.0/src/agent_wiki_cli.egg-info → agent_wiki_cli-1.3.1}/PKG-INFO +31 -10
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/README.md +30 -9
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/pyproject.toml +1 -1
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1/src/agent_wiki_cli.egg-info}/PKG-INFO +31 -10
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/cli.py +32 -4
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/commands/init_cmd.py +41 -14
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/commands/status_cmd.py +2 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/commands/upgrade_cmd.py +23 -3
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/config.py +51 -1
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/mcp_server.py +1 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/schema.py +35 -20
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_cli.py +99 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_config.py +81 -1
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_extract.py +37 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_init.py +87 -1
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_mcp.py +19 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_package_metadata.py +1 -1
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_schema.py +8 -1
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_source_snapshot.py +16 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_status.py +18 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_upgrade.py +88 -1
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/LICENSE +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/MANIFEST.in +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/examples/plugins/m4-documentation-hooks/detectors.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/examples/plugins/m4-documentation-hooks/llm-wiki-plugin.json +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/examples/plugins/m4-documentation-hooks/styles.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/setup.cfg +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/agent_wiki_cli.egg-info/SOURCES.txt +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/agent_wiki_cli.egg-info/dependency_links.txt +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/agent_wiki_cli.egg-info/entry_points.txt +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/agent_wiki_cli.egg-info/requires.txt +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/agent_wiki_cli.egg-info/top_level.txt +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/__init__.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/api.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/commands/__init__.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/commands/bootstrap_cmd.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/commands/bump_cmd.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/commands/ci_check_cmd.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/commands/context_cmd.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/commands/extract_cmd.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/commands/generate_prompt_cmd.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/commands/hook_cmd.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/commands/install_cmd.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/commands/lint_cmd.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/commands/mcp_cmd.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/commands/metrics_cmd.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/commands/migrate_cmd.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/commands/obsidian_cmd.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/commands/plugins_cmd.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/commands/prepare_extractors_cmd.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/commands/release_cmd.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/commands/review_cmd.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/commands/site_cmd.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/commands/skills_cmd.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/commands/sync_cmd.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/commands/team_cmd.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/commands/trigger_cmd.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/commands/uninstall_cmd.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/examples/plugins/m4-documentation-hooks/detectors.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/examples/plugins/m4-documentation-hooks/llm-wiki-plugin.json +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/examples/plugins/m4-documentation-hooks/styles.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/extractors/__init__.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/extractors/common.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/extractors/fastapi_contracts.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/extractors/go_extractor.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/extractors/go_scripts/go.mod +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/extractors/go_scripts/main.go +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/extractors/haskell_extractor.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/extractors/haskell_scripts/Inventory.hs +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/extractors/haskell_scripts/Json.hs +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/extractors/haskell_scripts/Main.hs +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/extractors/haskell_scripts/Parser.hs +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/extractors/haskell_scripts/Paths.hs +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/extractors/python_contracts.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/extractors/python_extractor.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/extractors/rust_extractor.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/extractors/rust_scripts/Cargo.lock +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/extractors/rust_scripts/Cargo.toml +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/extractors/rust_scripts/src/main.rs +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/extractors/ts_extractor.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/extractors/ts_scripts/extract.js +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/extractors/ts_scripts/package.json +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/__init__.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/api_contracts.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/circuit_breaker.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/contracts.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/data_flow.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/dependencies.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/diagrams.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/documentation_queries.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/entrypoints.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/extractor_helpers.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/imports.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/infrastructure_inventory.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/inventory_cache.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/io.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/lockfile.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/metrics.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/module_maps.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/obsidian.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/packages.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/paths.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/plugin_samples.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/plugins.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/relationships.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/secure_file.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/site_export.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/site_html_check.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/skills.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/source_snapshot.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/team.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/versioning.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/wiki_media.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/wiki_surface.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/wiki_surface_index.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/skills/attack-surface/SKILL.md +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/skills/attack-surface/reference.md +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/skills/dep-audit/SKILL.md +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/skills/dep-audit/reference.md +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/skills/dep-vuln-triage/SKILL.md +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/skills/dep-vuln-triage/reference.md +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/skills/doc-hub/SKILL.md +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/skills/doc-hub/reference.md +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/skills/doc-review/SKILL.md +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/skills/doc-review/reference.md +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/skills/impact-analysis/SKILL.md +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/skills/impact-analysis/reference.md +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/skills/infra-review/SKILL.md +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/skills/infra-review/reference.md +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/skills/onboarding-guide/SKILL.md +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/skills/onboarding-guide/reference.md +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/skills/publish-docs/SKILL.md +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/skills/publish-docs/reference.md +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/skills/usage-examples/SKILL.md +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/skills/usage-examples/reference.md +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/skills/user-docs-author/SKILL.md +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/skills/user-docs-author/reference.md +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/skills/wiki-bootstrap/SKILL.md +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/skills/wiki-bootstrap/reference.md +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/skills/wiki-reference/SKILL.md +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/skills/wiki-reference/reference.md +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/skills/wiki-sync/SKILL.md +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/skills/wiki-sync/reference.md +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_api.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_api_contracts.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_bootstrap.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_bootstrap_api_contracts.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_bump.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_ci_check.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_circuit_breaker.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_context.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_data_flow.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_dependencies.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_dependencies_external.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_diagrams.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_docker_bootstrap.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_docker_extract.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_docker_lint.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_documentation_queries.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_e2e.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_entrypoints.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_extract_api_contracts.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_extractor_helpers.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_extractor_inventory_contracts.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_generate_prompt.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_go_extract.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_haskell_extract.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_hook.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_imports.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_infrastructure_inventory.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_install.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_inventory_cache.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_io.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_lint.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_lockfile.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_m4_dogfood.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_m4_plugin_sample.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_metrics.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_migrate.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_module_maps.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_multilanguage_wiki.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_navigation_layouts.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_obsidian.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_packages.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_paths.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_phase4_quality.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_plugins.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_relationships.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_release.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_rust_extract.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_secure_file.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_site_export.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_skills.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_surface_initialization.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_sync.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_sync_api_contracts.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_team.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_trigger.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_ts_extract.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_uninstall.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_versioning.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_wiki_reference_skill.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_wiki_surface.py +0 -0
- {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_wiki_surface_index.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agent-wiki-cli
|
|
3
|
-
Version: 1.3.
|
|
3
|
+
Version: 1.3.1
|
|
4
4
|
Summary: CLI tool to maintain hybrid LLM Wikis for multi-language projects.
|
|
5
5
|
Author-email: Denis Sivagin <denissvgn@gmail.com>
|
|
6
6
|
License: MIT
|
|
@@ -115,11 +115,13 @@ helper dependencies and binaries with `llm-wiki prepare-extractors`. Lint, CI,
|
|
|
115
115
|
and extract never run `npm install`, `go build`, `go run`, `cargo build`,
|
|
116
116
|
`cargo run`, or `ghc` automatically.
|
|
117
117
|
|
|
118
|
-
Source discovery honors `.gitignore` before extractors run.
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
118
|
+
Source discovery honors `.gitignore` before extractors run. Unescaped trailing
|
|
119
|
+
ASCII spaces in ignore entries are ignored, while `\ ` preserves a literal
|
|
120
|
+
final space. A root, unanchored `lib/` rule is treated as a generic build-output
|
|
121
|
+
pattern for TypeScript projects, so `.ts`, `.tsx`, `.js`, and `.jsx` files under
|
|
122
|
+
`src/lib/` remain first-party source; top-level `lib/`, excluded
|
|
123
|
+
dependency/build directories, and explicit nested `.gitignore` rules still stay
|
|
124
|
+
excluded. Generated agent
|
|
123
125
|
worktree copies such as `.claude/worktrees/**` are excluded from default
|
|
124
126
|
snapshots; pass an exact `--paths` entry if you intentionally want to inspect
|
|
125
127
|
one file there.
|
|
@@ -240,9 +242,17 @@ Install a post-commit hook:
|
|
|
240
242
|
llm-wiki install-hook
|
|
241
243
|
```
|
|
242
244
|
|
|
243
|
-
`init` writes the selected agent and
|
|
245
|
+
`init` writes the selected agent and instruction preferences to
|
|
244
246
|
`.git/.llm-wiki-agent` when the project is a Git repo. Outside Git, it falls
|
|
245
|
-
back to `<wiki-dir>/.llm-wiki-agent`.
|
|
247
|
+
back to `<wiki-dir>/.llm-wiki-agent`. Tool-issue reporting guidance is omitted
|
|
248
|
+
by default; opt in when you want agents to create local bug-report files:
|
|
249
|
+
|
|
250
|
+
```bash
|
|
251
|
+
llm-wiki init --agent claude --issue-reporting
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
This only adds guidance to the generated agent instruction block. It does not
|
|
255
|
+
upload reports, submit issues, or enable telemetry.
|
|
246
256
|
|
|
247
257
|
## Automation
|
|
248
258
|
|
|
@@ -299,10 +309,16 @@ Scaffold the wiki structure and agent constraint file.
|
|
|
299
309
|
llm-wiki init --agent claude
|
|
300
310
|
llm-wiki init --agent copilot --wiki-dir .wiki
|
|
301
311
|
llm-wiki init --agent cursor --no-quality-hints
|
|
312
|
+
llm-wiki init --agent generic --issue-reporting
|
|
302
313
|
```
|
|
303
314
|
|
|
304
315
|
Supported agents are `claude`, `aider`, `opencode`, `copilot`, `cursor`, and
|
|
305
|
-
`generic`.
|
|
316
|
+
`generic`. `--issue-reporting` includes instructions that ask agents to record
|
|
317
|
+
`llm-wiki` tool failures under the local `llm-wiki-issues/` directory. The
|
|
318
|
+
instructions are off by default; use `--no-issue-reporting` to explicitly omit
|
|
319
|
+
them when refreshing an existing initialization. On a refresh, omitting
|
|
320
|
+
`--agent` reuses the stored agent; a project with no stored selection defaults
|
|
321
|
+
to `generic`.
|
|
306
322
|
|
|
307
323
|
### `bootstrap`
|
|
308
324
|
|
|
@@ -1165,10 +1181,15 @@ llm-wiki upgrade --agent copilot
|
|
|
1165
1181
|
llm-wiki upgrade --wiki-dir .wiki
|
|
1166
1182
|
llm-wiki upgrade --force
|
|
1167
1183
|
llm-wiki upgrade --no-quality-hints
|
|
1184
|
+
llm-wiki upgrade --issue-reporting
|
|
1185
|
+
llm-wiki upgrade --no-issue-reporting
|
|
1168
1186
|
```
|
|
1169
1187
|
|
|
1170
1188
|
`upgrade` refreshes agent instruction blocks, wiki directories, hooks, plugin
|
|
1171
|
-
skill blocks, and persisted local config.
|
|
1189
|
+
skill blocks, and persisted local config. The issue-reporting pair explicitly
|
|
1190
|
+
enables or disables the local agent guidance; without either flag, `upgrade`
|
|
1191
|
+
preserves the stored preference. Configurations created before this preference
|
|
1192
|
+
existed default to disabled. For older wiki layouts, `upgrade`
|
|
1172
1193
|
idempotently adds registry-standard directories such as `flows/` and missing
|
|
1173
1194
|
`.gitkeep` files without rewriting existing index, log, semantic pages, or
|
|
1174
1195
|
optional `dependencies.md` / `load-order.md` pages. Run `bootstrap` or `sync`
|
|
@@ -84,11 +84,13 @@ helper dependencies and binaries with `llm-wiki prepare-extractors`. Lint, CI,
|
|
|
84
84
|
and extract never run `npm install`, `go build`, `go run`, `cargo build`,
|
|
85
85
|
`cargo run`, or `ghc` automatically.
|
|
86
86
|
|
|
87
|
-
Source discovery honors `.gitignore` before extractors run.
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
87
|
+
Source discovery honors `.gitignore` before extractors run. Unescaped trailing
|
|
88
|
+
ASCII spaces in ignore entries are ignored, while `\ ` preserves a literal
|
|
89
|
+
final space. A root, unanchored `lib/` rule is treated as a generic build-output
|
|
90
|
+
pattern for TypeScript projects, so `.ts`, `.tsx`, `.js`, and `.jsx` files under
|
|
91
|
+
`src/lib/` remain first-party source; top-level `lib/`, excluded
|
|
92
|
+
dependency/build directories, and explicit nested `.gitignore` rules still stay
|
|
93
|
+
excluded. Generated agent
|
|
92
94
|
worktree copies such as `.claude/worktrees/**` are excluded from default
|
|
93
95
|
snapshots; pass an exact `--paths` entry if you intentionally want to inspect
|
|
94
96
|
one file there.
|
|
@@ -209,9 +211,17 @@ Install a post-commit hook:
|
|
|
209
211
|
llm-wiki install-hook
|
|
210
212
|
```
|
|
211
213
|
|
|
212
|
-
`init` writes the selected agent and
|
|
214
|
+
`init` writes the selected agent and instruction preferences to
|
|
213
215
|
`.git/.llm-wiki-agent` when the project is a Git repo. Outside Git, it falls
|
|
214
|
-
back to `<wiki-dir>/.llm-wiki-agent`.
|
|
216
|
+
back to `<wiki-dir>/.llm-wiki-agent`. Tool-issue reporting guidance is omitted
|
|
217
|
+
by default; opt in when you want agents to create local bug-report files:
|
|
218
|
+
|
|
219
|
+
```bash
|
|
220
|
+
llm-wiki init --agent claude --issue-reporting
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
This only adds guidance to the generated agent instruction block. It does not
|
|
224
|
+
upload reports, submit issues, or enable telemetry.
|
|
215
225
|
|
|
216
226
|
## Automation
|
|
217
227
|
|
|
@@ -268,10 +278,16 @@ Scaffold the wiki structure and agent constraint file.
|
|
|
268
278
|
llm-wiki init --agent claude
|
|
269
279
|
llm-wiki init --agent copilot --wiki-dir .wiki
|
|
270
280
|
llm-wiki init --agent cursor --no-quality-hints
|
|
281
|
+
llm-wiki init --agent generic --issue-reporting
|
|
271
282
|
```
|
|
272
283
|
|
|
273
284
|
Supported agents are `claude`, `aider`, `opencode`, `copilot`, `cursor`, and
|
|
274
|
-
`generic`.
|
|
285
|
+
`generic`. `--issue-reporting` includes instructions that ask agents to record
|
|
286
|
+
`llm-wiki` tool failures under the local `llm-wiki-issues/` directory. The
|
|
287
|
+
instructions are off by default; use `--no-issue-reporting` to explicitly omit
|
|
288
|
+
them when refreshing an existing initialization. On a refresh, omitting
|
|
289
|
+
`--agent` reuses the stored agent; a project with no stored selection defaults
|
|
290
|
+
to `generic`.
|
|
275
291
|
|
|
276
292
|
### `bootstrap`
|
|
277
293
|
|
|
@@ -1134,10 +1150,15 @@ llm-wiki upgrade --agent copilot
|
|
|
1134
1150
|
llm-wiki upgrade --wiki-dir .wiki
|
|
1135
1151
|
llm-wiki upgrade --force
|
|
1136
1152
|
llm-wiki upgrade --no-quality-hints
|
|
1153
|
+
llm-wiki upgrade --issue-reporting
|
|
1154
|
+
llm-wiki upgrade --no-issue-reporting
|
|
1137
1155
|
```
|
|
1138
1156
|
|
|
1139
1157
|
`upgrade` refreshes agent instruction blocks, wiki directories, hooks, plugin
|
|
1140
|
-
skill blocks, and persisted local config.
|
|
1158
|
+
skill blocks, and persisted local config. The issue-reporting pair explicitly
|
|
1159
|
+
enables or disables the local agent guidance; without either flag, `upgrade`
|
|
1160
|
+
preserves the stored preference. Configurations created before this preference
|
|
1161
|
+
existed default to disabled. For older wiki layouts, `upgrade`
|
|
1141
1162
|
idempotently adds registry-standard directories such as `flows/` and missing
|
|
1142
1163
|
`.gitkeep` files without rewriting existing index, log, semantic pages, or
|
|
1143
1164
|
optional `dependencies.md` / `load-order.md` pages. Run `bootstrap` or `sync`
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agent-wiki-cli
|
|
3
|
-
Version: 1.3.
|
|
3
|
+
Version: 1.3.1
|
|
4
4
|
Summary: CLI tool to maintain hybrid LLM Wikis for multi-language projects.
|
|
5
5
|
Author-email: Denis Sivagin <denissvgn@gmail.com>
|
|
6
6
|
License: MIT
|
|
@@ -115,11 +115,13 @@ helper dependencies and binaries with `llm-wiki prepare-extractors`. Lint, CI,
|
|
|
115
115
|
and extract never run `npm install`, `go build`, `go run`, `cargo build`,
|
|
116
116
|
`cargo run`, or `ghc` automatically.
|
|
117
117
|
|
|
118
|
-
Source discovery honors `.gitignore` before extractors run.
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
118
|
+
Source discovery honors `.gitignore` before extractors run. Unescaped trailing
|
|
119
|
+
ASCII spaces in ignore entries are ignored, while `\ ` preserves a literal
|
|
120
|
+
final space. A root, unanchored `lib/` rule is treated as a generic build-output
|
|
121
|
+
pattern for TypeScript projects, so `.ts`, `.tsx`, `.js`, and `.jsx` files under
|
|
122
|
+
`src/lib/` remain first-party source; top-level `lib/`, excluded
|
|
123
|
+
dependency/build directories, and explicit nested `.gitignore` rules still stay
|
|
124
|
+
excluded. Generated agent
|
|
123
125
|
worktree copies such as `.claude/worktrees/**` are excluded from default
|
|
124
126
|
snapshots; pass an exact `--paths` entry if you intentionally want to inspect
|
|
125
127
|
one file there.
|
|
@@ -240,9 +242,17 @@ Install a post-commit hook:
|
|
|
240
242
|
llm-wiki install-hook
|
|
241
243
|
```
|
|
242
244
|
|
|
243
|
-
`init` writes the selected agent and
|
|
245
|
+
`init` writes the selected agent and instruction preferences to
|
|
244
246
|
`.git/.llm-wiki-agent` when the project is a Git repo. Outside Git, it falls
|
|
245
|
-
back to `<wiki-dir>/.llm-wiki-agent`.
|
|
247
|
+
back to `<wiki-dir>/.llm-wiki-agent`. Tool-issue reporting guidance is omitted
|
|
248
|
+
by default; opt in when you want agents to create local bug-report files:
|
|
249
|
+
|
|
250
|
+
```bash
|
|
251
|
+
llm-wiki init --agent claude --issue-reporting
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
This only adds guidance to the generated agent instruction block. It does not
|
|
255
|
+
upload reports, submit issues, or enable telemetry.
|
|
246
256
|
|
|
247
257
|
## Automation
|
|
248
258
|
|
|
@@ -299,10 +309,16 @@ Scaffold the wiki structure and agent constraint file.
|
|
|
299
309
|
llm-wiki init --agent claude
|
|
300
310
|
llm-wiki init --agent copilot --wiki-dir .wiki
|
|
301
311
|
llm-wiki init --agent cursor --no-quality-hints
|
|
312
|
+
llm-wiki init --agent generic --issue-reporting
|
|
302
313
|
```
|
|
303
314
|
|
|
304
315
|
Supported agents are `claude`, `aider`, `opencode`, `copilot`, `cursor`, and
|
|
305
|
-
`generic`.
|
|
316
|
+
`generic`. `--issue-reporting` includes instructions that ask agents to record
|
|
317
|
+
`llm-wiki` tool failures under the local `llm-wiki-issues/` directory. The
|
|
318
|
+
instructions are off by default; use `--no-issue-reporting` to explicitly omit
|
|
319
|
+
them when refreshing an existing initialization. On a refresh, omitting
|
|
320
|
+
`--agent` reuses the stored agent; a project with no stored selection defaults
|
|
321
|
+
to `generic`.
|
|
306
322
|
|
|
307
323
|
### `bootstrap`
|
|
308
324
|
|
|
@@ -1165,10 +1181,15 @@ llm-wiki upgrade --agent copilot
|
|
|
1165
1181
|
llm-wiki upgrade --wiki-dir .wiki
|
|
1166
1182
|
llm-wiki upgrade --force
|
|
1167
1183
|
llm-wiki upgrade --no-quality-hints
|
|
1184
|
+
llm-wiki upgrade --issue-reporting
|
|
1185
|
+
llm-wiki upgrade --no-issue-reporting
|
|
1168
1186
|
```
|
|
1169
1187
|
|
|
1170
1188
|
`upgrade` refreshes agent instruction blocks, wiki directories, hooks, plugin
|
|
1171
|
-
skill blocks, and persisted local config.
|
|
1189
|
+
skill blocks, and persisted local config. The issue-reporting pair explicitly
|
|
1190
|
+
enables or disables the local agent guidance; without either flag, `upgrade`
|
|
1191
|
+
preserves the stored preference. Configurations created before this preference
|
|
1192
|
+
existed default to disabled. For older wiki layouts, `upgrade`
|
|
1172
1193
|
idempotently adds registry-standard directories such as `flows/` and missing
|
|
1173
1194
|
`.gitkeep` files without rewriting existing index, log, semantic pages, or
|
|
1174
1195
|
optional `dependencies.md` / `load-order.md` pages. Run `bootstrap` or `sync`
|
|
@@ -175,8 +175,8 @@ def _add_init_command(subparsers):
|
|
|
175
175
|
init_parser.add_argument(
|
|
176
176
|
"--agent",
|
|
177
177
|
choices=AGENT_CHOICES,
|
|
178
|
-
default=
|
|
179
|
-
help="Target agent format for
|
|
178
|
+
default=None,
|
|
179
|
+
help="Target agent format (default: stored agent, or generic for a new project)",
|
|
180
180
|
)
|
|
181
181
|
init_parser.add_argument(
|
|
182
182
|
"--wiki-dir",
|
|
@@ -186,15 +186,29 @@ def _add_init_command(subparsers):
|
|
|
186
186
|
init_parser.add_argument(
|
|
187
187
|
"--no-quality-hints",
|
|
188
188
|
action="store_true",
|
|
189
|
-
default=
|
|
189
|
+
default=None,
|
|
190
190
|
help="Omit agent quality guidelines from the constraint block",
|
|
191
191
|
)
|
|
192
192
|
init_parser.add_argument(
|
|
193
193
|
"--no-skills",
|
|
194
194
|
action="store_true",
|
|
195
|
-
default=
|
|
195
|
+
default=None,
|
|
196
196
|
help="Skip installing the wiki-reference skill into the agent's skills directory (.claude/skills for claude, .llm-wiki/skills otherwise)",
|
|
197
197
|
)
|
|
198
|
+
init_issue_reporting = init_parser.add_mutually_exclusive_group()
|
|
199
|
+
init_issue_reporting.add_argument(
|
|
200
|
+
"--issue-reporting",
|
|
201
|
+
dest="issue_reporting",
|
|
202
|
+
action="store_true",
|
|
203
|
+
default=None,
|
|
204
|
+
help="Include local agent instructions for llm-wiki tool issues; does not submit reports",
|
|
205
|
+
)
|
|
206
|
+
init_issue_reporting.add_argument(
|
|
207
|
+
"--no-issue-reporting",
|
|
208
|
+
dest="issue_reporting",
|
|
209
|
+
action="store_false",
|
|
210
|
+
help="Omit local agent instructions for reporting llm-wiki tool issues (default)",
|
|
211
|
+
)
|
|
198
212
|
|
|
199
213
|
|
|
200
214
|
def _add_extract_command(subparsers):
|
|
@@ -1149,6 +1163,20 @@ def _add_upgrade_command(subparsers):
|
|
|
1149
1163
|
action="store_false",
|
|
1150
1164
|
help="Skip refreshing the wiki-reference skill in the configured agent's skills directory (.claude/skills for claude, .llm-wiki/skills otherwise)",
|
|
1151
1165
|
)
|
|
1166
|
+
upgrade_issue_reporting = upgrade_parser.add_mutually_exclusive_group()
|
|
1167
|
+
upgrade_issue_reporting.add_argument(
|
|
1168
|
+
"--issue-reporting",
|
|
1169
|
+
dest="issue_reporting",
|
|
1170
|
+
action="store_true",
|
|
1171
|
+
default=None,
|
|
1172
|
+
help="Include local agent instructions for llm-wiki tool issues; does not submit reports",
|
|
1173
|
+
)
|
|
1174
|
+
upgrade_issue_reporting.add_argument(
|
|
1175
|
+
"--no-issue-reporting",
|
|
1176
|
+
dest="issue_reporting",
|
|
1177
|
+
action="store_false",
|
|
1178
|
+
help="Omit local agent instructions for reporting llm-wiki tool issues",
|
|
1179
|
+
)
|
|
1152
1180
|
|
|
1153
1181
|
|
|
1154
1182
|
def _add_sync_command(subparsers):
|
|
@@ -4,12 +4,19 @@ import shutil
|
|
|
4
4
|
import sys
|
|
5
5
|
from pathlib import Path
|
|
6
6
|
|
|
7
|
-
from ..config import
|
|
7
|
+
from ..config import (
|
|
8
|
+
CLI_AGENTS,
|
|
9
|
+
DEFAULT_WIKI_DIR,
|
|
10
|
+
read_config,
|
|
11
|
+
validate_path,
|
|
12
|
+
write_config,
|
|
13
|
+
)
|
|
8
14
|
from ..services.io import read_md, write_md
|
|
9
15
|
from ..services.schema import (
|
|
10
16
|
CONSTRAINT_START as _CONSTRAINT_START,
|
|
11
17
|
SCHEMA_FILENAMES,
|
|
12
18
|
build_schema_content as _build_schema_content,
|
|
19
|
+
replace_schema_block,
|
|
13
20
|
)
|
|
14
21
|
from ..services.skills import (
|
|
15
22
|
REFERENCE_SKILL_ID,
|
|
@@ -27,15 +34,18 @@ _CLI_AGENTS = CLI_AGENTS
|
|
|
27
34
|
def run(args):
|
|
28
35
|
wiki_dir = getattr(args, "wiki_dir", DEFAULT_WIKI_DIR)
|
|
29
36
|
validate_path(wiki_dir, "--wiki-dir")
|
|
30
|
-
|
|
37
|
+
stored = read_config(wiki_dir)
|
|
38
|
+
requested_agent = getattr(args, "agent", None)
|
|
39
|
+
agent = requested_agent or str(stored.get("agent") or "generic")
|
|
40
|
+
print(f"Initializing LLM Wiki with {agent} schema...")
|
|
31
41
|
|
|
32
42
|
# Warn if the agent has a CLI executable that isn't installed
|
|
33
|
-
executable = _CLI_AGENTS.get(
|
|
43
|
+
executable = _CLI_AGENTS.get(agent)
|
|
34
44
|
if executable and not shutil.which(executable):
|
|
35
45
|
print(
|
|
36
46
|
f"\nWarning: '{executable}' is not installed or not on PATH.\n"
|
|
37
47
|
f"The schema file will be created, but manual agent execution\n"
|
|
38
|
-
f"(`llm-wiki trigger-agent --agent {
|
|
48
|
+
f"(`llm-wiki trigger-agent --agent {agent}`) will not work\n"
|
|
39
49
|
f"until '{executable}' is installed.\n"
|
|
40
50
|
)
|
|
41
51
|
|
|
@@ -71,16 +81,29 @@ def run(args):
|
|
|
71
81
|
if not log_path.exists():
|
|
72
82
|
write_md(log_path, "# Architectural Log\n\nAppend-only chronological log.\n\n")
|
|
73
83
|
|
|
74
|
-
# 3. Create or
|
|
75
|
-
|
|
76
|
-
|
|
84
|
+
# 3. Create or refresh the Agent Schema. Unspecified preferences preserve an
|
|
85
|
+
# existing installation's choices; a new installation receives config defaults.
|
|
86
|
+
cli_no_quality_hints = getattr(args, "no_quality_hints", None)
|
|
87
|
+
if cli_no_quality_hints is None:
|
|
88
|
+
quality_hints = bool(stored.get("quality_hints", True))
|
|
89
|
+
else:
|
|
90
|
+
quality_hints = not cli_no_quality_hints
|
|
91
|
+
cli_issue_reporting = getattr(args, "issue_reporting", None)
|
|
92
|
+
if cli_issue_reporting is None:
|
|
93
|
+
issue_reporting = bool(stored.get("issue_reporting", False))
|
|
94
|
+
else:
|
|
95
|
+
issue_reporting = cli_issue_reporting
|
|
96
|
+
filename = SCHEMA_FILENAMES.get(agent)
|
|
77
97
|
if filename:
|
|
78
98
|
schema_path = Path(filename)
|
|
79
99
|
# ensure parent exists (e.g. for .github/)
|
|
80
100
|
schema_path.parent.mkdir(parents=True, exist_ok=True)
|
|
81
101
|
|
|
82
102
|
content_to_add = _build_schema_content(
|
|
83
|
-
|
|
103
|
+
agent,
|
|
104
|
+
wiki_dir,
|
|
105
|
+
quality_hints=quality_hints,
|
|
106
|
+
issue_reporting=issue_reporting,
|
|
84
107
|
)
|
|
85
108
|
|
|
86
109
|
if schema_path.exists():
|
|
@@ -90,19 +113,22 @@ def run(args):
|
|
|
90
113
|
write_md(schema_path, existing_content + "\n\n" + content_to_add)
|
|
91
114
|
print(f"Appended agent constraints to existing file: {schema_path}")
|
|
92
115
|
else:
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
)
|
|
116
|
+
replace_schema_block(schema_path, content_to_add)
|
|
117
|
+
print(f"Refreshed agent constraints in existing file: {schema_path}")
|
|
96
118
|
else:
|
|
97
119
|
write_md(schema_path, content_to_add)
|
|
98
120
|
print(f"Created agent schema file: {schema_path}")
|
|
99
121
|
|
|
100
122
|
# 4. Install the CLI-owned wiki-reference skill that the constraint
|
|
101
123
|
# block's deep-reference pointers target
|
|
102
|
-
|
|
124
|
+
cli_no_skills = getattr(args, "no_skills", None)
|
|
125
|
+
if cli_no_skills is None:
|
|
126
|
+
install_skill = bool(stored.get("reference_skill", True))
|
|
127
|
+
else:
|
|
128
|
+
install_skill = not cli_no_skills
|
|
103
129
|
if install_skill:
|
|
104
130
|
try:
|
|
105
|
-
report = install_reference_skill(agent=
|
|
131
|
+
report = install_reference_skill(agent=agent)
|
|
106
132
|
except SkillsError as exc:
|
|
107
133
|
print(f"Warning: could not install {REFERENCE_SKILL_ID} skill: {exc}")
|
|
108
134
|
else:
|
|
@@ -126,9 +152,10 @@ def run(args):
|
|
|
126
152
|
write_config(
|
|
127
153
|
base_dir,
|
|
128
154
|
{
|
|
129
|
-
"agent":
|
|
155
|
+
"agent": agent,
|
|
130
156
|
"quality_hints": quality_hints,
|
|
131
157
|
"reference_skill": install_skill,
|
|
158
|
+
"issue_reporting": issue_reporting,
|
|
132
159
|
},
|
|
133
160
|
)
|
|
134
161
|
|
|
@@ -68,6 +68,8 @@ def run(args) -> None:
|
|
|
68
68
|
print(f"Agent: {agent} ({mode})")
|
|
69
69
|
hints = config.get("quality_hints", True)
|
|
70
70
|
print(f"Quality hints: {'enabled' if hints else 'disabled'}")
|
|
71
|
+
issue_reporting = config.get("issue_reporting", False)
|
|
72
|
+
print(f"Issue reporting: {'enabled' if issue_reporting else 'disabled'}")
|
|
71
73
|
else:
|
|
72
74
|
print("Agent: not configured (run `llm-wiki init --agent <agent>`)")
|
|
73
75
|
|
|
@@ -95,13 +95,23 @@ def _resolve_agent(args, wiki_dir: str) -> str:
|
|
|
95
95
|
|
|
96
96
|
|
|
97
97
|
def _upgrade_schema(
|
|
98
|
-
agent: str,
|
|
98
|
+
agent: str,
|
|
99
|
+
wiki_dir: str,
|
|
100
|
+
old_agent: str | None,
|
|
101
|
+
*,
|
|
102
|
+
quality_hints: bool = True,
|
|
103
|
+
issue_reporting: bool = False,
|
|
99
104
|
) -> str:
|
|
100
105
|
"""Replace or migrate the agent schema constraint block.
|
|
101
106
|
|
|
102
107
|
Returns a summary message.
|
|
103
108
|
"""
|
|
104
|
-
new_content = build_schema_content(
|
|
109
|
+
new_content = build_schema_content(
|
|
110
|
+
agent,
|
|
111
|
+
wiki_dir,
|
|
112
|
+
quality_hints=quality_hints,
|
|
113
|
+
issue_reporting=issue_reporting,
|
|
114
|
+
)
|
|
105
115
|
new_filename = SCHEMA_FILENAMES.get(agent)
|
|
106
116
|
|
|
107
117
|
if old_agent and old_agent != agent:
|
|
@@ -228,6 +238,11 @@ def run(args):
|
|
|
228
238
|
reference_skill = cli_skills
|
|
229
239
|
else:
|
|
230
240
|
reference_skill = stored.get("reference_skill", True)
|
|
241
|
+
cli_issue_reporting = getattr(args, "issue_reporting", None)
|
|
242
|
+
if cli_issue_reporting is not None:
|
|
243
|
+
issue_reporting = cli_issue_reporting
|
|
244
|
+
else:
|
|
245
|
+
issue_reporting = stored.get("issue_reporting", False)
|
|
231
246
|
|
|
232
247
|
print("LLM Wiki Upgrade")
|
|
233
248
|
print("=" * 40)
|
|
@@ -240,7 +255,11 @@ def run(args):
|
|
|
240
255
|
# 1. Schema constraint block
|
|
241
256
|
print("\n1. Agent Schema:")
|
|
242
257
|
schema_file = _upgrade_schema(
|
|
243
|
-
agent,
|
|
258
|
+
agent,
|
|
259
|
+
wiki_dir,
|
|
260
|
+
old_agent,
|
|
261
|
+
quality_hints=quality_hints,
|
|
262
|
+
issue_reporting=issue_reporting,
|
|
244
263
|
)
|
|
245
264
|
print(f" Updated: {schema_file}")
|
|
246
265
|
refreshed_skills = refresh_skill_blocks(agent, wiki_dir)
|
|
@@ -285,6 +304,7 @@ def run(args):
|
|
|
285
304
|
"agent": agent,
|
|
286
305
|
"quality_hints": quality_hints,
|
|
287
306
|
"reference_skill": reference_skill,
|
|
307
|
+
"issue_reporting": issue_reporting,
|
|
288
308
|
},
|
|
289
309
|
)
|
|
290
310
|
|
|
@@ -210,6 +210,7 @@ _DEFAULT_CONFIG: dict[str, object] = {
|
|
|
210
210
|
"agent": "generic",
|
|
211
211
|
"quality_hints": True,
|
|
212
212
|
"reference_skill": True,
|
|
213
|
+
"issue_reporting": False,
|
|
213
214
|
}
|
|
214
215
|
|
|
215
216
|
|
|
@@ -247,6 +248,53 @@ class GitIgnoreMatcher:
|
|
|
247
248
|
return rule is not None and not rule.negated
|
|
248
249
|
|
|
249
250
|
|
|
251
|
+
def _normalize_gitignore_trailing_spaces(line: str) -> str:
|
|
252
|
+
"""Remove Git-insignificant trailing spaces from one ignore pattern.
|
|
253
|
+
|
|
254
|
+
Backslashes quote the next character, so escaped spaces are retained while
|
|
255
|
+
an unescaped trailing run is removed. Decode only quoted spaces here;
|
|
256
|
+
broader gitignore escape and wildmatch semantics remain unchanged. Tabs
|
|
257
|
+
are intentionally untouched.
|
|
258
|
+
"""
|
|
259
|
+
first_trailing_space: int | None = None
|
|
260
|
+
index = 0
|
|
261
|
+
while index < len(line):
|
|
262
|
+
if line[index] == "\\":
|
|
263
|
+
first_trailing_space = None
|
|
264
|
+
index += 2
|
|
265
|
+
continue
|
|
266
|
+
if line[index] == " ":
|
|
267
|
+
if first_trailing_space is None:
|
|
268
|
+
first_trailing_space = index
|
|
269
|
+
else:
|
|
270
|
+
first_trailing_space = None
|
|
271
|
+
index += 1
|
|
272
|
+
|
|
273
|
+
if first_trailing_space is not None:
|
|
274
|
+
line = line[:first_trailing_space]
|
|
275
|
+
|
|
276
|
+
normalized: list[str] = []
|
|
277
|
+
index = 0
|
|
278
|
+
while index < len(line):
|
|
279
|
+
if line[index] != "\\":
|
|
280
|
+
normalized.append(line[index])
|
|
281
|
+
index += 1
|
|
282
|
+
continue
|
|
283
|
+
|
|
284
|
+
run_start = index
|
|
285
|
+
while index < len(line) and line[index] == "\\":
|
|
286
|
+
index += 1
|
|
287
|
+
backslash_count = index - run_start
|
|
288
|
+
if index < len(line) and line[index] == " " and backslash_count % 2:
|
|
289
|
+
normalized.append("\\" * (backslash_count - 1))
|
|
290
|
+
normalized.append(" ")
|
|
291
|
+
index += 1
|
|
292
|
+
continue
|
|
293
|
+
normalized.append("\\" * backslash_count)
|
|
294
|
+
|
|
295
|
+
return "".join(normalized)
|
|
296
|
+
|
|
297
|
+
|
|
250
298
|
def _parse_gitignore_file(gitignore_path: Path, base: str = "") -> list[_GitignoreRule]:
|
|
251
299
|
rules: list[_GitignoreRule] = []
|
|
252
300
|
if not gitignore_path.exists():
|
|
@@ -256,6 +304,7 @@ def _parse_gitignore_file(gitignore_path: Path, base: str = "") -> list[_Gitigno
|
|
|
256
304
|
with open(gitignore_path, "r", encoding="utf-8") as f:
|
|
257
305
|
for raw in f:
|
|
258
306
|
line = raw.rstrip("\n\r")
|
|
307
|
+
line = _normalize_gitignore_trailing_spaces(line)
|
|
259
308
|
if not line or line.startswith("#"):
|
|
260
309
|
continue
|
|
261
310
|
negated = line.startswith("!")
|
|
@@ -376,7 +425,8 @@ def read_config(wiki_dir: "str | Path") -> dict:
|
|
|
376
425
|
"""Read the persisted llm-wiki config as a dict.
|
|
377
426
|
|
|
378
427
|
Handles backward compatibility: if the file contains a bare agent name
|
|
379
|
-
string (pre-v0.3 format), it is treated as
|
|
428
|
+
string (pre-v0.3 format), it is treated as an agent selection with all
|
|
429
|
+
current defaults applied.
|
|
380
430
|
|
|
381
431
|
Returns *_DEFAULT_CONFIG* values for any missing keys.
|
|
382
432
|
"""
|
|
@@ -345,6 +345,7 @@ class McpWikiService:
|
|
|
345
345
|
"name": agent,
|
|
346
346
|
"mode": "IDE" if agent in IDE_AGENTS else "CLI",
|
|
347
347
|
"quality_hints": bool(config.get("quality_hints", True)),
|
|
348
|
+
"issue_reporting": bool(config.get("issue_reporting", False)),
|
|
348
349
|
}
|
|
349
350
|
except Exception as exc:
|
|
350
351
|
status["agent"] = {"configured": False, "error": str(exc)}
|
|
@@ -110,7 +110,32 @@ _QUALITY_HINTS = """\
|
|
|
110
110
|
"""
|
|
111
111
|
|
|
112
112
|
|
|
113
|
-
def
|
|
113
|
+
def _issue_reporting_instructions(wiki_dir: str) -> str:
|
|
114
|
+
return f"""## Report llm-wiki tool issues
|
|
115
|
+
If an `llm-wiki` command itself misbehaves while you use it — a crash or
|
|
116
|
+
traceback, wrong or stale generated output, a diagnostic that contradicts the
|
|
117
|
+
observed state, or behavior that contradicts these instructions — never work
|
|
118
|
+
around it silently:
|
|
119
|
+
|
|
120
|
+
- Write one report file per issue under `llm-wiki-issues/` at the project root,
|
|
121
|
+
named `llm-wiki-issues/<YYYY-MM-DD>-<short-slug>.md`. Keep reports outside
|
|
122
|
+
`{wiki_dir}/` so lint does not flag them as orphan pages.
|
|
123
|
+
- Each report must include: the exact command and flags you ran, expected
|
|
124
|
+
behavior, actual behavior (trim long output to the relevant lines), minimal
|
|
125
|
+
reproduction steps, `llm-wiki --version` output, and the workaround you
|
|
126
|
+
applied, if any.
|
|
127
|
+
- Then continue the original task with the safest workaround and mention the
|
|
128
|
+
report file in your final summary so the issue can be addressed upstream.
|
|
129
|
+
|
|
130
|
+
"""
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
def _wiki_instructions(
|
|
134
|
+
wiki_dir: str, skills_dir: str, *, issue_reporting: bool = False
|
|
135
|
+
) -> str:
|
|
136
|
+
issue_reporting_instructions = (
|
|
137
|
+
_issue_reporting_instructions(wiki_dir) if issue_reporting else ""
|
|
138
|
+
)
|
|
114
139
|
return f"""You are operating within an LLM Wiki architecture. The project's persistent memory is stored in `{wiki_dir}/`.
|
|
115
140
|
|
|
116
141
|
## Before you start
|
|
@@ -298,23 +323,7 @@ Page filenames **must** match the conventions enforced by `llm-wiki lint`:
|
|
|
298
323
|
covers active extractor languages only.
|
|
299
324
|
- Never leave the wiki in a state where lint reports errors.
|
|
300
325
|
|
|
301
|
-
##
|
|
302
|
-
If an `llm-wiki` command itself misbehaves while you use it — a crash or
|
|
303
|
-
traceback, wrong or stale generated output, a diagnostic that contradicts the
|
|
304
|
-
observed state, or behavior that contradicts these instructions — never work
|
|
305
|
-
around it silently:
|
|
306
|
-
|
|
307
|
-
- Write one report file per issue under `llm-wiki-issues/` at the project root,
|
|
308
|
-
named `llm-wiki-issues/<YYYY-MM-DD>-<short-slug>.md`. Keep reports outside
|
|
309
|
-
`{wiki_dir}/` so lint does not flag them as orphan pages.
|
|
310
|
-
- Each report must include: the exact command and flags you ran, expected
|
|
311
|
-
behavior, actual behavior (trim long output to the relevant lines), minimal
|
|
312
|
-
reproduction steps, `llm-wiki --version` output, and the workaround you
|
|
313
|
-
applied, if any.
|
|
314
|
-
- Then continue the original task with the safest workaround and mention the
|
|
315
|
-
report file in your final summary so the issue can be addressed upstream.
|
|
316
|
-
|
|
317
|
-
## Formatting rules
|
|
326
|
+
{issue_reporting_instructions}## Formatting rules
|
|
318
327
|
- Entity pages must have: Location, Bases, Module link, Attributes table, Methods table, Relationships.
|
|
319
328
|
- Module pages must have: Path, Imports table, Classes summary, Functions table.
|
|
320
329
|
- User-flow pages have generated Mermaid call-sequence and `## Data flow`
|
|
@@ -330,13 +339,19 @@ around it silently:
|
|
|
330
339
|
|
|
331
340
|
|
|
332
341
|
def build_schema_content(
|
|
333
|
-
agent: str,
|
|
342
|
+
agent: str,
|
|
343
|
+
wiki_dir: str,
|
|
344
|
+
*,
|
|
345
|
+
quality_hints: bool = True,
|
|
346
|
+
issue_reporting: bool = False,
|
|
334
347
|
) -> str:
|
|
335
348
|
"""Build the full constraint block for the given agent and wiki directory."""
|
|
336
349
|
from .skills import skills_install_dir
|
|
337
350
|
|
|
338
351
|
instructions = _wiki_instructions(
|
|
339
|
-
wiki_dir,
|
|
352
|
+
wiki_dir,
|
|
353
|
+
skills_install_dir(agent).as_posix(),
|
|
354
|
+
issue_reporting=issue_reporting,
|
|
340
355
|
)
|
|
341
356
|
preambles = {
|
|
342
357
|
"claude": f"# Project Wiki\n\nThis project uses an LLM Wiki for persistent architectural memory.\nRead `{wiki_dir}/index.md` first when starting any task.\n\n",
|