agent-wiki-cli 0.3.41__tar.gz → 0.5.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-0.3.41/src/agent_wiki_cli.egg-info → agent_wiki_cli-0.5.1}/PKG-INFO +64 -11
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/README.md +63 -10
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/pyproject.toml +1 -1
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1/src/agent_wiki_cli.egg-info}/PKG-INFO +64 -11
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/src/agent_wiki_cli.egg-info/SOURCES.txt +9 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/cli.py +56 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/commands/bootstrap_cmd.py +38 -10
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/commands/ci_check_cmd.py +20 -11
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/commands/extract_cmd.py +302 -103
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/commands/generate_prompt_cmd.py +21 -4
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/commands/lint_cmd.py +274 -119
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/commands/migrate_cmd.py +8 -2
- agent_wiki_cli-0.5.1/src/llm_wiki_cli/commands/prepare_extractors_cmd.py +66 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/commands/sync_cmd.py +372 -66
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/extractors/go_extractor.py +16 -12
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/extractors/python_extractor.py +7 -6
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/extractors/rust_extractor.py +16 -12
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/extractors/ts_extractor.py +13 -60
- agent_wiki_cli-0.5.1/src/llm_wiki_cli/services/extractor_helpers.py +431 -0
- agent_wiki_cli-0.5.1/src/llm_wiki_cli/services/imports.py +117 -0
- agent_wiki_cli-0.5.1/src/llm_wiki_cli/services/inventory_cache.py +357 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/services/metrics.py +7 -3
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/services/packages.py +30 -6
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/services/schema.py +61 -14
- agent_wiki_cli-0.5.1/src/llm_wiki_cli/services/source_snapshot.py +248 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/services/team.py +12 -2
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/tests/test_bootstrap.py +12 -0
- agent_wiki_cli-0.5.1/tests/test_ci_check.py +270 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/tests/test_docker_extract.py +8 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/tests/test_extract.py +324 -0
- agent_wiki_cli-0.5.1/tests/test_extractor_helpers.py +287 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/tests/test_generate_prompt.py +11 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/tests/test_go_extract.py +18 -17
- agent_wiki_cli-0.5.1/tests/test_imports.py +56 -0
- agent_wiki_cli-0.5.1/tests/test_inventory_cache.py +168 -0
- agent_wiki_cli-0.5.1/tests/test_lint.py +702 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/tests/test_multilanguage_wiki.py +30 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/tests/test_phase4_quality.py +16 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/tests/test_rust_extract.py +18 -23
- agent_wiki_cli-0.5.1/tests/test_schema.py +54 -0
- agent_wiki_cli-0.5.1/tests/test_source_snapshot.py +140 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/tests/test_sync.py +479 -2
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/tests/test_ts_extract.py +14 -4
- agent_wiki_cli-0.3.41/src/llm_wiki_cli/services/imports.py +0 -77
- agent_wiki_cli-0.3.41/tests/test_lint.py +0 -221
- agent_wiki_cli-0.3.41/tests/test_schema.py +0 -21
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/LICENSE +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/setup.cfg +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/src/agent_wiki_cli.egg-info/dependency_links.txt +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/src/agent_wiki_cli.egg-info/entry_points.txt +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/src/agent_wiki_cli.egg-info/requires.txt +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/src/agent_wiki_cli.egg-info/top_level.txt +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/__init__.py +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/commands/__init__.py +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/commands/bump_cmd.py +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/commands/context_cmd.py +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/commands/hook_cmd.py +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/commands/init_cmd.py +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/commands/install_cmd.py +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/commands/mcp_cmd.py +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/commands/metrics_cmd.py +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/commands/obsidian_cmd.py +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/commands/plugins_cmd.py +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/commands/release_cmd.py +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/commands/review_cmd.py +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/commands/status_cmd.py +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/commands/team_cmd.py +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/commands/trigger_cmd.py +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/commands/uninstall_cmd.py +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/commands/upgrade_cmd.py +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/config.py +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/extractors/__init__.py +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/extractors/common.py +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/extractors/go_scripts/go.mod +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/extractors/go_scripts/main.go +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/extractors/rust_scripts/Cargo.lock +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/extractors/rust_scripts/Cargo.toml +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/extractors/rust_scripts/src/main.rs +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/extractors/ts_scripts/extract.js +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/extractors/ts_scripts/package.json +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/services/__init__.py +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/services/circuit_breaker.py +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/services/io.py +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/services/lockfile.py +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/services/mcp_server.py +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/services/obsidian.py +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/services/paths.py +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/services/plugins.py +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/services/secure_file.py +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/services/versioning.py +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/tests/test_bump.py +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/tests/test_circuit_breaker.py +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/tests/test_config.py +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/tests/test_context.py +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/tests/test_docker_bootstrap.py +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/tests/test_docker_lint.py +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/tests/test_e2e.py +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/tests/test_hook.py +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/tests/test_init.py +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/tests/test_io.py +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/tests/test_lockfile.py +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/tests/test_mcp.py +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/tests/test_migrate.py +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/tests/test_obsidian.py +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/tests/test_package_metadata.py +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/tests/test_plugins.py +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/tests/test_release.py +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/tests/test_status.py +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/tests/test_team.py +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/tests/test_trigger.py +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/tests/test_uninstall.py +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/tests/test_upgrade.py +0 -0
- {agent_wiki_cli-0.3.41 → agent_wiki_cli-0.5.1}/tests/test_versioning.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agent-wiki-cli
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.5.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
|
|
@@ -58,15 +58,16 @@ external tools when they are available on `PATH`.
|
|
|
58
58
|
| Area | Implementation | Runtime requirement |
|
|
59
59
|
|---|---|---|
|
|
60
60
|
| Python | stdlib `ast` | Python 3.9+ |
|
|
61
|
-
| TypeScript / TSX | bundled Node script using `ts-morph` | Node.js
|
|
62
|
-
| Go | bundled Go extractor using `go/ast` |
|
|
63
|
-
| Rust | bundled Rust extractor using `syn` |
|
|
61
|
+
| TypeScript / TSX | bundled Node script using `ts-morph` | prepared Node.js dependencies |
|
|
62
|
+
| Go | bundled Go extractor using `go/ast` | prepared helper binary |
|
|
63
|
+
| Rust | bundled Rust extractor using `syn` | prepared helper binary |
|
|
64
64
|
| Docker / Compose | built-in parsers | none |
|
|
65
65
|
| MCP server | official Python MCP SDK | `agent-wiki-cli[mcp]`, Python 3.10+ |
|
|
66
66
|
|
|
67
|
-
TypeScript, Go, and Rust extras are metadata-only;
|
|
68
|
-
|
|
69
|
-
|
|
67
|
+
TypeScript, Go, and Rust extras are metadata-only; prepare their helper
|
|
68
|
+
dependencies explicitly with `llm-wiki prepare-extractors`. Lint, CI, and
|
|
69
|
+
extract never run `npm install`, `go build`, `go run`, `cargo build`, or
|
|
70
|
+
`cargo run` automatically.
|
|
70
71
|
|
|
71
72
|
## Agent Support
|
|
72
73
|
|
|
@@ -232,16 +233,29 @@ manifest.
|
|
|
232
233
|
|
|
233
234
|
```bash
|
|
234
235
|
llm-wiki sync --src-dir . --wiki-dir docs/llm_wiki
|
|
236
|
+
llm-wiki sync --jobs auto --cache-stats --src-dir . --wiki-dir docs/llm_wiki
|
|
235
237
|
```
|
|
236
238
|
|
|
237
239
|
If an older wiki has `index.md` but no manifest, `sync` seeds
|
|
238
240
|
`.llm-wiki-manifest.json` without modifying pages. If neither a manifest nor an
|
|
239
|
-
existing wiki is present, run `bootstrap` first.
|
|
241
|
+
existing wiki is present, run `bootstrap` first. Sync uses the same safe
|
|
242
|
+
persistent inventory cache as lint when a git directory is available. Use
|
|
243
|
+
`--no-cache`, `--rebuild-cache`, `--cache-dir PATH`, and `--cache-stats` to
|
|
244
|
+
control or inspect cache behavior. Use `--jobs N` or `--jobs auto` to opt into
|
|
245
|
+
parallel built-in language extraction. Sync repairs manifests with invalid
|
|
246
|
+
source hashes without touching pages, and stops unusually broad diffs unless
|
|
247
|
+
`--force` is used.
|
|
248
|
+
|
|
249
|
+
`sync` is deterministic: it updates AST/docstring-based page skeletons and does
|
|
250
|
+
not call an LLM. In agent workflows, treat sync as the first step, then inspect
|
|
251
|
+
created or updated pages and replace generic `_Auto-generated from ..._`,
|
|
252
|
+
copied-docstring-only, or knowable `—` placeholders with project-specific
|
|
253
|
+
semantic explanations.
|
|
240
254
|
|
|
241
255
|
### `extract`
|
|
242
256
|
|
|
243
257
|
Print source inventory as JSON. All registered extractors run; missing optional
|
|
244
|
-
|
|
258
|
+
prepared helpers are skipped when there are no matching source files.
|
|
245
259
|
|
|
246
260
|
```bash
|
|
247
261
|
llm-wiki extract --src-dir .
|
|
@@ -253,6 +267,23 @@ llm-wiki extract --src-dir . --package llm_wiki_cli
|
|
|
253
267
|
llm-wiki extract --src-dir . --include-empty
|
|
254
268
|
```
|
|
255
269
|
|
|
270
|
+
### `prepare-extractors`
|
|
271
|
+
|
|
272
|
+
Prepare TypeScript dependencies and cached Go/Rust helper binaries outside the
|
|
273
|
+
lint/extract hot path.
|
|
274
|
+
|
|
275
|
+
```bash
|
|
276
|
+
llm-wiki prepare-extractors --src-dir .
|
|
277
|
+
llm-wiki prepare-extractors --language typescript --language go
|
|
278
|
+
llm-wiki prepare-extractors --cache-dir .cache/llm-wiki
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
When `--language` is omitted, only helper languages detected in `--src-dir` are
|
|
282
|
+
prepared. Helper cache resolution follows `--cache-dir`, then
|
|
283
|
+
`LLM_WIKI_CACHE_DIR`, then `.git/llm-wiki-extractors/`. If Go is installed in a
|
|
284
|
+
nonstandard location or the `go` on `PATH` cannot run, set
|
|
285
|
+
`LLM_WIKI_GO=/path/to/go` before running `prepare-extractors`.
|
|
286
|
+
|
|
256
287
|
### `lint` and `ci-check`
|
|
257
288
|
|
|
258
289
|
Validate wiki links, orphan pages, entities, modules, workflows,
|
|
@@ -261,20 +292,40 @@ infrastructure, plugin lint rules, and team policy.
|
|
|
261
292
|
```bash
|
|
262
293
|
llm-wiki lint --wiki-dir docs/llm_wiki --src-dir .
|
|
263
294
|
llm-wiki lint --strict --wiki-dir docs/llm_wiki --src-dir .
|
|
295
|
+
llm-wiki lint --profile --wiki-dir docs/llm_wiki --src-dir .
|
|
296
|
+
llm-wiki lint --cache-stats --wiki-dir docs/llm_wiki --src-dir .
|
|
297
|
+
llm-wiki lint --jobs auto --wiki-dir docs/llm_wiki --src-dir .
|
|
264
298
|
```
|
|
265
299
|
|
|
266
300
|
Strict mode also requires the core wiki structure and a fresh sync manifest.
|
|
301
|
+
`--profile` suppresses the human-readable lint text and prints one JSON object
|
|
302
|
+
to stdout containing the normal lint report, diagnostics, and phase timings.
|
|
303
|
+
The JSON contract is preserved for extractor failures as well; lint still exits
|
|
304
|
+
nonzero, but stdout remains machine-readable.
|
|
305
|
+
Lint uses a persistent deep-inventory cache by default when a git directory is
|
|
306
|
+
available, storing `.git/llm-wiki-inventory-cache.json`. Override the cache
|
|
307
|
+
directory with `LLM_WIKI_CACHE_DIR` or `--cache-dir PATH`; the CLI flag wins.
|
|
308
|
+
Use `--no-cache` to disable load/save, `--rebuild-cache` to ignore and rewrite
|
|
309
|
+
the cache, and `--cache-stats` to include cache diagnostics. Cache corruption or
|
|
310
|
+
invalid fingerprints fall back to a full extraction without reducing lint
|
|
311
|
+
coverage. With `--profile --cache-stats`, the JSON payload includes a top-level
|
|
312
|
+
`cache` object. Use `--jobs N` or `--jobs auto` to opt into parallel built-in
|
|
313
|
+
language extraction; the default is `--jobs 1`. Plugin extractors remain
|
|
314
|
+
sequential unless future plugin metadata explicitly marks them parallel-safe.
|
|
267
315
|
|
|
268
316
|
For CI:
|
|
269
317
|
|
|
270
318
|
```bash
|
|
271
319
|
llm-wiki ci-check --src-dir . --wiki-dir docs/llm_wiki
|
|
320
|
+
llm-wiki ci-check --jobs auto --src-dir . --wiki-dir docs/llm_wiki
|
|
272
321
|
llm-wiki ci-check --format json --report .git/llm-wiki-ci-report.md
|
|
273
322
|
llm-wiki ci-check --format markdown
|
|
274
323
|
```
|
|
275
324
|
|
|
276
325
|
`ci-check` always runs strict validation, writes a Markdown report, records a
|
|
277
|
-
local metrics event,
|
|
326
|
+
local metrics event, uses the same safe inventory cache when available, and
|
|
327
|
+
exits nonzero on validation failure. `--report` is an output path, so explicit
|
|
328
|
+
absolute paths and relative artifact paths outside the project root are allowed.
|
|
278
329
|
|
|
279
330
|
### `context`
|
|
280
331
|
|
|
@@ -323,7 +374,9 @@ llm-wiki generate-prompt --template compact
|
|
|
323
374
|
```
|
|
324
375
|
|
|
325
376
|
The generated prompt includes change-type guidance. Installed prompt templates
|
|
326
|
-
can override the default prompt body.
|
|
377
|
+
can override the default prompt body. The default prompt asks agents to run
|
|
378
|
+
`sync` first, then perform a semantic pass on affected pages before accepting a
|
|
379
|
+
lint-clean wiki as complete.
|
|
327
380
|
|
|
328
381
|
### `mcp`
|
|
329
382
|
|
|
@@ -28,15 +28,16 @@ external tools when they are available on `PATH`.
|
|
|
28
28
|
| Area | Implementation | Runtime requirement |
|
|
29
29
|
|---|---|---|
|
|
30
30
|
| Python | stdlib `ast` | Python 3.9+ |
|
|
31
|
-
| TypeScript / TSX | bundled Node script using `ts-morph` | Node.js
|
|
32
|
-
| Go | bundled Go extractor using `go/ast` |
|
|
33
|
-
| Rust | bundled Rust extractor using `syn` |
|
|
31
|
+
| TypeScript / TSX | bundled Node script using `ts-morph` | prepared Node.js dependencies |
|
|
32
|
+
| Go | bundled Go extractor using `go/ast` | prepared helper binary |
|
|
33
|
+
| Rust | bundled Rust extractor using `syn` | prepared helper binary |
|
|
34
34
|
| Docker / Compose | built-in parsers | none |
|
|
35
35
|
| MCP server | official Python MCP SDK | `agent-wiki-cli[mcp]`, Python 3.10+ |
|
|
36
36
|
|
|
37
|
-
TypeScript, Go, and Rust extras are metadata-only;
|
|
38
|
-
|
|
39
|
-
|
|
37
|
+
TypeScript, Go, and Rust extras are metadata-only; prepare their helper
|
|
38
|
+
dependencies explicitly with `llm-wiki prepare-extractors`. Lint, CI, and
|
|
39
|
+
extract never run `npm install`, `go build`, `go run`, `cargo build`, or
|
|
40
|
+
`cargo run` automatically.
|
|
40
41
|
|
|
41
42
|
## Agent Support
|
|
42
43
|
|
|
@@ -202,16 +203,29 @@ manifest.
|
|
|
202
203
|
|
|
203
204
|
```bash
|
|
204
205
|
llm-wiki sync --src-dir . --wiki-dir docs/llm_wiki
|
|
206
|
+
llm-wiki sync --jobs auto --cache-stats --src-dir . --wiki-dir docs/llm_wiki
|
|
205
207
|
```
|
|
206
208
|
|
|
207
209
|
If an older wiki has `index.md` but no manifest, `sync` seeds
|
|
208
210
|
`.llm-wiki-manifest.json` without modifying pages. If neither a manifest nor an
|
|
209
|
-
existing wiki is present, run `bootstrap` first.
|
|
211
|
+
existing wiki is present, run `bootstrap` first. Sync uses the same safe
|
|
212
|
+
persistent inventory cache as lint when a git directory is available. Use
|
|
213
|
+
`--no-cache`, `--rebuild-cache`, `--cache-dir PATH`, and `--cache-stats` to
|
|
214
|
+
control or inspect cache behavior. Use `--jobs N` or `--jobs auto` to opt into
|
|
215
|
+
parallel built-in language extraction. Sync repairs manifests with invalid
|
|
216
|
+
source hashes without touching pages, and stops unusually broad diffs unless
|
|
217
|
+
`--force` is used.
|
|
218
|
+
|
|
219
|
+
`sync` is deterministic: it updates AST/docstring-based page skeletons and does
|
|
220
|
+
not call an LLM. In agent workflows, treat sync as the first step, then inspect
|
|
221
|
+
created or updated pages and replace generic `_Auto-generated from ..._`,
|
|
222
|
+
copied-docstring-only, or knowable `—` placeholders with project-specific
|
|
223
|
+
semantic explanations.
|
|
210
224
|
|
|
211
225
|
### `extract`
|
|
212
226
|
|
|
213
227
|
Print source inventory as JSON. All registered extractors run; missing optional
|
|
214
|
-
|
|
228
|
+
prepared helpers are skipped when there are no matching source files.
|
|
215
229
|
|
|
216
230
|
```bash
|
|
217
231
|
llm-wiki extract --src-dir .
|
|
@@ -223,6 +237,23 @@ llm-wiki extract --src-dir . --package llm_wiki_cli
|
|
|
223
237
|
llm-wiki extract --src-dir . --include-empty
|
|
224
238
|
```
|
|
225
239
|
|
|
240
|
+
### `prepare-extractors`
|
|
241
|
+
|
|
242
|
+
Prepare TypeScript dependencies and cached Go/Rust helper binaries outside the
|
|
243
|
+
lint/extract hot path.
|
|
244
|
+
|
|
245
|
+
```bash
|
|
246
|
+
llm-wiki prepare-extractors --src-dir .
|
|
247
|
+
llm-wiki prepare-extractors --language typescript --language go
|
|
248
|
+
llm-wiki prepare-extractors --cache-dir .cache/llm-wiki
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
When `--language` is omitted, only helper languages detected in `--src-dir` are
|
|
252
|
+
prepared. Helper cache resolution follows `--cache-dir`, then
|
|
253
|
+
`LLM_WIKI_CACHE_DIR`, then `.git/llm-wiki-extractors/`. If Go is installed in a
|
|
254
|
+
nonstandard location or the `go` on `PATH` cannot run, set
|
|
255
|
+
`LLM_WIKI_GO=/path/to/go` before running `prepare-extractors`.
|
|
256
|
+
|
|
226
257
|
### `lint` and `ci-check`
|
|
227
258
|
|
|
228
259
|
Validate wiki links, orphan pages, entities, modules, workflows,
|
|
@@ -231,20 +262,40 @@ infrastructure, plugin lint rules, and team policy.
|
|
|
231
262
|
```bash
|
|
232
263
|
llm-wiki lint --wiki-dir docs/llm_wiki --src-dir .
|
|
233
264
|
llm-wiki lint --strict --wiki-dir docs/llm_wiki --src-dir .
|
|
265
|
+
llm-wiki lint --profile --wiki-dir docs/llm_wiki --src-dir .
|
|
266
|
+
llm-wiki lint --cache-stats --wiki-dir docs/llm_wiki --src-dir .
|
|
267
|
+
llm-wiki lint --jobs auto --wiki-dir docs/llm_wiki --src-dir .
|
|
234
268
|
```
|
|
235
269
|
|
|
236
270
|
Strict mode also requires the core wiki structure and a fresh sync manifest.
|
|
271
|
+
`--profile` suppresses the human-readable lint text and prints one JSON object
|
|
272
|
+
to stdout containing the normal lint report, diagnostics, and phase timings.
|
|
273
|
+
The JSON contract is preserved for extractor failures as well; lint still exits
|
|
274
|
+
nonzero, but stdout remains machine-readable.
|
|
275
|
+
Lint uses a persistent deep-inventory cache by default when a git directory is
|
|
276
|
+
available, storing `.git/llm-wiki-inventory-cache.json`. Override the cache
|
|
277
|
+
directory with `LLM_WIKI_CACHE_DIR` or `--cache-dir PATH`; the CLI flag wins.
|
|
278
|
+
Use `--no-cache` to disable load/save, `--rebuild-cache` to ignore and rewrite
|
|
279
|
+
the cache, and `--cache-stats` to include cache diagnostics. Cache corruption or
|
|
280
|
+
invalid fingerprints fall back to a full extraction without reducing lint
|
|
281
|
+
coverage. With `--profile --cache-stats`, the JSON payload includes a top-level
|
|
282
|
+
`cache` object. Use `--jobs N` or `--jobs auto` to opt into parallel built-in
|
|
283
|
+
language extraction; the default is `--jobs 1`. Plugin extractors remain
|
|
284
|
+
sequential unless future plugin metadata explicitly marks them parallel-safe.
|
|
237
285
|
|
|
238
286
|
For CI:
|
|
239
287
|
|
|
240
288
|
```bash
|
|
241
289
|
llm-wiki ci-check --src-dir . --wiki-dir docs/llm_wiki
|
|
290
|
+
llm-wiki ci-check --jobs auto --src-dir . --wiki-dir docs/llm_wiki
|
|
242
291
|
llm-wiki ci-check --format json --report .git/llm-wiki-ci-report.md
|
|
243
292
|
llm-wiki ci-check --format markdown
|
|
244
293
|
```
|
|
245
294
|
|
|
246
295
|
`ci-check` always runs strict validation, writes a Markdown report, records a
|
|
247
|
-
local metrics event,
|
|
296
|
+
local metrics event, uses the same safe inventory cache when available, and
|
|
297
|
+
exits nonzero on validation failure. `--report` is an output path, so explicit
|
|
298
|
+
absolute paths and relative artifact paths outside the project root are allowed.
|
|
248
299
|
|
|
249
300
|
### `context`
|
|
250
301
|
|
|
@@ -293,7 +344,9 @@ llm-wiki generate-prompt --template compact
|
|
|
293
344
|
```
|
|
294
345
|
|
|
295
346
|
The generated prompt includes change-type guidance. Installed prompt templates
|
|
296
|
-
can override the default prompt body.
|
|
347
|
+
can override the default prompt body. The default prompt asks agents to run
|
|
348
|
+
`sync` first, then perform a semantic pass on affected pages before accepting a
|
|
349
|
+
lint-clean wiki as complete.
|
|
297
350
|
|
|
298
351
|
### `mcp`
|
|
299
352
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agent-wiki-cli
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.5.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
|
|
@@ -58,15 +58,16 @@ external tools when they are available on `PATH`.
|
|
|
58
58
|
| Area | Implementation | Runtime requirement |
|
|
59
59
|
|---|---|---|
|
|
60
60
|
| Python | stdlib `ast` | Python 3.9+ |
|
|
61
|
-
| TypeScript / TSX | bundled Node script using `ts-morph` | Node.js
|
|
62
|
-
| Go | bundled Go extractor using `go/ast` |
|
|
63
|
-
| Rust | bundled Rust extractor using `syn` |
|
|
61
|
+
| TypeScript / TSX | bundled Node script using `ts-morph` | prepared Node.js dependencies |
|
|
62
|
+
| Go | bundled Go extractor using `go/ast` | prepared helper binary |
|
|
63
|
+
| Rust | bundled Rust extractor using `syn` | prepared helper binary |
|
|
64
64
|
| Docker / Compose | built-in parsers | none |
|
|
65
65
|
| MCP server | official Python MCP SDK | `agent-wiki-cli[mcp]`, Python 3.10+ |
|
|
66
66
|
|
|
67
|
-
TypeScript, Go, and Rust extras are metadata-only;
|
|
68
|
-
|
|
69
|
-
|
|
67
|
+
TypeScript, Go, and Rust extras are metadata-only; prepare their helper
|
|
68
|
+
dependencies explicitly with `llm-wiki prepare-extractors`. Lint, CI, and
|
|
69
|
+
extract never run `npm install`, `go build`, `go run`, `cargo build`, or
|
|
70
|
+
`cargo run` automatically.
|
|
70
71
|
|
|
71
72
|
## Agent Support
|
|
72
73
|
|
|
@@ -232,16 +233,29 @@ manifest.
|
|
|
232
233
|
|
|
233
234
|
```bash
|
|
234
235
|
llm-wiki sync --src-dir . --wiki-dir docs/llm_wiki
|
|
236
|
+
llm-wiki sync --jobs auto --cache-stats --src-dir . --wiki-dir docs/llm_wiki
|
|
235
237
|
```
|
|
236
238
|
|
|
237
239
|
If an older wiki has `index.md` but no manifest, `sync` seeds
|
|
238
240
|
`.llm-wiki-manifest.json` without modifying pages. If neither a manifest nor an
|
|
239
|
-
existing wiki is present, run `bootstrap` first.
|
|
241
|
+
existing wiki is present, run `bootstrap` first. Sync uses the same safe
|
|
242
|
+
persistent inventory cache as lint when a git directory is available. Use
|
|
243
|
+
`--no-cache`, `--rebuild-cache`, `--cache-dir PATH`, and `--cache-stats` to
|
|
244
|
+
control or inspect cache behavior. Use `--jobs N` or `--jobs auto` to opt into
|
|
245
|
+
parallel built-in language extraction. Sync repairs manifests with invalid
|
|
246
|
+
source hashes without touching pages, and stops unusually broad diffs unless
|
|
247
|
+
`--force` is used.
|
|
248
|
+
|
|
249
|
+
`sync` is deterministic: it updates AST/docstring-based page skeletons and does
|
|
250
|
+
not call an LLM. In agent workflows, treat sync as the first step, then inspect
|
|
251
|
+
created or updated pages and replace generic `_Auto-generated from ..._`,
|
|
252
|
+
copied-docstring-only, or knowable `—` placeholders with project-specific
|
|
253
|
+
semantic explanations.
|
|
240
254
|
|
|
241
255
|
### `extract`
|
|
242
256
|
|
|
243
257
|
Print source inventory as JSON. All registered extractors run; missing optional
|
|
244
|
-
|
|
258
|
+
prepared helpers are skipped when there are no matching source files.
|
|
245
259
|
|
|
246
260
|
```bash
|
|
247
261
|
llm-wiki extract --src-dir .
|
|
@@ -253,6 +267,23 @@ llm-wiki extract --src-dir . --package llm_wiki_cli
|
|
|
253
267
|
llm-wiki extract --src-dir . --include-empty
|
|
254
268
|
```
|
|
255
269
|
|
|
270
|
+
### `prepare-extractors`
|
|
271
|
+
|
|
272
|
+
Prepare TypeScript dependencies and cached Go/Rust helper binaries outside the
|
|
273
|
+
lint/extract hot path.
|
|
274
|
+
|
|
275
|
+
```bash
|
|
276
|
+
llm-wiki prepare-extractors --src-dir .
|
|
277
|
+
llm-wiki prepare-extractors --language typescript --language go
|
|
278
|
+
llm-wiki prepare-extractors --cache-dir .cache/llm-wiki
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
When `--language` is omitted, only helper languages detected in `--src-dir` are
|
|
282
|
+
prepared. Helper cache resolution follows `--cache-dir`, then
|
|
283
|
+
`LLM_WIKI_CACHE_DIR`, then `.git/llm-wiki-extractors/`. If Go is installed in a
|
|
284
|
+
nonstandard location or the `go` on `PATH` cannot run, set
|
|
285
|
+
`LLM_WIKI_GO=/path/to/go` before running `prepare-extractors`.
|
|
286
|
+
|
|
256
287
|
### `lint` and `ci-check`
|
|
257
288
|
|
|
258
289
|
Validate wiki links, orphan pages, entities, modules, workflows,
|
|
@@ -261,20 +292,40 @@ infrastructure, plugin lint rules, and team policy.
|
|
|
261
292
|
```bash
|
|
262
293
|
llm-wiki lint --wiki-dir docs/llm_wiki --src-dir .
|
|
263
294
|
llm-wiki lint --strict --wiki-dir docs/llm_wiki --src-dir .
|
|
295
|
+
llm-wiki lint --profile --wiki-dir docs/llm_wiki --src-dir .
|
|
296
|
+
llm-wiki lint --cache-stats --wiki-dir docs/llm_wiki --src-dir .
|
|
297
|
+
llm-wiki lint --jobs auto --wiki-dir docs/llm_wiki --src-dir .
|
|
264
298
|
```
|
|
265
299
|
|
|
266
300
|
Strict mode also requires the core wiki structure and a fresh sync manifest.
|
|
301
|
+
`--profile` suppresses the human-readable lint text and prints one JSON object
|
|
302
|
+
to stdout containing the normal lint report, diagnostics, and phase timings.
|
|
303
|
+
The JSON contract is preserved for extractor failures as well; lint still exits
|
|
304
|
+
nonzero, but stdout remains machine-readable.
|
|
305
|
+
Lint uses a persistent deep-inventory cache by default when a git directory is
|
|
306
|
+
available, storing `.git/llm-wiki-inventory-cache.json`. Override the cache
|
|
307
|
+
directory with `LLM_WIKI_CACHE_DIR` or `--cache-dir PATH`; the CLI flag wins.
|
|
308
|
+
Use `--no-cache` to disable load/save, `--rebuild-cache` to ignore and rewrite
|
|
309
|
+
the cache, and `--cache-stats` to include cache diagnostics. Cache corruption or
|
|
310
|
+
invalid fingerprints fall back to a full extraction without reducing lint
|
|
311
|
+
coverage. With `--profile --cache-stats`, the JSON payload includes a top-level
|
|
312
|
+
`cache` object. Use `--jobs N` or `--jobs auto` to opt into parallel built-in
|
|
313
|
+
language extraction; the default is `--jobs 1`. Plugin extractors remain
|
|
314
|
+
sequential unless future plugin metadata explicitly marks them parallel-safe.
|
|
267
315
|
|
|
268
316
|
For CI:
|
|
269
317
|
|
|
270
318
|
```bash
|
|
271
319
|
llm-wiki ci-check --src-dir . --wiki-dir docs/llm_wiki
|
|
320
|
+
llm-wiki ci-check --jobs auto --src-dir . --wiki-dir docs/llm_wiki
|
|
272
321
|
llm-wiki ci-check --format json --report .git/llm-wiki-ci-report.md
|
|
273
322
|
llm-wiki ci-check --format markdown
|
|
274
323
|
```
|
|
275
324
|
|
|
276
325
|
`ci-check` always runs strict validation, writes a Markdown report, records a
|
|
277
|
-
local metrics event,
|
|
326
|
+
local metrics event, uses the same safe inventory cache when available, and
|
|
327
|
+
exits nonzero on validation failure. `--report` is an output path, so explicit
|
|
328
|
+
absolute paths and relative artifact paths outside the project root are allowed.
|
|
278
329
|
|
|
279
330
|
### `context`
|
|
280
331
|
|
|
@@ -323,7 +374,9 @@ llm-wiki generate-prompt --template compact
|
|
|
323
374
|
```
|
|
324
375
|
|
|
325
376
|
The generated prompt includes change-type guidance. Installed prompt templates
|
|
326
|
-
can override the default prompt body.
|
|
377
|
+
can override the default prompt body. The default prompt asks agents to run
|
|
378
|
+
`sync` first, then perform a semantic pass on affected pages before accepting a
|
|
379
|
+
lint-clean wiki as complete.
|
|
327
380
|
|
|
328
381
|
### `mcp`
|
|
329
382
|
|
|
@@ -26,6 +26,7 @@ src/llm_wiki_cli/commands/metrics_cmd.py
|
|
|
26
26
|
src/llm_wiki_cli/commands/migrate_cmd.py
|
|
27
27
|
src/llm_wiki_cli/commands/obsidian_cmd.py
|
|
28
28
|
src/llm_wiki_cli/commands/plugins_cmd.py
|
|
29
|
+
src/llm_wiki_cli/commands/prepare_extractors_cmd.py
|
|
29
30
|
src/llm_wiki_cli/commands/release_cmd.py
|
|
30
31
|
src/llm_wiki_cli/commands/review_cmd.py
|
|
31
32
|
src/llm_wiki_cli/commands/status_cmd.py
|
|
@@ -49,7 +50,9 @@ src/llm_wiki_cli/extractors/ts_scripts/extract.js
|
|
|
49
50
|
src/llm_wiki_cli/extractors/ts_scripts/package.json
|
|
50
51
|
src/llm_wiki_cli/services/__init__.py
|
|
51
52
|
src/llm_wiki_cli/services/circuit_breaker.py
|
|
53
|
+
src/llm_wiki_cli/services/extractor_helpers.py
|
|
52
54
|
src/llm_wiki_cli/services/imports.py
|
|
55
|
+
src/llm_wiki_cli/services/inventory_cache.py
|
|
53
56
|
src/llm_wiki_cli/services/io.py
|
|
54
57
|
src/llm_wiki_cli/services/lockfile.py
|
|
55
58
|
src/llm_wiki_cli/services/mcp_server.py
|
|
@@ -60,10 +63,12 @@ src/llm_wiki_cli/services/paths.py
|
|
|
60
63
|
src/llm_wiki_cli/services/plugins.py
|
|
61
64
|
src/llm_wiki_cli/services/schema.py
|
|
62
65
|
src/llm_wiki_cli/services/secure_file.py
|
|
66
|
+
src/llm_wiki_cli/services/source_snapshot.py
|
|
63
67
|
src/llm_wiki_cli/services/team.py
|
|
64
68
|
src/llm_wiki_cli/services/versioning.py
|
|
65
69
|
tests/test_bootstrap.py
|
|
66
70
|
tests/test_bump.py
|
|
71
|
+
tests/test_ci_check.py
|
|
67
72
|
tests/test_circuit_breaker.py
|
|
68
73
|
tests/test_config.py
|
|
69
74
|
tests/test_context.py
|
|
@@ -72,10 +77,13 @@ tests/test_docker_extract.py
|
|
|
72
77
|
tests/test_docker_lint.py
|
|
73
78
|
tests/test_e2e.py
|
|
74
79
|
tests/test_extract.py
|
|
80
|
+
tests/test_extractor_helpers.py
|
|
75
81
|
tests/test_generate_prompt.py
|
|
76
82
|
tests/test_go_extract.py
|
|
77
83
|
tests/test_hook.py
|
|
84
|
+
tests/test_imports.py
|
|
78
85
|
tests/test_init.py
|
|
86
|
+
tests/test_inventory_cache.py
|
|
79
87
|
tests/test_io.py
|
|
80
88
|
tests/test_lint.py
|
|
81
89
|
tests/test_lockfile.py
|
|
@@ -89,6 +97,7 @@ tests/test_plugins.py
|
|
|
89
97
|
tests/test_release.py
|
|
90
98
|
tests/test_rust_extract.py
|
|
91
99
|
tests/test_schema.py
|
|
100
|
+
tests/test_source_snapshot.py
|
|
92
101
|
tests/test_status.py
|
|
93
102
|
tests/test_sync.py
|
|
94
103
|
tests/test_team.py
|
|
@@ -17,6 +17,7 @@ from .commands import (
|
|
|
17
17
|
migrate_cmd,
|
|
18
18
|
obsidian_cmd,
|
|
19
19
|
plugins_cmd,
|
|
20
|
+
prepare_extractors_cmd,
|
|
20
21
|
release_cmd,
|
|
21
22
|
review_cmd,
|
|
22
23
|
status_cmd,
|
|
@@ -37,6 +38,18 @@ def _positive_int(value: str) -> int:
|
|
|
37
38
|
return parsed
|
|
38
39
|
|
|
39
40
|
|
|
41
|
+
def _jobs_value(value: str) -> int:
|
|
42
|
+
if value == "auto":
|
|
43
|
+
return max(1, os.cpu_count() or 1)
|
|
44
|
+
try:
|
|
45
|
+
parsed = int(value)
|
|
46
|
+
except ValueError as exc:
|
|
47
|
+
raise argparse.ArgumentTypeError("must be a positive integer or 'auto'") from exc
|
|
48
|
+
if parsed < 1:
|
|
49
|
+
raise argparse.ArgumentTypeError("must be greater than zero")
|
|
50
|
+
return parsed
|
|
51
|
+
|
|
52
|
+
|
|
40
53
|
def main():
|
|
41
54
|
parser = argparse.ArgumentParser(description="LLM Wiki CLI")
|
|
42
55
|
parser.add_argument("--version", action="version", version=f"llm-wiki {__version__}")
|
|
@@ -72,6 +85,33 @@ def main():
|
|
|
72
85
|
lint_parser.add_argument("--src-dir", default=".", help="Source directory to cross-reference against")
|
|
73
86
|
lint_parser.add_argument("--strict", action="store_true",
|
|
74
87
|
help="Require core wiki structure and a fresh sync manifest")
|
|
88
|
+
lint_parser.add_argument("--profile", action="store_true",
|
|
89
|
+
help="Print combined lint report and phase timings as JSON")
|
|
90
|
+
lint_parser.add_argument("--no-cache", action="store_true",
|
|
91
|
+
help="Disable persistent inventory cache for this run")
|
|
92
|
+
lint_parser.add_argument("--rebuild-cache", action="store_true",
|
|
93
|
+
help="Ignore existing inventory cache and rewrite it after extraction")
|
|
94
|
+
lint_parser.add_argument("--cache-stats", action="store_true",
|
|
95
|
+
help="Include inventory cache diagnostics in lint output")
|
|
96
|
+
lint_parser.add_argument("--cache-dir", default=None, metavar="PATH",
|
|
97
|
+
help="Directory for llm-wiki-inventory-cache.json")
|
|
98
|
+
lint_parser.add_argument("--jobs", type=_jobs_value, default=1, metavar="JOBS",
|
|
99
|
+
help="Parallel built-in extractor jobs: positive integer or 'auto' (default: 1)")
|
|
100
|
+
|
|
101
|
+
# prepare-extractors command
|
|
102
|
+
prepare_parser = subparsers.add_parser(
|
|
103
|
+
"prepare-extractors",
|
|
104
|
+
help="Prepare TypeScript, Go, and Rust extractor helpers",
|
|
105
|
+
)
|
|
106
|
+
prepare_parser.add_argument("--src-dir", default=".", help="Source directory to inspect")
|
|
107
|
+
prepare_parser.add_argument("--cache-dir", default=None, metavar="PATH",
|
|
108
|
+
help="Directory for extractor helper cache")
|
|
109
|
+
prepare_parser.add_argument(
|
|
110
|
+
"--language",
|
|
111
|
+
action="append",
|
|
112
|
+
choices=["typescript", "go", "rust"],
|
|
113
|
+
help="Helper language to prepare; may be repeated",
|
|
114
|
+
)
|
|
75
115
|
|
|
76
116
|
# ci-check command
|
|
77
117
|
ci_parser = subparsers.add_parser("ci-check", help="Run strict wiki validation and write a CI report")
|
|
@@ -82,6 +122,8 @@ def main():
|
|
|
82
122
|
help="Console output format (default: text)")
|
|
83
123
|
ci_parser.add_argument("--report", default=".git/llm-wiki-ci-report.md",
|
|
84
124
|
help="Markdown report path (default: .git/llm-wiki-ci-report.md)")
|
|
125
|
+
ci_parser.add_argument("--jobs", type=_jobs_value, default=1, metavar="JOBS",
|
|
126
|
+
help="Parallel built-in extractor jobs: positive integer or 'auto' (default: 1)")
|
|
85
127
|
|
|
86
128
|
# hook command
|
|
87
129
|
hook_parser = subparsers.add_parser("install-hook", help="Install git hooks for wiki sync")
|
|
@@ -306,6 +348,18 @@ def main():
|
|
|
306
348
|
sync_parser.add_argument("--src-dir", default=".", help="Source directory to scan (default: .)")
|
|
307
349
|
sync_parser.add_argument("--wiki-dir", default=DEFAULT_WIKI_DIR,
|
|
308
350
|
help="Wiki directory (default: docs/llm_wiki)")
|
|
351
|
+
sync_parser.add_argument("--no-cache", action="store_true",
|
|
352
|
+
help="Disable persistent inventory cache for this run")
|
|
353
|
+
sync_parser.add_argument("--rebuild-cache", action="store_true",
|
|
354
|
+
help="Ignore existing inventory cache and rewrite it after extraction")
|
|
355
|
+
sync_parser.add_argument("--cache-stats", action="store_true",
|
|
356
|
+
help="Include inventory cache diagnostics in sync output")
|
|
357
|
+
sync_parser.add_argument("--cache-dir", default=None, metavar="PATH",
|
|
358
|
+
help="Directory for llm-wiki-inventory-cache.json")
|
|
359
|
+
sync_parser.add_argument("--jobs", type=_jobs_value, default=1, metavar="JOBS",
|
|
360
|
+
help="Parallel built-in extractor jobs: positive integer or 'auto' (default: 1)")
|
|
361
|
+
sync_parser.add_argument("--force", action="store_true",
|
|
362
|
+
help="Allow sync to apply unusually broad source diffs")
|
|
309
363
|
|
|
310
364
|
# migrate command
|
|
311
365
|
migrate_parser = subparsers.add_parser(
|
|
@@ -349,6 +403,8 @@ def main():
|
|
|
349
403
|
extract_cmd.run(args)
|
|
350
404
|
elif args.command == "lint":
|
|
351
405
|
lint_cmd.run(args)
|
|
406
|
+
elif args.command == "prepare-extractors":
|
|
407
|
+
prepare_extractors_cmd.run(args)
|
|
352
408
|
elif args.command == "ci-check":
|
|
353
409
|
ci_check_cmd.run(args)
|
|
354
410
|
elif args.command == "install-hook":
|