agent-wiki-cli 0.5.1__tar.gz → 0.5.2__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.5.1/src/agent_wiki_cli.egg-info → agent_wiki_cli-0.5.2}/PKG-INFO +93 -2
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/README.md +92 -1
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/pyproject.toml +1 -1
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2/src/agent_wiki_cli.egg-info}/PKG-INFO +93 -2
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/agent_wiki_cli.egg-info/SOURCES.txt +3 -0
- agent_wiki_cli-0.5.2/src/llm_wiki_cli/api.py +130 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/llm_wiki_cli/cli.py +18 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/llm_wiki_cli/commands/bootstrap_cmd.py +116 -43
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/llm_wiki_cli/commands/context_cmd.py +36 -8
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/llm_wiki_cli/commands/extract_cmd.py +160 -37
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/llm_wiki_cli/config.py +53 -0
- agent_wiki_cli-0.5.2/src/llm_wiki_cli/services/contracts.py +6 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/llm_wiki_cli/services/io.py +16 -0
- agent_wiki_cli-0.5.2/tests/test_api.py +32 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/tests/test_bootstrap.py +58 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/tests/test_config.py +27 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/tests/test_context.py +43 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/tests/test_extract.py +48 -0
- agent_wiki_cli-0.5.2/tests/test_io.py +21 -0
- agent_wiki_cli-0.5.1/tests/test_io.py +0 -11
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/LICENSE +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/setup.cfg +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/agent_wiki_cli.egg-info/dependency_links.txt +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/agent_wiki_cli.egg-info/entry_points.txt +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/agent_wiki_cli.egg-info/requires.txt +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/agent_wiki_cli.egg-info/top_level.txt +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/llm_wiki_cli/__init__.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/llm_wiki_cli/commands/__init__.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/llm_wiki_cli/commands/bump_cmd.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/llm_wiki_cli/commands/ci_check_cmd.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/llm_wiki_cli/commands/generate_prompt_cmd.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/llm_wiki_cli/commands/hook_cmd.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/llm_wiki_cli/commands/init_cmd.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/llm_wiki_cli/commands/install_cmd.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/llm_wiki_cli/commands/lint_cmd.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/llm_wiki_cli/commands/mcp_cmd.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/llm_wiki_cli/commands/metrics_cmd.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/llm_wiki_cli/commands/migrate_cmd.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/llm_wiki_cli/commands/obsidian_cmd.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/llm_wiki_cli/commands/plugins_cmd.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/llm_wiki_cli/commands/prepare_extractors_cmd.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/llm_wiki_cli/commands/release_cmd.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/llm_wiki_cli/commands/review_cmd.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/llm_wiki_cli/commands/status_cmd.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/llm_wiki_cli/commands/sync_cmd.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/llm_wiki_cli/commands/team_cmd.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/llm_wiki_cli/commands/trigger_cmd.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/llm_wiki_cli/commands/uninstall_cmd.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/llm_wiki_cli/commands/upgrade_cmd.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/llm_wiki_cli/extractors/__init__.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/llm_wiki_cli/extractors/common.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/llm_wiki_cli/extractors/go_extractor.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/llm_wiki_cli/extractors/go_scripts/go.mod +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/llm_wiki_cli/extractors/go_scripts/main.go +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/llm_wiki_cli/extractors/python_extractor.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/llm_wiki_cli/extractors/rust_extractor.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/llm_wiki_cli/extractors/rust_scripts/Cargo.lock +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/llm_wiki_cli/extractors/rust_scripts/Cargo.toml +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/llm_wiki_cli/extractors/rust_scripts/src/main.rs +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/llm_wiki_cli/extractors/ts_extractor.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/llm_wiki_cli/extractors/ts_scripts/extract.js +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/llm_wiki_cli/extractors/ts_scripts/package.json +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/llm_wiki_cli/services/__init__.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/llm_wiki_cli/services/circuit_breaker.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/llm_wiki_cli/services/extractor_helpers.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/llm_wiki_cli/services/imports.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/llm_wiki_cli/services/inventory_cache.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/llm_wiki_cli/services/lockfile.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/llm_wiki_cli/services/mcp_server.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/llm_wiki_cli/services/metrics.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/llm_wiki_cli/services/obsidian.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/llm_wiki_cli/services/packages.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/llm_wiki_cli/services/paths.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/llm_wiki_cli/services/plugins.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/llm_wiki_cli/services/schema.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/llm_wiki_cli/services/secure_file.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/llm_wiki_cli/services/source_snapshot.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/llm_wiki_cli/services/team.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/src/llm_wiki_cli/services/versioning.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/tests/test_bump.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/tests/test_ci_check.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/tests/test_circuit_breaker.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/tests/test_docker_bootstrap.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/tests/test_docker_extract.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/tests/test_docker_lint.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/tests/test_e2e.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/tests/test_extractor_helpers.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/tests/test_generate_prompt.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/tests/test_go_extract.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/tests/test_hook.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/tests/test_imports.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/tests/test_init.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/tests/test_inventory_cache.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/tests/test_lint.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/tests/test_lockfile.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/tests/test_mcp.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/tests/test_migrate.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/tests/test_multilanguage_wiki.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/tests/test_obsidian.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/tests/test_package_metadata.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/tests/test_phase4_quality.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/tests/test_plugins.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/tests/test_release.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/tests/test_rust_extract.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/tests/test_schema.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/tests/test_source_snapshot.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/tests/test_status.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/tests/test_sync.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/tests/test_team.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/tests/test_trigger.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/tests/test_ts_extract.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/tests/test_uninstall.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/tests/test_upgrade.py +0 -0
- {agent_wiki_cli-0.5.1 → agent_wiki_cli-0.5.2}/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.5.
|
|
3
|
+
Version: 0.5.2
|
|
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
|
|
@@ -219,12 +219,16 @@ llm-wiki bootstrap --src-dir . --wiki-dir docs/llm_wiki
|
|
|
219
219
|
llm-wiki bootstrap --overwrite
|
|
220
220
|
llm-wiki bootstrap --depth shallow
|
|
221
221
|
llm-wiki bootstrap --skip-workflows
|
|
222
|
+
llm-wiki bootstrap --format json --source-adapter
|
|
222
223
|
```
|
|
223
224
|
|
|
224
225
|
`bootstrap` writes entity, module, workflow, infrastructure, index, log, and
|
|
225
226
|
manifest files. `--depth full` is the default and includes docstrings, imports,
|
|
226
227
|
attributes, method signatures, and relationship data where extractors provide
|
|
227
|
-
it.
|
|
228
|
+
it. Use `--source-adapter` when callers need bootstrap to write only under
|
|
229
|
+
`--wiki-dir`; this skips agent constraint-file updates outside the generated
|
|
230
|
+
wiki directory. Use `--format json` to emit a machine-readable summary with
|
|
231
|
+
created, updated, and skipped files plus source counts and the manifest path.
|
|
228
232
|
|
|
229
233
|
### `sync`
|
|
230
234
|
|
|
@@ -265,8 +269,15 @@ llm-wiki extract --src-dir . --deep
|
|
|
265
269
|
llm-wiki extract --src-dir . --paths src/foo.py src/bar.ts
|
|
266
270
|
llm-wiki extract --src-dir . --package llm_wiki_cli
|
|
267
271
|
llm-wiki extract --src-dir . --include-empty
|
|
272
|
+
llm-wiki extract --src-dir . --summary --output sources/code.json --read-only
|
|
273
|
+
llm-wiki extract --src-dir /path/to/repo --allow-external-src --summary
|
|
268
274
|
```
|
|
269
275
|
|
|
276
|
+
The JSON output includes `schema_version: "llm-wiki-extract/v1"` plus
|
|
277
|
+
`inventory` and optional `docker` objects. Inventory keys are POSIX paths
|
|
278
|
+
relative to `--src-dir`, never absolute paths. The v1 contract permits additive
|
|
279
|
+
fields; incompatible shape changes require a new schema version.
|
|
280
|
+
|
|
270
281
|
### `prepare-extractors`
|
|
271
282
|
|
|
272
283
|
Prepare TypeScript dependencies and cached Go/Rust helper binaries outside the
|
|
@@ -336,6 +347,7 @@ llm-wiki context --budget 8000 --src-dir . --format json
|
|
|
336
347
|
llm-wiki context --budget 8000 --src-dir . --format markdown
|
|
337
348
|
llm-wiki context --budget 8000 --focus changed
|
|
338
349
|
llm-wiki context --budget 8000 --focus all
|
|
350
|
+
llm-wiki context --budget 12000 --format json --focus all --output context.json --read-only
|
|
339
351
|
```
|
|
340
352
|
|
|
341
353
|
`--focus changed` is the default. Changed files get full detail, one-hop import
|
|
@@ -362,6 +374,85 @@ Example request:
|
|
|
362
374
|
}
|
|
363
375
|
```
|
|
364
376
|
|
|
377
|
+
`--output PATH` writes the generated JSON or Markdown directly instead of
|
|
378
|
+
printing it to stdout. `--read-only` documents source-adapter intent: the command
|
|
379
|
+
does not write wiki files, hooks, manifests, local config, or helper/cache state,
|
|
380
|
+
except for an explicit `--output` artifact.
|
|
381
|
+
|
|
382
|
+
### Codebase source integration
|
|
383
|
+
|
|
384
|
+
For research or indexing systems that need codebase evidence without adopting
|
|
385
|
+
the maintained wiki format, prefer the read-only source-adapter commands:
|
|
386
|
+
|
|
387
|
+
```bash
|
|
388
|
+
llm-wiki extract --src-dir <repo> --summary --read-only
|
|
389
|
+
llm-wiki context --src-dir <repo> --budget 12000 --format json --focus all --read-only
|
|
390
|
+
llm-wiki bootstrap --src-dir <repo> --wiki-dir sources/code_wikis/<source_id> --format json --source-adapter
|
|
391
|
+
```
|
|
392
|
+
|
|
393
|
+
By default, `--src-dir` must resolve inside the current working directory. For a
|
|
394
|
+
trusted source tree outside cwd, pass `--allow-external-src`; explicit
|
|
395
|
+
`--paths` are still constrained to the chosen source root. Explicit output paths
|
|
396
|
+
such as `--output` may be absolute or outside the project root because they are
|
|
397
|
+
caller-selected artifacts.
|
|
398
|
+
|
|
399
|
+
Example `extract --summary` payload:
|
|
400
|
+
|
|
401
|
+
```json
|
|
402
|
+
{
|
|
403
|
+
"schema_version": "llm-wiki-extract/v1",
|
|
404
|
+
"inventory": {
|
|
405
|
+
"models.py": {
|
|
406
|
+
"language": "python",
|
|
407
|
+
"package": "sample",
|
|
408
|
+
"classes": ["User"],
|
|
409
|
+
"functions": ["load_user"]
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
```
|
|
414
|
+
|
|
415
|
+
Example `context --format json` payload:
|
|
416
|
+
|
|
417
|
+
```json
|
|
418
|
+
{
|
|
419
|
+
"budget": 12000,
|
|
420
|
+
"used": 320,
|
|
421
|
+
"truncated": false,
|
|
422
|
+
"omitted_files": [],
|
|
423
|
+
"downgraded_files": {},
|
|
424
|
+
"files": {
|
|
425
|
+
"models.py": {
|
|
426
|
+
"priority": "high",
|
|
427
|
+
"detail": "deep",
|
|
428
|
+
"classes": [{"name": "User"}],
|
|
429
|
+
"functions": []
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
```
|
|
434
|
+
|
|
435
|
+
Example `bootstrap --format json --source-adapter` summary:
|
|
436
|
+
|
|
437
|
+
```json
|
|
438
|
+
{
|
|
439
|
+
"schema_version": "llm-wiki-bootstrap-summary/v1",
|
|
440
|
+
"src_dir": "/path/to/repo",
|
|
441
|
+
"generated_wiki_path": "sources/code_wikis/repo",
|
|
442
|
+
"depth": "full",
|
|
443
|
+
"source_files": 12,
|
|
444
|
+
"classes": 8,
|
|
445
|
+
"functions": 31,
|
|
446
|
+
"docker_files": 1,
|
|
447
|
+
"workflows": 2,
|
|
448
|
+
"cross_references": 14,
|
|
449
|
+
"created_files": ["sources/code_wikis/repo/index.md"],
|
|
450
|
+
"updated_files": [],
|
|
451
|
+
"skipped_files": [],
|
|
452
|
+
"manifest_path": "sources/code_wikis/repo/.llm-wiki-manifest.json"
|
|
453
|
+
}
|
|
454
|
+
```
|
|
455
|
+
|
|
365
456
|
### `generate-prompt`
|
|
366
457
|
|
|
367
458
|
Build a sync prompt for IDE agents or for manual review.
|
|
@@ -189,12 +189,16 @@ llm-wiki bootstrap --src-dir . --wiki-dir docs/llm_wiki
|
|
|
189
189
|
llm-wiki bootstrap --overwrite
|
|
190
190
|
llm-wiki bootstrap --depth shallow
|
|
191
191
|
llm-wiki bootstrap --skip-workflows
|
|
192
|
+
llm-wiki bootstrap --format json --source-adapter
|
|
192
193
|
```
|
|
193
194
|
|
|
194
195
|
`bootstrap` writes entity, module, workflow, infrastructure, index, log, and
|
|
195
196
|
manifest files. `--depth full` is the default and includes docstrings, imports,
|
|
196
197
|
attributes, method signatures, and relationship data where extractors provide
|
|
197
|
-
it.
|
|
198
|
+
it. Use `--source-adapter` when callers need bootstrap to write only under
|
|
199
|
+
`--wiki-dir`; this skips agent constraint-file updates outside the generated
|
|
200
|
+
wiki directory. Use `--format json` to emit a machine-readable summary with
|
|
201
|
+
created, updated, and skipped files plus source counts and the manifest path.
|
|
198
202
|
|
|
199
203
|
### `sync`
|
|
200
204
|
|
|
@@ -235,8 +239,15 @@ llm-wiki extract --src-dir . --deep
|
|
|
235
239
|
llm-wiki extract --src-dir . --paths src/foo.py src/bar.ts
|
|
236
240
|
llm-wiki extract --src-dir . --package llm_wiki_cli
|
|
237
241
|
llm-wiki extract --src-dir . --include-empty
|
|
242
|
+
llm-wiki extract --src-dir . --summary --output sources/code.json --read-only
|
|
243
|
+
llm-wiki extract --src-dir /path/to/repo --allow-external-src --summary
|
|
238
244
|
```
|
|
239
245
|
|
|
246
|
+
The JSON output includes `schema_version: "llm-wiki-extract/v1"` plus
|
|
247
|
+
`inventory` and optional `docker` objects. Inventory keys are POSIX paths
|
|
248
|
+
relative to `--src-dir`, never absolute paths. The v1 contract permits additive
|
|
249
|
+
fields; incompatible shape changes require a new schema version.
|
|
250
|
+
|
|
240
251
|
### `prepare-extractors`
|
|
241
252
|
|
|
242
253
|
Prepare TypeScript dependencies and cached Go/Rust helper binaries outside the
|
|
@@ -306,6 +317,7 @@ llm-wiki context --budget 8000 --src-dir . --format json
|
|
|
306
317
|
llm-wiki context --budget 8000 --src-dir . --format markdown
|
|
307
318
|
llm-wiki context --budget 8000 --focus changed
|
|
308
319
|
llm-wiki context --budget 8000 --focus all
|
|
320
|
+
llm-wiki context --budget 12000 --format json --focus all --output context.json --read-only
|
|
309
321
|
```
|
|
310
322
|
|
|
311
323
|
`--focus changed` is the default. Changed files get full detail, one-hop import
|
|
@@ -332,6 +344,85 @@ Example request:
|
|
|
332
344
|
}
|
|
333
345
|
```
|
|
334
346
|
|
|
347
|
+
`--output PATH` writes the generated JSON or Markdown directly instead of
|
|
348
|
+
printing it to stdout. `--read-only` documents source-adapter intent: the command
|
|
349
|
+
does not write wiki files, hooks, manifests, local config, or helper/cache state,
|
|
350
|
+
except for an explicit `--output` artifact.
|
|
351
|
+
|
|
352
|
+
### Codebase source integration
|
|
353
|
+
|
|
354
|
+
For research or indexing systems that need codebase evidence without adopting
|
|
355
|
+
the maintained wiki format, prefer the read-only source-adapter commands:
|
|
356
|
+
|
|
357
|
+
```bash
|
|
358
|
+
llm-wiki extract --src-dir <repo> --summary --read-only
|
|
359
|
+
llm-wiki context --src-dir <repo> --budget 12000 --format json --focus all --read-only
|
|
360
|
+
llm-wiki bootstrap --src-dir <repo> --wiki-dir sources/code_wikis/<source_id> --format json --source-adapter
|
|
361
|
+
```
|
|
362
|
+
|
|
363
|
+
By default, `--src-dir` must resolve inside the current working directory. For a
|
|
364
|
+
trusted source tree outside cwd, pass `--allow-external-src`; explicit
|
|
365
|
+
`--paths` are still constrained to the chosen source root. Explicit output paths
|
|
366
|
+
such as `--output` may be absolute or outside the project root because they are
|
|
367
|
+
caller-selected artifacts.
|
|
368
|
+
|
|
369
|
+
Example `extract --summary` payload:
|
|
370
|
+
|
|
371
|
+
```json
|
|
372
|
+
{
|
|
373
|
+
"schema_version": "llm-wiki-extract/v1",
|
|
374
|
+
"inventory": {
|
|
375
|
+
"models.py": {
|
|
376
|
+
"language": "python",
|
|
377
|
+
"package": "sample",
|
|
378
|
+
"classes": ["User"],
|
|
379
|
+
"functions": ["load_user"]
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
```
|
|
384
|
+
|
|
385
|
+
Example `context --format json` payload:
|
|
386
|
+
|
|
387
|
+
```json
|
|
388
|
+
{
|
|
389
|
+
"budget": 12000,
|
|
390
|
+
"used": 320,
|
|
391
|
+
"truncated": false,
|
|
392
|
+
"omitted_files": [],
|
|
393
|
+
"downgraded_files": {},
|
|
394
|
+
"files": {
|
|
395
|
+
"models.py": {
|
|
396
|
+
"priority": "high",
|
|
397
|
+
"detail": "deep",
|
|
398
|
+
"classes": [{"name": "User"}],
|
|
399
|
+
"functions": []
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
Example `bootstrap --format json --source-adapter` summary:
|
|
406
|
+
|
|
407
|
+
```json
|
|
408
|
+
{
|
|
409
|
+
"schema_version": "llm-wiki-bootstrap-summary/v1",
|
|
410
|
+
"src_dir": "/path/to/repo",
|
|
411
|
+
"generated_wiki_path": "sources/code_wikis/repo",
|
|
412
|
+
"depth": "full",
|
|
413
|
+
"source_files": 12,
|
|
414
|
+
"classes": 8,
|
|
415
|
+
"functions": 31,
|
|
416
|
+
"docker_files": 1,
|
|
417
|
+
"workflows": 2,
|
|
418
|
+
"cross_references": 14,
|
|
419
|
+
"created_files": ["sources/code_wikis/repo/index.md"],
|
|
420
|
+
"updated_files": [],
|
|
421
|
+
"skipped_files": [],
|
|
422
|
+
"manifest_path": "sources/code_wikis/repo/.llm-wiki-manifest.json"
|
|
423
|
+
}
|
|
424
|
+
```
|
|
425
|
+
|
|
335
426
|
### `generate-prompt`
|
|
336
427
|
|
|
337
428
|
Build a sync prompt for IDE agents or for manual review.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agent-wiki-cli
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.2
|
|
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
|
|
@@ -219,12 +219,16 @@ llm-wiki bootstrap --src-dir . --wiki-dir docs/llm_wiki
|
|
|
219
219
|
llm-wiki bootstrap --overwrite
|
|
220
220
|
llm-wiki bootstrap --depth shallow
|
|
221
221
|
llm-wiki bootstrap --skip-workflows
|
|
222
|
+
llm-wiki bootstrap --format json --source-adapter
|
|
222
223
|
```
|
|
223
224
|
|
|
224
225
|
`bootstrap` writes entity, module, workflow, infrastructure, index, log, and
|
|
225
226
|
manifest files. `--depth full` is the default and includes docstrings, imports,
|
|
226
227
|
attributes, method signatures, and relationship data where extractors provide
|
|
227
|
-
it.
|
|
228
|
+
it. Use `--source-adapter` when callers need bootstrap to write only under
|
|
229
|
+
`--wiki-dir`; this skips agent constraint-file updates outside the generated
|
|
230
|
+
wiki directory. Use `--format json` to emit a machine-readable summary with
|
|
231
|
+
created, updated, and skipped files plus source counts and the manifest path.
|
|
228
232
|
|
|
229
233
|
### `sync`
|
|
230
234
|
|
|
@@ -265,8 +269,15 @@ llm-wiki extract --src-dir . --deep
|
|
|
265
269
|
llm-wiki extract --src-dir . --paths src/foo.py src/bar.ts
|
|
266
270
|
llm-wiki extract --src-dir . --package llm_wiki_cli
|
|
267
271
|
llm-wiki extract --src-dir . --include-empty
|
|
272
|
+
llm-wiki extract --src-dir . --summary --output sources/code.json --read-only
|
|
273
|
+
llm-wiki extract --src-dir /path/to/repo --allow-external-src --summary
|
|
268
274
|
```
|
|
269
275
|
|
|
276
|
+
The JSON output includes `schema_version: "llm-wiki-extract/v1"` plus
|
|
277
|
+
`inventory` and optional `docker` objects. Inventory keys are POSIX paths
|
|
278
|
+
relative to `--src-dir`, never absolute paths. The v1 contract permits additive
|
|
279
|
+
fields; incompatible shape changes require a new schema version.
|
|
280
|
+
|
|
270
281
|
### `prepare-extractors`
|
|
271
282
|
|
|
272
283
|
Prepare TypeScript dependencies and cached Go/Rust helper binaries outside the
|
|
@@ -336,6 +347,7 @@ llm-wiki context --budget 8000 --src-dir . --format json
|
|
|
336
347
|
llm-wiki context --budget 8000 --src-dir . --format markdown
|
|
337
348
|
llm-wiki context --budget 8000 --focus changed
|
|
338
349
|
llm-wiki context --budget 8000 --focus all
|
|
350
|
+
llm-wiki context --budget 12000 --format json --focus all --output context.json --read-only
|
|
339
351
|
```
|
|
340
352
|
|
|
341
353
|
`--focus changed` is the default. Changed files get full detail, one-hop import
|
|
@@ -362,6 +374,85 @@ Example request:
|
|
|
362
374
|
}
|
|
363
375
|
```
|
|
364
376
|
|
|
377
|
+
`--output PATH` writes the generated JSON or Markdown directly instead of
|
|
378
|
+
printing it to stdout. `--read-only` documents source-adapter intent: the command
|
|
379
|
+
does not write wiki files, hooks, manifests, local config, or helper/cache state,
|
|
380
|
+
except for an explicit `--output` artifact.
|
|
381
|
+
|
|
382
|
+
### Codebase source integration
|
|
383
|
+
|
|
384
|
+
For research or indexing systems that need codebase evidence without adopting
|
|
385
|
+
the maintained wiki format, prefer the read-only source-adapter commands:
|
|
386
|
+
|
|
387
|
+
```bash
|
|
388
|
+
llm-wiki extract --src-dir <repo> --summary --read-only
|
|
389
|
+
llm-wiki context --src-dir <repo> --budget 12000 --format json --focus all --read-only
|
|
390
|
+
llm-wiki bootstrap --src-dir <repo> --wiki-dir sources/code_wikis/<source_id> --format json --source-adapter
|
|
391
|
+
```
|
|
392
|
+
|
|
393
|
+
By default, `--src-dir` must resolve inside the current working directory. For a
|
|
394
|
+
trusted source tree outside cwd, pass `--allow-external-src`; explicit
|
|
395
|
+
`--paths` are still constrained to the chosen source root. Explicit output paths
|
|
396
|
+
such as `--output` may be absolute or outside the project root because they are
|
|
397
|
+
caller-selected artifacts.
|
|
398
|
+
|
|
399
|
+
Example `extract --summary` payload:
|
|
400
|
+
|
|
401
|
+
```json
|
|
402
|
+
{
|
|
403
|
+
"schema_version": "llm-wiki-extract/v1",
|
|
404
|
+
"inventory": {
|
|
405
|
+
"models.py": {
|
|
406
|
+
"language": "python",
|
|
407
|
+
"package": "sample",
|
|
408
|
+
"classes": ["User"],
|
|
409
|
+
"functions": ["load_user"]
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
```
|
|
414
|
+
|
|
415
|
+
Example `context --format json` payload:
|
|
416
|
+
|
|
417
|
+
```json
|
|
418
|
+
{
|
|
419
|
+
"budget": 12000,
|
|
420
|
+
"used": 320,
|
|
421
|
+
"truncated": false,
|
|
422
|
+
"omitted_files": [],
|
|
423
|
+
"downgraded_files": {},
|
|
424
|
+
"files": {
|
|
425
|
+
"models.py": {
|
|
426
|
+
"priority": "high",
|
|
427
|
+
"detail": "deep",
|
|
428
|
+
"classes": [{"name": "User"}],
|
|
429
|
+
"functions": []
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
```
|
|
434
|
+
|
|
435
|
+
Example `bootstrap --format json --source-adapter` summary:
|
|
436
|
+
|
|
437
|
+
```json
|
|
438
|
+
{
|
|
439
|
+
"schema_version": "llm-wiki-bootstrap-summary/v1",
|
|
440
|
+
"src_dir": "/path/to/repo",
|
|
441
|
+
"generated_wiki_path": "sources/code_wikis/repo",
|
|
442
|
+
"depth": "full",
|
|
443
|
+
"source_files": 12,
|
|
444
|
+
"classes": 8,
|
|
445
|
+
"functions": 31,
|
|
446
|
+
"docker_files": 1,
|
|
447
|
+
"workflows": 2,
|
|
448
|
+
"cross_references": 14,
|
|
449
|
+
"created_files": ["sources/code_wikis/repo/index.md"],
|
|
450
|
+
"updated_files": [],
|
|
451
|
+
"skipped_files": [],
|
|
452
|
+
"manifest_path": "sources/code_wikis/repo/.llm-wiki-manifest.json"
|
|
453
|
+
}
|
|
454
|
+
```
|
|
455
|
+
|
|
365
456
|
### `generate-prompt`
|
|
366
457
|
|
|
367
458
|
Build a sync prompt for IDE agents or for manual review.
|
|
@@ -8,6 +8,7 @@ src/agent_wiki_cli.egg-info/entry_points.txt
|
|
|
8
8
|
src/agent_wiki_cli.egg-info/requires.txt
|
|
9
9
|
src/agent_wiki_cli.egg-info/top_level.txt
|
|
10
10
|
src/llm_wiki_cli/__init__.py
|
|
11
|
+
src/llm_wiki_cli/api.py
|
|
11
12
|
src/llm_wiki_cli/cli.py
|
|
12
13
|
src/llm_wiki_cli/config.py
|
|
13
14
|
src/llm_wiki_cli/commands/__init__.py
|
|
@@ -50,6 +51,7 @@ src/llm_wiki_cli/extractors/ts_scripts/extract.js
|
|
|
50
51
|
src/llm_wiki_cli/extractors/ts_scripts/package.json
|
|
51
52
|
src/llm_wiki_cli/services/__init__.py
|
|
52
53
|
src/llm_wiki_cli/services/circuit_breaker.py
|
|
54
|
+
src/llm_wiki_cli/services/contracts.py
|
|
53
55
|
src/llm_wiki_cli/services/extractor_helpers.py
|
|
54
56
|
src/llm_wiki_cli/services/imports.py
|
|
55
57
|
src/llm_wiki_cli/services/inventory_cache.py
|
|
@@ -66,6 +68,7 @@ src/llm_wiki_cli/services/secure_file.py
|
|
|
66
68
|
src/llm_wiki_cli/services/source_snapshot.py
|
|
67
69
|
src/llm_wiki_cli/services/team.py
|
|
68
70
|
src/llm_wiki_cli/services/versioning.py
|
|
71
|
+
tests/test_api.py
|
|
69
72
|
tests/test_bootstrap.py
|
|
70
73
|
tests/test_bump.py
|
|
71
74
|
tests/test_ci_check.py
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
"""Supported Python API for source-adapter extraction and context payloads."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Any
|
|
6
|
+
|
|
7
|
+
from .commands import context_cmd, extract_cmd
|
|
8
|
+
from .config import PathValidationError
|
|
9
|
+
from .services.contracts import (
|
|
10
|
+
BOOTSTRAP_SUMMARY_SCHEMA_VERSION,
|
|
11
|
+
EXTRACT_SCHEMA_VERSION,
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class LlmWikiApiError(RuntimeError):
|
|
16
|
+
"""Base exception raised by the supported Python API."""
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class PathPolicyError(LlmWikiApiError):
|
|
20
|
+
"""Raised when a source path violates the configured path policy."""
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class ExtractionError(LlmWikiApiError):
|
|
24
|
+
"""Raised when source extraction fails."""
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
def extract_source(
|
|
28
|
+
src_dir: str = ".",
|
|
29
|
+
*,
|
|
30
|
+
changed: bool = False,
|
|
31
|
+
summary: bool = False,
|
|
32
|
+
deep: bool = False,
|
|
33
|
+
paths: list[str] | None = None,
|
|
34
|
+
package: str | None = None,
|
|
35
|
+
include_empty: bool = False,
|
|
36
|
+
allow_external_src: bool = False,
|
|
37
|
+
read_only: bool = True,
|
|
38
|
+
) -> dict[str, Any]:
|
|
39
|
+
"""Return the stable ``llm-wiki extract`` JSON payload as a dict."""
|
|
40
|
+
try:
|
|
41
|
+
result = extract_cmd.build_extract_payload(
|
|
42
|
+
src_dir,
|
|
43
|
+
changed=changed,
|
|
44
|
+
summary=summary,
|
|
45
|
+
deep=deep,
|
|
46
|
+
paths=paths,
|
|
47
|
+
package_filter=package,
|
|
48
|
+
include_empty=include_empty,
|
|
49
|
+
allow_external_src=allow_external_src,
|
|
50
|
+
read_only=read_only,
|
|
51
|
+
)
|
|
52
|
+
except PathValidationError as exc:
|
|
53
|
+
raise PathPolicyError(str(exc)) from exc
|
|
54
|
+
except extract_cmd.ExtractorFailureError as exc:
|
|
55
|
+
raise ExtractionError(str(exc)) from exc
|
|
56
|
+
except ValueError as exc:
|
|
57
|
+
raise LlmWikiApiError(str(exc)) from exc
|
|
58
|
+
return result.payload
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
def build_context(
|
|
62
|
+
src_dir: str = ".",
|
|
63
|
+
*,
|
|
64
|
+
budget: int = 32000,
|
|
65
|
+
format: str = "json",
|
|
66
|
+
focus: str | list[str] = "changed",
|
|
67
|
+
filters: dict | None = None,
|
|
68
|
+
allow_external_src: bool = False,
|
|
69
|
+
read_only: bool = True,
|
|
70
|
+
) -> dict[str, Any]:
|
|
71
|
+
"""Return a supported context payload without depending on CLI internals."""
|
|
72
|
+
focus_values = _normalise_focus(focus)
|
|
73
|
+
request = {
|
|
74
|
+
"protocol": context_cmd.PROTOCOL_VERSION,
|
|
75
|
+
"budget_tokens": budget,
|
|
76
|
+
"focus": focus_values,
|
|
77
|
+
"format": format,
|
|
78
|
+
"filters": filters or {},
|
|
79
|
+
}
|
|
80
|
+
try:
|
|
81
|
+
validated = context_cmd._validate_protocol_request(request)
|
|
82
|
+
payload, warnings = context_cmd._build_context(
|
|
83
|
+
src_dir,
|
|
84
|
+
validated["budget_tokens"],
|
|
85
|
+
validated["format"],
|
|
86
|
+
validated["focus"],
|
|
87
|
+
validated["filters"],
|
|
88
|
+
emit_warnings=False,
|
|
89
|
+
allow_external_src=allow_external_src,
|
|
90
|
+
read_only=read_only,
|
|
91
|
+
)
|
|
92
|
+
except PathValidationError as exc:
|
|
93
|
+
raise PathPolicyError(str(exc)) from exc
|
|
94
|
+
except context_cmd.ProtocolRequestError as exc:
|
|
95
|
+
if exc.field == "src_dir":
|
|
96
|
+
raise ExtractionError(str(exc)) from exc
|
|
97
|
+
raise LlmWikiApiError(str(exc)) from exc
|
|
98
|
+
|
|
99
|
+
if validated["format"] == "markdown":
|
|
100
|
+
return {
|
|
101
|
+
"content": context_cmd._render_markdown(payload),
|
|
102
|
+
"payload": payload,
|
|
103
|
+
"warnings": warnings,
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
result = dict(payload)
|
|
107
|
+
if warnings:
|
|
108
|
+
result["warnings"] = warnings
|
|
109
|
+
return result
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
def _normalise_focus(focus: str | list[str]) -> list[str]:
|
|
113
|
+
if isinstance(focus, str):
|
|
114
|
+
if focus == "all":
|
|
115
|
+
return ["all"]
|
|
116
|
+
if focus == "changed":
|
|
117
|
+
return ["changed", "neighbors"]
|
|
118
|
+
return [focus]
|
|
119
|
+
return list(focus)
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
__all__ = [
|
|
123
|
+
"BOOTSTRAP_SUMMARY_SCHEMA_VERSION",
|
|
124
|
+
"EXTRACT_SCHEMA_VERSION",
|
|
125
|
+
"ExtractionError",
|
|
126
|
+
"LlmWikiApiError",
|
|
127
|
+
"PathPolicyError",
|
|
128
|
+
"build_context",
|
|
129
|
+
"extract_source",
|
|
130
|
+
]
|
|
@@ -78,6 +78,12 @@ def main():
|
|
|
78
78
|
help="Only include files belonging to the named package")
|
|
79
79
|
extract_parser.add_argument("--include-empty", action="store_true",
|
|
80
80
|
help="Include all .py files even if they have no extractable components")
|
|
81
|
+
extract_parser.add_argument("--output", metavar="PATH",
|
|
82
|
+
help="Write JSON output to a file instead of stdout")
|
|
83
|
+
extract_parser.add_argument("--read-only", action="store_true",
|
|
84
|
+
help="Guarantee source-adapter mode writes no llm-wiki files except explicit --output")
|
|
85
|
+
extract_parser.add_argument("--allow-external-src", action="store_true",
|
|
86
|
+
help="Allow --src-dir to point outside the current working directory")
|
|
81
87
|
|
|
82
88
|
# lint command
|
|
83
89
|
lint_parser = subparsers.add_parser("lint", help="Lint LLM Wiki for broken links, orphans, and AST drift")
|
|
@@ -203,6 +209,12 @@ def main():
|
|
|
203
209
|
help="shallow=names only, full=docstrings/attrs/methods/imports/relationships (default: full)")
|
|
204
210
|
bootstrap_parser.add_argument("--skip-workflows", action="store_true",
|
|
205
211
|
help="Skip automatic workflow page generation from call graph")
|
|
212
|
+
bootstrap_parser.add_argument("--format", choices=["text", "json"], default="text",
|
|
213
|
+
help="Console output format (default: text)")
|
|
214
|
+
bootstrap_parser.add_argument("--source-adapter", action="store_true",
|
|
215
|
+
help="Write only under --wiki-dir and skip agent constraint updates")
|
|
216
|
+
bootstrap_parser.add_argument("--allow-external-src", action="store_true",
|
|
217
|
+
help="Allow --src-dir to point outside the current working directory")
|
|
206
218
|
|
|
207
219
|
# bump command
|
|
208
220
|
bump_parser = subparsers.add_parser("bump", help="Bump project version (patch or minor)")
|
|
@@ -393,6 +405,12 @@ def main():
|
|
|
393
405
|
help="changed=prioritise git diff files, all=treat every file as high priority (default: changed)")
|
|
394
406
|
context_parser.add_argument("--request", metavar="FILE|-",
|
|
395
407
|
help="Read a Wiki-as-Context protocol JSON request from a file or stdin")
|
|
408
|
+
context_parser.add_argument("--output", metavar="PATH",
|
|
409
|
+
help="Write generated context to a file instead of stdout")
|
|
410
|
+
context_parser.add_argument("--read-only", action="store_true",
|
|
411
|
+
help="Guarantee source-adapter mode writes no llm-wiki files except explicit --output")
|
|
412
|
+
context_parser.add_argument("--allow-external-src", action="store_true",
|
|
413
|
+
help="Allow --src-dir to point outside the current working directory")
|
|
396
414
|
|
|
397
415
|
args = parser.parse_args()
|
|
398
416
|
|