Skip to content
Merged
Show file tree
Hide file tree
Changes from 23 commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
d0160fa
feat(progress): add live progress output
fbosch Feb 3, 2026
ad0d433
feat(sync): add offline support
fbosch Feb 3, 2026
e8f53c1
feat(cli): add timer to progress display
fbosch Feb 3, 2026
9f850a3
feat(cli): improve progress output
fbosch Feb 3, 2026
f55db0c
refactor(config): migrate to Zod schema validation
fbosch Feb 3, 2026
4c23b8d
refactor(config): extract common schema options
fbosch Feb 3, 2026
171bb4b
feat(config): migrate interface to schema
fbosch Feb 3, 2026
fb71d0e
feat(complexity): add ts-complex analysis script
fbosch Feb 3, 2026
f63ce44
refactor(init): reduce nesting
fbosch Feb 3, 2026
e6671c0
refactor(cli): split runCommand into funcs
fbosch Feb 3, 2026
4598abc
refactor(sync): extract result builders
fbosch Feb 3, 2026
3653cbe
refactor(cli): extract parsing functions
fbosch Feb 3, 2026
a1ad710
refactor(cli): extract add entry helpers
fbosch Feb 3, 2026
5ef53ea
refactor(remove): extract helper functions
fbosch Feb 3, 2026
3d2ec49
refactor(remove): extract helper functions
fbosch Feb 3, 2026
5f723c9
refactor(sync): extract sync result builders
fbosch Feb 3, 2026
35e9405
Merge branch 'feature/improve-progress-output' of github.com:fbosch/d…
fbosch Feb 3, 2026
5078952
refactor(add): extract helper functions
fbosch Feb 3, 2026
16b3efc
refactor(fetch): extract helper functions
fbosch Feb 3, 2026
066f29b
refactor(config): extract config I/O
fbosch Feb 3, 2026
a73f371
refactor: organize files into commands and config
fbosch Feb 3, 2026
d0dbfbb
refactor: update file structure and imports
fbosch Feb 3, 2026
38ad9be
feat(output): disable live output in tests
fbosch Feb 3, 2026
295010b
fix: exports and build
fbosch Feb 3, 2026
efbce32
fix: exports and build
fbosch Feb 3, 2026
db6f2d2
feat: upgrade picomatch
fbosch Feb 3, 2026
056bf45
chore: upgrade more dependencies
fbosch Feb 3, 2026
1f56b2b
chore: revert cli-truncate upgrade
fbosch Feb 3, 2026
96fee66
fix: pre-check node 18
fbosch Feb 3, 2026
e619480
chore: adjust from feedback
fbosch Feb 4, 2026
0f664c2
chore: cleanup
fbosch Feb 4, 2026
7f5706b
chore: cleanup
fbosch Feb 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,9 @@ pnpm.

- Use `node:` specifiers for built-in modules.
- Keep modules small and single-purpose; prefer focused helpers in `src/`.
- Prefer early returns to reduce nested control flow.
- Avoid `else if` branches when early returns or separate conditionals are clearer.
- Avoid type casts when a safe type guard or discriminated union can be used.
- Place shared types in `src/types/` and import them via `import type`.
- Use `index.ts` barrels for public entrypoints.

