@kaddo/mcp 3.101.0 → 3.103.0

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.
package/README.md CHANGED
@@ -34,7 +34,7 @@ directory set via the `KADDO_PROJECT_DIR` environment variable).
34
34
  }
35
35
  ```
36
36
 
37
- `cwd` must point to the project that contains `.kaddo/`, `knowledge/` and (optionally) `external/`.
37
+ `cwd` must point to the project that contains `.kaddo/` and `knowledge/`.
38
38
 
39
39
  ## Resources
40
40
 
@@ -47,7 +47,7 @@ directory set via the `KADDO_PROJECT_DIR` environment variable).
47
47
  | `kaddo://graph-hints` | `.kaddo/graph-hints.md` + `.json` | weak/missing relationships |
48
48
  | `kaddo://work-items` | `knowledge/delivery/work-items/` | summarized Work Items |
49
49
  | `kaddo://roadmap` | `knowledge/delivery/roadmap.md` | delivery roadmap |
50
- | `kaddo://capsules` | `.kaddo/external.yml` + `external/` | external Knowledge Capsules |
50
+ | `kaddo://capsules` | `.kaddo/external.yml` + `knowledge/external/` | external Knowledge Capsules |
51
51
  | `kaddo://agents` | `knowledge/agents/` | installed agent prompts |
52
52
  | `kaddo://skills` | `knowledge/skills/` | installed reusable skills (empty if none) |
53
53
  | `kaddo://skills/<id>` | `knowledge/skills/<id>/skill.md` | one reusable skill |
@@ -66,7 +66,7 @@ directory set via the `KADDO_PROJECT_DIR` environment variable).
66
66
 
67
67
  When a derived artifact is missing or stale, these tools regenerate it in place using the same core
68
68
  logic as the CLI — so the agent never has to leave the flow. They are deterministic (no LLM) and
69
- **only write under `.kaddo/`**; they never touch `knowledge/`, `src/`, `external/`,
69
+ **only write under `.kaddo/`**; they never touch `knowledge/`, `src/`,
70
70
  `.kaddo/external.yml` or git.
71
71
 
72
72
  | Tool | Writes | CLI equivalent |
@@ -78,7 +78,7 @@ logic as the CLI — so the agent never has to leave the flow. They are determin
78
78
  | `kaddo_generate_capsule_draft` | `.kaddo/exports/<project>.capsule.md` + `.json` | `kaddo capsule export` |
79
79
 
80
80
  `kaddo_generate_capsule_draft` writes a **draft only** — it never registers/imports a capsule
81
- (`external/`, `.kaddo/external.yml` stay untouched; use the CLI `kaddo capsule add` for that).
81
+ (`knowledge/external/`, `.kaddo/external.yml` stay untouched; use the CLI `kaddo capsule add` for that).
82
82
 
83
83
  Each tool returns `{ status, files_written, summary, warnings, next_suggested_resources }`. All
84
84
  writes pass through a central allowlist (`assertMcpDerivedWritePath`) that blocks any path outside
@@ -103,7 +103,7 @@ regenerate artifacts **only under `.kaddo/`**; everything else is read-only.
103
103
 
104
104
  ## Security
105
105
 
106
- The server only reads `.kaddo/`, `knowledge/` and `external/`. It never reads `src/`, `.git/`,
106
+ The server only reads `.kaddo/` and `knowledge/`. It never reads `src/`, `.git/`,
107
107
  `node_modules/`, `dist/`, `build/` or `coverage/`, blocks path traversal, and never exposes
108
108
  secrets, tokens, env values, source code or PII.
109
109
 
package/dist/index.js CHANGED
@@ -96,7 +96,7 @@ import matter from "gray-matter";
96
96
  import fs from "fs";
97
97
  import path from "path";
98
98
  import { parse as parseYaml } from "yaml";
99
- var ALLOWED_ROOTS = [".kaddo", "knowledge", "external"];
99
+ var ALLOWED_ROOTS = [".kaddo", "knowledge"];
100
100
  var KaddoMcpError = class extends Error {
101
101
  };
102
102
  function projectRoot() {
@@ -464,7 +464,9 @@ var configSchema = z.object({
464
464
  guard: z.unknown().optional(),
465
465
  scan: z.unknown().optional(),
466
466
  telemetry: z.object({
467
- enabled: z.boolean().default(false)
467
+ consent: z.enum(["enabled", "disabled"]).optional(),
468
+ consentVersion: z.number().optional(),
469
+ enabled: z.boolean().optional()
468
470
  }).passthrough().optional()
469
471
  }).passthrough();
470
472
  function configPathFor(dir) {
@@ -10501,7 +10503,7 @@ var RESOURCES = [
10501
10503
  {
10502
10504
  uri: "kaddo://capsules",
10503
10505
  name: "Kaddo knowledge capsules",
10504
- description: "External Knowledge Capsules from .kaddo/external.yml and external/.",
10506
+ description: "External Knowledge Capsules from .kaddo/external.yml and knowledge/external/.",
10505
10507
  mimeType: "application/json",
10506
10508
  read: (root) => [
10507
10509
  {
@@ -10895,7 +10897,9 @@ var configSchema2 = z3.object({
10895
10897
  guard: z3.unknown().optional(),
10896
10898
  scan: z3.unknown().optional(),
10897
10899
  telemetry: z3.object({
10898
- enabled: z3.boolean().default(false)
10900
+ consent: z3.enum(["enabled", "disabled"]).optional(),
10901
+ consentVersion: z3.number().optional(),
10902
+ enabled: z3.boolean().optional()
10899
10903
  }).passthrough().optional()
10900
10904
  }).passthrough();
10901
10905
  function configPathFor2(dir) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kaddo/mcp",
3
- "version": "3.101.0",
3
+ "version": "3.103.0",
4
4
  "description": "MCP server for Kaddo project knowledge: read-only resources/tools/prompts plus safe derived generation under .kaddo/.",
5
5
  "license": "MIT",
6
6
  "repository": {