{"_id":"@autocut-cli/llm-wiki","_rev":"6-f68fcd8f48272f548e4ac2f536ef27eb","name":"@autocut-cli/llm-wiki","dist-tags":{"latest":"0.2.0"},"versions":{"0.1.0":{"name":"@autocut-cli/llm-wiki","version":"0.1.0","keywords":["llm","wiki","mcp","model-context-protocol","knowledge-base","codebase"],"license":"MIT","_id":"@autocut-cli/llm-wiki@0.1.0","maintainers":[{"name":"yaokai","email":"2050681810@qq.com"}],"homepage":"https://github.com/TigerOfCountryYao/llm-wiki-mcp#readme","bugs":{"url":"https://github.com/TigerOfCountryYao/llm-wiki-mcp/issues"},"bin":{"llm-wiki":"dist/cli.js"},"dist":{"shasum":"add6898e79c98f477236c91c2737c3419ce14f60","tarball":"https://registry.npmjs.org/@autocut-cli/llm-wiki/-/llm-wiki-0.1.0.tgz","fileCount":107,"integrity":"sha512-TTjbpLAWc4jRws2blnKFFz2yw/mEgrco8ELfLicRCxKiJWJpzOgFnZceRsQJDUZvppRCgmV3onEf09IVaK7HAA==","signatures":[{"sig":"MEUCIQCeJZyY0YE3ZsQ3xoFvVnZfDzXuQduaM8MRU9Ce7yl2RwIgCpkMACfeTuA+VQ564G3iCPEviJ3CaxVBIXYAGa+C4YM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":360955},"type":"module","engines":{"node":">=24"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"fc4fbbb073b5782161668b3ac1a7619ca2e6779b","scripts":{"test":"npm run build && vitest run","build":"tsc -p tsconfig.build.json","check":"tsc -p tsconfig.json --noEmit","prepack":"npm run build","test:watch":"vitest","prepublishOnly":"npm run check && npm test"},"_npmUser":{"name":"yaokai","email":"2050681810@qq.com"},"repository":{"url":"git+https://github.com/TigerOfCountryYao/llm-wiki-mcp.git","type":"git"},"_npmVersion":"11.16.0","description":"A local, citation-aware LLM Wiki builder with a single-tool MCP interface.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"4.4.3","llm-wiki-compiler":"npm:@autocut-cli/llm-wiki-compiler@1.1.0-autocut.1","@modelcontextprotocol/sdk":"1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"4.1.10","typescript":"7.0.2","@types/node":"24.13.3"},"optionalDependencies":{"@github/keytar":"7.10.6"},"_npmOperationalInternal":{"tmp":"tmp/llm-wiki_0.1.0_1785430988658_0.054348079886239686","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@autocut-cli/llm-wiki","version":"0.1.1","keywords":["llm","wiki","mcp","model-context-protocol","knowledge-base","codebase"],"license":"MIT","_id":"@autocut-cli/llm-wiki@0.1.1","maintainers":[{"name":"yaokai","email":"2050681810@qq.com"}],"homepage":"https://github.com/TigerOfCountryYao/llm-wiki-mcp#readme","bugs":{"url":"https://github.com/TigerOfCountryYao/llm-wiki-mcp/issues"},"bin":{"llm-wiki":"dist/cli.js"},"dist":{"shasum":"dd5d80245879d5934d695a843fd320dc3edaa10d","tarball":"https://registry.npmjs.org/@autocut-cli/llm-wiki/-/llm-wiki-0.1.1.tgz","fileCount":107,"integrity":"sha512-SHYIAt3P/MG3oxWWknIlnpsL1Z/tBGmbx+b/0XUUsixbH1APak/S/5tDIlSlv7A72YnBxM18X/LtejSWEz4APA==","signatures":[{"sig":"MEYCIQCmX3J5O33tqOwcINfvVwjuEv0CWvFs7ndxvoKFcXrXXgIhAOpiLQjQOv2rU1mhgFLCFLSkJynMzL2ci9+qqtdf5EeG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":363662},"type":"module","engines":{"node":">=24"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"dd5ab6945524ae9f61916b3eeb4d9a9cffa8c38a","scripts":{"test":"npm run build && vitest run","build":"tsc -p tsconfig.build.json","check":"tsc -p tsconfig.json --noEmit","prepack":"npm run build","test:watch":"vitest","prepublishOnly":"npm run check && npm test"},"_npmUser":{"name":"yaokai","email":"2050681810@qq.com"},"repository":{"url":"git+https://github.com/TigerOfCountryYao/llm-wiki-mcp.git","type":"git"},"_npmVersion":"11.16.0","description":"A local, citation-aware LLM Wiki builder with a single-tool MCP interface.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"4.4.3","llm-wiki-compiler":"npm:@autocut-cli/llm-wiki-compiler@1.1.0-autocut.1","@modelcontextprotocol/sdk":"1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"4.1.10","typescript":"7.0.2","@types/node":"24.13.3"},"optionalDependencies":{"@github/keytar":"7.10.6"},"_npmOperationalInternal":{"tmp":"tmp/llm-wiki_0.1.1_1785434462285_0.10762189655059551","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@autocut-cli/llm-wiki","version":"0.1.2","keywords":["llm","wiki","mcp","model-context-protocol","knowledge-base","codebase"],"license":"MIT","_id":"@autocut-cli/llm-wiki@0.1.2","maintainers":[{"name":"yaokai","email":"2050681810@qq.com"}],"homepage":"https://github.com/TigerOfCountryYao/llm-wiki-mcp#readme","bugs":{"url":"https://github.com/TigerOfCountryYao/llm-wiki-mcp/issues"},"bin":{"llm-wiki":"dist/cli.js"},"dist":{"shasum":"b506448f6f9edc7fdd76a8da7e54198619d6d1c8","tarball":"https://registry.npmjs.org/@autocut-cli/llm-wiki/-/llm-wiki-0.1.2.tgz","fileCount":107,"integrity":"sha512-AuOOK0q8kgUdXol9RFBC12GCqlvn73wkwIeQjTyz84UoTf7WSOjS02c6aJ2AzfL5eouLKv076oogRlWGJvFBcQ==","signatures":[{"sig":"MEYCIQDfd+eLCzfBKhldBFl1owG4c5lxpCmUXXYpSnGV33CYkwIhAPZjwcwnh8nldmwhqW9GfRsrCgsLbF9B5VCtOfJVPApB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":366414},"type":"module","engines":{"node":">=24"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"b116391ef9871e25c0c60c444df4395c5aade382","scripts":{"test":"npm run build && vitest run","build":"tsc -p tsconfig.build.json","check":"tsc -p tsconfig.json --noEmit","prepack":"npm run build","test:watch":"vitest","prepublishOnly":"npm run check && npm test"},"_npmUser":{"name":"yaokai","email":"2050681810@qq.com"},"repository":{"url":"git+https://github.com/TigerOfCountryYao/llm-wiki-mcp.git","type":"git"},"_npmVersion":"11.16.0","description":"A local, citation-aware LLM Wiki builder with a single-tool MCP interface.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"4.4.3","llm-wiki-compiler":"npm:@autocut-cli/llm-wiki-compiler@1.1.0-autocut.1","@modelcontextprotocol/sdk":"1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"4.1.10","typescript":"7.0.2","@types/node":"24.13.3"},"optionalDependencies":{"@github/keytar":"7.10.6"},"_npmOperationalInternal":{"tmp":"tmp/llm-wiki_0.1.2_1785434743108_0.34803677326256","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@autocut-cli/llm-wiki","version":"0.1.3","keywords":["llm","wiki","mcp","model-context-protocol","knowledge-base","codebase"],"license":"MIT","_id":"@autocut-cli/llm-wiki@0.1.3","maintainers":[{"name":"yaokai","email":"2050681810@qq.com"}],"homepage":"https://github.com/TigerOfCountryYao/llm-wiki-mcp#readme","bugs":{"url":"https://github.com/TigerOfCountryYao/llm-wiki-mcp/issues"},"bin":{"llm-wiki":"dist/cli.js"},"dist":{"shasum":"81d706bdcc3d78ab70af3ecf6dcc80aaa1028e1d","tarball":"https://registry.npmjs.org/@autocut-cli/llm-wiki/-/llm-wiki-0.1.3.tgz","fileCount":107,"integrity":"sha512-tlPjuN0Gx7jqPNMZrkCMkEElufXz9qTOn6ttzNg5JD4VJzNuZAftOU0wEYFnuLJQ9590/PM7E2HJcIApSyyCCw==","signatures":[{"sig":"MEQCID7uUP+n3aXoHRHFGYXlf0VYhUKQe2YH7MK73OuVLPGMAiBUIKnA6hVffQGQOh1HoEHTsnwSVAVgH3ZLtLPi0ccexw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":375486},"type":"module","engines":{"node":">=24"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"b95e72649cd0a4807d0cc54fd6c1c41f62b589b1","scripts":{"test":"npm run build && vitest run","build":"tsc -p tsconfig.build.json","check":"tsc -p tsconfig.json --noEmit","prepack":"npm run build","test:watch":"vitest","prepublishOnly":"npm run check && npm test"},"_npmUser":{"name":"yaokai","email":"2050681810@qq.com"},"repository":{"url":"git+https://github.com/TigerOfCountryYao/llm-wiki-mcp.git","type":"git"},"_npmVersion":"11.16.0","description":"A local, citation-aware LLM Wiki builder with a single-tool MCP interface.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"4.4.3","proper-lockfile":"4.1.2","llm-wiki-compiler":"npm:@autocut-cli/llm-wiki-compiler@1.1.0-autocut.1","@modelcontextprotocol/sdk":"1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"4.1.10","typescript":"7.0.2","@types/node":"24.13.3","@types/proper-lockfile":"4.1.4"},"optionalDependencies":{"@github/keytar":"7.10.6"},"_npmOperationalInternal":{"tmp":"tmp/llm-wiki_0.1.3_1785435519371_0.11776460737707195","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@autocut-cli/llm-wiki","version":"0.1.4","keywords":["llm","wiki","mcp","model-context-protocol","knowledge-base","codebase"],"license":"MIT","_id":"@autocut-cli/llm-wiki@0.1.4","maintainers":[{"name":"yaokai","email":"2050681810@qq.com"}],"homepage":"https://github.com/TigerOfCountryYao/llm-wiki-mcp#readme","bugs":{"url":"https://github.com/TigerOfCountryYao/llm-wiki-mcp/issues"},"bin":{"llm-wiki":"dist/cli.js"},"dist":{"shasum":"eb1d71a946f051fcf392dfb3e56bca73dc56ae49","tarball":"https://registry.npmjs.org/@autocut-cli/llm-wiki/-/llm-wiki-0.1.4.tgz","fileCount":111,"integrity":"sha512-cnMZRjN9VkEV4xswO2tUsAWbujoIkMPSARC1TUf22yUr61qrOhbxWs7afKtCx/H4HkH+PsJ0QKjWSirgVAJCCg==","signatures":[{"sig":"MEQCIE6B9l32spD+w/2oMkKL0A64rbEQ94LXzH5ECAbVAMDpAiB4lyioDjde+d+ZrRlBdkCqp2A09/rxQnR8ZZQI7KzPIA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":376587},"type":"module","engines":{"node":">=24"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"e0b7e2597a5f1bc41ebe9a7ded2160f6894d983e","scripts":{"test":"npm run build && vitest run","build":"tsc -p tsconfig.build.json","check":"tsc -p tsconfig.json --noEmit","prepack":"npm run build","test:watch":"vitest","prepublishOnly":"npm run check && npm test"},"_npmUser":{"name":"yaokai","email":"2050681810@qq.com"},"repository":{"url":"git+https://github.com/TigerOfCountryYao/llm-wiki-mcp.git","type":"git"},"_npmVersion":"11.16.0","description":"A local, citation-aware LLM Wiki builder with a single-tool MCP interface.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"4.4.3","proper-lockfile":"4.1.2","llm-wiki-compiler":"npm:@autocut-cli/llm-wiki-compiler@1.1.0-autocut.1","@modelcontextprotocol/sdk":"1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"4.1.10","typescript":"7.0.2","@types/node":"24.13.3","@types/proper-lockfile":"4.1.4"},"optionalDependencies":{"@github/keytar":"7.10.6"},"_npmOperationalInternal":{"tmp":"tmp/llm-wiki_0.1.4_1785439342558_0.9951677960121279","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@autocut-cli/llm-wiki","version":"0.2.0","description":"A local, citation-aware LLM Wiki builder with a single-tool MCP interface.","type":"module","license":"MIT","repository":{"type":"git","url":"git+https://github.com/TigerOfCountryYao/llm-wiki-mcp.git"},"bugs":{"url":"https://github.com/TigerOfCountryYao/llm-wiki-mcp/issues"},"homepage":"https://github.com/TigerOfCountryYao/llm-wiki-mcp#readme","keywords":["llm","wiki","mcp","model-context-protocol","knowledge-base","codebase"],"publishConfig":{"access":"public"},"engines":{"node":">=24"},"bin":{"llm-wiki":"dist/cli.js"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"build":"tsc -p tsconfig.build.json","check":"tsc -p tsconfig.json --noEmit","test":"npm run build && vitest run","test:watch":"vitest","prepack":"npm run build","prepublishOnly":"npm run check && npm test"},"dependencies":{"@modelcontextprotocol/sdk":"1.30.0","llm-wiki-compiler":"npm:@autocut-cli/llm-wiki-compiler@1.1.0-autocut.1","proper-lockfile":"4.1.2","zod":"4.4.3"},"optionalDependencies":{"@github/keytar":"7.10.6"},"devDependencies":{"@types/node":"24.13.3","@types/proper-lockfile":"4.1.4","typescript":"7.0.2","vitest":"4.1.10"},"gitHead":"5fc6797e998c60e54b73fca9c2a3c96f26e1ef61","_id":"@autocut-cli/llm-wiki@0.2.0","_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-w7mFEiWDIqtIjI4QTxTFAAWneMHHU2v4gPOP55GV5SCbI1w8MuFIcltMFUHpv1eNATiOLyun6ZFsBae7Rx01gw==","shasum":"ed4e86a4ac80659a144a3517102f867a464b340f","tarball":"https://registry.npmjs.org/@autocut-cli/llm-wiki/-/llm-wiki-0.2.0.tgz","fileCount":123,"unpackedSize":455114,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIGAPnax/hvRLYIpFyPtWx/zFRZ2UmvFu/K9cXhgoub/WAiEA/fPT63CCWM7bvbDph39wOUFoWftFDA4Yt8MQB+KfgWY="}]},"_npmUser":{"name":"yaokai","email":"2050681810@qq.com"},"directories":{},"maintainers":[{"name":"yaokai","email":"2050681810@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/llm-wiki_0.2.0_1785444303456_0.006821073050134796"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-30T17:03:08.544Z","modified":"2026-07-30T20:45:03.773Z","0.1.0":"2026-07-30T17:03:08.796Z","0.1.1":"2026-07-30T18:01:02.429Z","0.1.2":"2026-07-30T18:05:43.245Z","0.1.3":"2026-07-30T18:18:39.546Z","0.1.4":"2026-07-30T19:22:22.700Z","0.2.0":"2026-07-30T20:45:03.585Z"},"bugs":{"url":"https://github.com/TigerOfCountryYao/llm-wiki-mcp/issues"},"license":"MIT","homepage":"https://github.com/TigerOfCountryYao/llm-wiki-mcp#readme","keywords":["llm","wiki","mcp","model-context-protocol","knowledge-base","codebase"],"repository":{"type":"git","url":"git+https://github.com/TigerOfCountryYao/llm-wiki-mcp.git"},"description":"A local, citation-aware LLM Wiki builder with a single-tool MCP interface.","maintainers":[{"name":"yaokai","email":"2050681810@qq.com"}],"readme":"# LLM Wiki\n\n`@autocut-cli/llm-wiki` builds a local, citation-aware wiki from an explicitly\napproved project scope. It can be used directly or by any MCP client, including\nAutoCut, Claude Code, Codex, and Hermes.\n\n## Public surface\n\n- CLI: `llm-wiki`\n- MCP server: `llm-wiki serve --root <project>`\n- MCP transport: stdio\n- MCP tools: `wiki_explore` only\n- Runtime: Node.js 24 or newer\n\nThe management CLI owns initialization, building, provider profiles, and\nstructured knowledge updates. Agents querying over MCP cannot mutate the wiki.\n\n## Quick start\n\n```sh\nnpm install --global @autocut-cli/llm-wiki\nllm-wiki catalog --root /path/to/project --json\nllm-wiki init --root /path/to/project --select README.md --yes --json\nllm-wiki provider set wiki-generation \\\n  --kind anthropic --model YOUR_MODEL_ID\nllm-wiki provider set-key wiki-generation --key-stdin\nllm-wiki provider use wiki-generation --root /path/to/project\nllm-wiki build --root /path/to/project --json\nllm-wiki serve --root /path/to/project\n```\n\n`provider set-key` accepts the credential only on stdin, never in process\narguments. The default keyring profile persists until a project selects a\ndifferent profile. For headless environments, use\n`--credential-store env --env-name YOUR_VARIABLE` when creating the profile\ninstead.\n\n`init` shows only eligible first-level entries and defaults all of them to\nselected. Selected directories are traversed recursively. Any path segment that\nstarts with `.` and every Git-ignored file are excluded.\n\nIf Git metadata is present but Git cannot verify the repository scope,\ncataloging, status verification, and builds fail closed with\n`GIT_SCOPE_UNAVAILABLE`; they never fall back to broader filesystem traversal.\nConsent also records whether Git or filesystem filtering was confirmed. If that\nstrategy later changes, source enumeration stops with `SOURCE_SCOPE_CHANGED`\nuntil the user re-runs `init`. State created before this field existed must\nlikewise be reconfirmed once (`SOURCE_SCOPE_RECONFIRM_REQUIRED`).\nIf a build process is interrupted, the next status check reclaims its\ndead-owner lock and reports `BUILD_INTERRUPTED`, so rebuilding can resume\nautomatically. Lock recovery is serialized with a cross-platform process lock,\nincluding recovery from a process that exits during the recovery operation.\n\nInteractive `init` uses a first-level checklist: Up/Down moves, Space toggles,\nEnter confirms, and Escape cancels. Non-interactive callers must pass both\n`--yes` and one or more explicit `--select` values.\n\n## Local files\n\nThe only project file intended for commit is `llm-wiki.json`. Local consent,\ncredentials references, build state, source proxies, and immutable generations\nlive under `.llm-wiki/`. In Git projects, `init` adds `/.llm-wiki/` to the\nrepository-local `.git/info/exclude`; it does not edit the shared `.gitignore`.\n\nProvider secrets are never written to either location. They are read from a\nsystem credential store or an explicitly named environment variable.\n\n## Compiler adapter\n\nProduction builds use an exact-pinned reviewed `llm-wiki-compiler` fork.\nIt adds native `compile({ embeddings: false, systemPolicy })` support and source\ndeletion reconciliation. Tests inject a deterministic engine.\n\nSemantic retrieval is off by default. When enabled, it uses a private SQLite\nderived cache over compiled Wiki pages only; raw source proxies are never the\nsearch corpus. Completed page batches are committed immediately, so a later\nprovider failure or cancelled build can resume without resending completed\npages. The embedding client supports OpenAI-compatible and Voyage endpoints.\n\nDuring an incremental build, the remote embedding provider may receive a\nstrictly length-bounded query containing the topic, source locator, and a short\nnew-evidence excerpt from the user-confirmed source scope. This query is used\nonly to recall existing compiled pages and is not added to the searchable\ncorpus. No automatic secret-pattern redaction is claimed: enabling semantic\nretrieval authorizes this bounded query egress to the selected independent\nprovider.\n\nSemantic mode requires an explicit embedding profile whose name and credential\nboth differ from the Wiki generation profile and credential. The generation key\nis never passed to the embedding client. A successful build records only the\nembedding profile, provider kind, model, availability, and a reason code in its\nmanifest—never a credential.\n\n```sh\nllm-wiki provider set wiki-generation \\\n  --kind openai-compatible --model generation-model \\\n  --credential-store env --env-name WIKI_GENERATION_KEY\nllm-wiki provider set wiki-embedding \\\n  --kind voyage --model voyage-3 \\\n  --credential-store env --env-name WIKI_EMBEDDING_KEY\nllm-wiki provider use wiki-generation --root /project\nllm-wiki provider use-embedding wiki-embedding --root /project\nllm-wiki semantic enable --root /project\nllm-wiki build --root /project\n```\n\nAt build and query time, a missing or changed embedding profile, missing\ncredential, bad index, or provider failure produces a stable semantic reason\ncode and falls back to lexical retrieval from compiled Wiki pages in the last\ngood generation.\n\n`serve` is strictly read-only and exits with its stdio client. Automatic builds\nrun only under the explicit `llm-wiki watch --root <project>` process; a query\nnever starts a build.\n\n`status` verifies the approved source scope by default. Polling integrations can\nuse `status --fast` to read the committed generation and runtime state without\nrescanning or hashing project files; their watcher remains responsible for\nmarking source changes stale.\n\n## Client registration\n\n`llm-wiki install` and `llm-wiki uninstall` delegate registration to the\ninstalled Claude Code, Codex, and Hermes CLIs. They do not edit those clients'\nconfiguration files directly. Missing clients produce stable reason codes;\nHermes keeps its required interactive discovery flow.\n\n## Management JSON contract\n\nWith `--json`, stdout is exactly one JSON envelope:\n\n```json\n{\"ok\":true,\"command\":\"status\",\"data\":{}}\n```\n\nFailures use:\n\n```json\n{\"ok\":false,\"command\":\"build\",\"error\":{\"code\":\"ERROR_CODE\",\"message\":\"...\"}}\n```\n\nStructured knowledge never travels in process arguments:\n\n```sh\nprintf '%s' '{\"id\":\"decision-1\",\"title\":\"Decision\",\"text\":\"Use stdio.\"}' |\n  llm-wiki upsert --root /project --json\n```\n\n`delete` likewise reads `{\"id\":\"decision-1\"}` from stdin.\n","readmeFilename":"README.md"}