Expand Down
2 changes: 1 addition & 1 deletion build.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ export default defineBuildConfig({
entries: [
{ input: "src/cli/index", name: "cli" },
{ input: "src/api", name: "api" },
{ input: "src/lock", name: "lock" },
{ input: "src/cache/lock", name: "lock" },
],
declaration: true,
clean: true,
Expand Down
77 changes: 39 additions & 38 deletions docs.config.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -58,14 +58,6 @@
"ignoreHidden": {
"type": "boolean"
},
"allowHosts": {
"minItems": 1,
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"toc": {
"anyOf": [
{
Expand All @@ -79,6 +71,14 @@
},
"unwrapSingleRootDir": {
"type": "boolean"
},
"allowHosts": {
"minItems": 1,
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
}
},
"additionalProperties": false
Expand All @@ -88,22 +88,6 @@
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"repo": {
"type": "string",
"minLength": 1
},
"targetDir": {
"type": "string",
"minLength": 1
},
"targetMode": {
"type": "string",
"enum": ["symlink", "copy"]
},
"ref": {
"type": "string",
"minLength": 1
Expand All @@ -113,6 +97,7 @@
"enum": ["materialize"]
},
"include": {
"minItems": 1,
"type": "array",
"items": {
"type": "string",
Expand All @@ -126,6 +111,10 @@
"minLength": 1
}
},
"targetMode": {
"type": "string",
"enum": ["symlink", "copy"]
},
"required": {
"type": "boolean"
},
Expand All @@ -140,6 +129,32 @@
"ignoreHidden": {
"type": "boolean"
},
"toc": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "string",
"enum": ["tree", "compressed"]
}
]
},
"unwrapSingleRootDir": {
"type": "boolean"
},
"id": {
"type": "string",
"minLength": 1
},
"repo": {
"type": "string",
"minLength": 1
},
"targetDir": {
"type": "string",
"minLength": 1
},
"integrity": {
"type": "object",
"properties": {
Expand All @@ -160,20 +175,6 @@
},
"required": ["type", "value"],
"additionalProperties": false
},
"toc": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "string",
"enum": ["tree", "compressed"]
}
]
},
"unwrapSingleRootDir": {
"type": "boolean"
}
},
"required": ["id", "repo"],
Expand Down
18 changes: 18 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,15 @@
"name": "docs-cache",
"private": false,
"type": "module",
"imports": {
"#cache/*": "./src/cache/*.ts",
"#cli/*": "./src/cli/*.ts",
"#commands/*": "./src/commands/*.ts",
"#core/*": "./src/*.ts",
"#config": "./src/config/index.ts",
"#config/*": "./src/config/*.ts",
"#git/*": "./src/git/*.ts"
},
"version": "0.4.3",
"packageManager": "pnpm@10.14.0+sha512.ad27a79641b49c3e481a16a805baa71817a04bbe06a38d17e60e2eaee83f6a146c6a688125f5792e48dd5ba30e7da52a5cda4c3992b9ccf333f9ce223af84748",
"description": "CLI for deterministic local caching of external documentation for agents and tools",
Expand Down Expand Up @@ -49,6 +58,7 @@
"test": "pnpm build && node --test",
"test:coverage": "pnpm build && c8 --include dist --exclude bin --reporter=text node --test",
"bench": "pnpm build && node scripts/benchmarks/run.mjs",
"complexity": "node scripts/complexity/run.mjs",
"schema:build": "node scripts/generate-schema.mjs",
"size": "size-limit",
"test:watch": "node --test --watch",
Expand All @@ -58,8 +68,10 @@
"dependencies": {
"@clack/prompts": "^1.0.0",
"cac": "^6.7.14",
"cli-truncate": "^4.0.0",
"execa": "^9.6.1",
"fast-glob": "^3.3.2",
"log-update": "^5.0.1",
"picocolors": "^1.1.1",
"picomatch": "^2.3.1",
"zod": "^4.3.6"
Expand All @@ -75,6 +87,7 @@
"simple-git-hooks": "^2.13.1",
"size-limit": "^11.2.0",
"tinybench": "^6.0.0",
"ts-complex": "^1.0.0",
"typescript": "^5.9.3",
"unbuild": "^3.6.1"
},
Expand All @@ -84,6 +97,11 @@
"limit": "10 kB"
}
],
"complexity": {
"maxCyclomatic": 20,
"minMaintainability": 60,
"top": 10
},
"simple-git-hooks": {
"pre-commit": "pnpm lint-staged && pnpm typecheck"
},
Expand Down
Loading
Loading