@maadb/core 0.11.1 → 0.12.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.
Files changed (84) hide show
  1. package/README.md +35 -17
  2. package/dist/architect.d.ts.map +1 -1
  3. package/dist/architect.js +20 -70
  4. package/dist/architect.js.map +1 -1
  5. package/dist/claude-md.d.ts +1 -0
  6. package/dist/claude-md.d.ts.map +1 -1
  7. package/dist/claude-md.js +19 -90
  8. package/dist/claude-md.js.map +1 -1
  9. package/dist/cli/commands/maintain.d.ts +1 -0
  10. package/dist/cli/commands/maintain.d.ts.map +1 -1
  11. package/dist/cli/commands/maintain.js +82 -23
  12. package/dist/cli/commands/maintain.js.map +1 -1
  13. package/dist/cli/index.js +34 -1
  14. package/dist/cli/index.js.map +1 -1
  15. package/dist/engine/maintenance.d.ts +8 -0
  16. package/dist/engine/maintenance.d.ts.map +1 -1
  17. package/dist/engine/maintenance.js +34 -1
  18. package/dist/engine/maintenance.js.map +1 -1
  19. package/dist/engine/types.d.ts +15 -0
  20. package/dist/engine/types.d.ts.map +1 -1
  21. package/dist/instance/pool.d.ts.map +1 -1
  22. package/dist/instance/pool.js +6 -2
  23. package/dist/instance/pool.js.map +1 -1
  24. package/dist/instance/session.d.ts +1 -1
  25. package/dist/instance/session.d.ts.map +1 -1
  26. package/dist/instructions/manifest.d.ts +53 -0
  27. package/dist/instructions/manifest.d.ts.map +1 -0
  28. package/dist/instructions/manifest.js +128 -0
  29. package/dist/instructions/manifest.js.map +1 -0
  30. package/dist/logging.d.ts +13 -0
  31. package/dist/logging.d.ts.map +1 -1
  32. package/dist/logging.js +6 -0
  33. package/dist/logging.js.map +1 -1
  34. package/dist/maad-md.d.ts +1 -10
  35. package/dist/maad-md.d.ts.map +1 -1
  36. package/dist/maad-md.js +116 -243
  37. package/dist/maad-md.js.map +1 -1
  38. package/dist/mcp/kinds.d.ts.map +1 -1
  39. package/dist/mcp/kinds.js +3 -0
  40. package/dist/mcp/kinds.js.map +1 -1
  41. package/dist/mcp/lifecycle.d.ts.map +1 -1
  42. package/dist/mcp/lifecycle.js +4 -1
  43. package/dist/mcp/lifecycle.js.map +1 -1
  44. package/dist/mcp/server.d.ts +8 -0
  45. package/dist/mcp/server.d.ts.map +1 -1
  46. package/dist/mcp/server.js +2 -0
  47. package/dist/mcp/server.js.map +1 -1
  48. package/dist/mcp/tools/discover.d.ts.map +1 -1
  49. package/dist/mcp/tools/discover.js +11 -1
  50. package/dist/mcp/tools/discover.js.map +1 -1
  51. package/dist/mcp/tools/maintain.d.ts.map +1 -1
  52. package/dist/mcp/tools/maintain.js +61 -1
  53. package/dist/mcp/tools/maintain.js.map +1 -1
  54. package/dist/mcp/tools/write.d.ts.map +1 -1
  55. package/dist/mcp/tools/write.js +8 -2
  56. package/dist/mcp/tools/write.js.map +1 -1
  57. package/dist/mcp/transport/http.d.ts +12 -0
  58. package/dist/mcp/transport/http.d.ts.map +1 -1
  59. package/dist/mcp/transport/http.js +61 -12
  60. package/dist/mcp/transport/http.js.map +1 -1
  61. package/dist/mcp/transport/origin.d.ts +33 -0
  62. package/dist/mcp/transport/origin.d.ts.map +1 -0
  63. package/dist/mcp/transport/origin.js +106 -0
  64. package/dist/mcp/transport/origin.js.map +1 -0
  65. package/dist/schema/index.d.ts +1 -1
  66. package/dist/schema/index.d.ts.map +1 -1
  67. package/dist/schema/index.js +1 -1
  68. package/dist/schema/index.js.map +1 -1
  69. package/dist/schema/loader.js +60 -0
  70. package/dist/schema/loader.js.map +1 -1
  71. package/dist/schema/validator.d.ts +6 -0
  72. package/dist/schema/validator.d.ts.map +1 -1
  73. package/dist/schema/validator.js +60 -0
  74. package/dist/schema/validator.js.map +1 -1
  75. package/dist/skill-files.d.ts.map +1 -1
  76. package/dist/skill-files.js +65 -17
  77. package/dist/skill-files.js.map +1 -1
  78. package/dist/skills-scaffold.d.ts +6 -0
  79. package/dist/skills-scaffold.d.ts.map +1 -1
  80. package/dist/skills-scaffold.js +38 -29
  81. package/dist/skills-scaffold.js.map +1 -1
  82. package/dist/types.d.ts +10 -0
  83. package/dist/types.d.ts.map +1 -1
  84. package/package.json +1 -1
@@ -0,0 +1,128 @@
1
+ // ============================================================================
2
+ // Managed-instruction manifest — single registry for every generated
3
+ // instruction artifact, plus the stamp/classify/refresh machinery.
4
+ //
5
+ // Contract (accepted design, 2026-07-13):
6
+ // - Every managed file opens with a stamp:
7
+ // <!-- maadb:managed name=<artifact> engine=<semver> hash=sha256:<hex> -->
8
+ // The hash covers the content BELOW the stamp line, so classification is
9
+ // a pure content comparison:
10
+ // on-disk hash matches stamp + body matches current generator -> current
11
+ // on-disk hash matches stamp + generator differs -> outdated
12
+ // on-disk hash differs from stamp -> modified
13
+ // no stamp (pre-lifecycle vintage) -> unmanaged
14
+ // file absent -> missing
15
+ // - Refresh applies to `outdated` (and creates `missing`); `modified` and
16
+ // `unmanaged` are never touched without an explicit force — legacy files
17
+ // cannot prove they are pristine, so migrating them is a deliberate,
18
+ // git-revertible operator step.
19
+ // - Boot paths NEVER call refresh. Scaffolding remains create-if-absent.
20
+ // ============================================================================
21
+ import { createHash } from 'node:crypto';
22
+ import { readFileSync, writeFileSync, existsSync, mkdirSync } from 'node:fs';
23
+ import path from 'node:path';
24
+ import { createRequire } from 'node:module';
25
+ import { generateMaadMd } from '../maad-md.js';
26
+ import { generateSchemaGuide, generateImportGuide } from '../skill-files.js';
27
+ import { generateArchitectSkill } from '../architect.js';
28
+ const require = createRequire(import.meta.url);
29
+ /** Engine version = template version. Resolved from the shipped package.json. */
30
+ export function engineVersion() {
31
+ try {
32
+ const pkg = require('../../package.json');
33
+ return pkg.version ?? '0.0.0';
34
+ }
35
+ catch {
36
+ return '0.0.0';
37
+ }
38
+ }
39
+ /**
40
+ * The complete managed set. CLAUDE.md / AGENTS.md are deliberately NOT here —
41
+ * they are created-once thin pointers that users own after creation.
42
+ * SCHEMA.md is a data-derived artifact, not an instruction template.
43
+ */
44
+ export const MANAGED_ARTIFACTS = [
45
+ { name: 'maad-md', relPath: 'MAAD.md', generate: generateMaadMd },
46
+ { name: 'architect-core', relPath: '_skills/architect-core.md', generate: generateArchitectSkill },
47
+ { name: 'schema-guide', relPath: '_skills/schema-guide.md', generate: generateSchemaGuide },
48
+ { name: 'import-guide', relPath: '_skills/import-guide.md', generate: generateImportGuide },
49
+ ];
50
+ const STAMP_RE = /^<!-- maadb:managed name=([A-Za-z0-9_-]+) engine=([^\s]+) hash=sha256:([0-9a-f]{64}) -->\r?\n?/;
51
+ export function hashBody(body) {
52
+ // Normalize line endings before hashing so a CRLF checkout or editor
53
+ // round-trip doesn't misclassify an untouched file as modified.
54
+ return createHash('sha256').update(body.replace(/\r\n/g, '\n'), 'utf-8').digest('hex');
55
+ }
56
+ /** Prepend the managed stamp to a generated body. */
57
+ export function stampContent(name, body, version = engineVersion()) {
58
+ return `<!-- maadb:managed name=${name} engine=${version} hash=sha256:${hashBody(body)} -->\n${body}`;
59
+ }
60
+ export function parseStamp(content) {
61
+ const m = STAMP_RE.exec(content);
62
+ if (!m)
63
+ return null;
64
+ return { name: m[1], engine: m[2], hash: m[3], body: content.slice(m[0].length) };
65
+ }
66
+ export function classifyContent(onDisk, artifact) {
67
+ const base = { name: artifact.name, relPath: artifact.relPath };
68
+ if (onDisk === null)
69
+ return { ...base, state: 'missing', stampedEngine: null };
70
+ const stamp = parseStamp(onDisk);
71
+ if (!stamp)
72
+ return { ...base, state: 'unmanaged', stampedEngine: null };
73
+ if (hashBody(stamp.body) !== stamp.hash) {
74
+ return { ...base, state: 'modified', stampedEngine: stamp.engine };
75
+ }
76
+ const current = hashBody(stamp.body) === hashBody(artifact.generate());
77
+ return { ...base, state: current ? 'current' : 'outdated', stampedEngine: stamp.engine };
78
+ }
79
+ function readIfExists(absPath) {
80
+ if (!existsSync(absPath))
81
+ return null;
82
+ try {
83
+ return readFileSync(absPath, 'utf-8');
84
+ }
85
+ catch {
86
+ return null;
87
+ }
88
+ }
89
+ /** Read-only status of every managed artifact in a project. */
90
+ export function checkProject(projectRoot) {
91
+ return MANAGED_ARTIFACTS.map(a => classifyContent(readIfExists(path.join(projectRoot, a.relPath)), a));
92
+ }
93
+ export function planRefresh(projectRoot, opts) {
94
+ const plan = { refresh: [], skippedModified: [], skippedUnmanaged: [], current: [] };
95
+ for (const status of checkProject(projectRoot)) {
96
+ switch (status.state) {
97
+ case 'current':
98
+ plan.current.push(status);
99
+ break;
100
+ case 'outdated':
101
+ case 'missing':
102
+ plan.refresh.push(status);
103
+ break;
104
+ case 'modified':
105
+ (opts.force ? plan.refresh : plan.skippedModified).push(status);
106
+ break;
107
+ case 'unmanaged':
108
+ (opts.force ? plan.refresh : plan.skippedUnmanaged).push(status);
109
+ break;
110
+ }
111
+ }
112
+ return plan;
113
+ }
114
+ /** Apply a refresh plan — writes stamped current content for each entry. */
115
+ export function applyRefresh(projectRoot, plan) {
116
+ const written = [];
117
+ for (const status of plan.refresh) {
118
+ const artifact = MANAGED_ARTIFACTS.find(a => a.name === status.name);
119
+ if (!artifact)
120
+ continue;
121
+ const absPath = path.join(projectRoot, artifact.relPath);
122
+ mkdirSync(path.dirname(absPath), { recursive: true });
123
+ writeFileSync(absPath, stampContent(artifact.name, artifact.generate()), 'utf-8');
124
+ written.push(artifact.relPath);
125
+ }
126
+ return written;
127
+ }
128
+ //# sourceMappingURL=manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/instructions/manifest.ts"],"names":[],"mappings":"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"}
package/dist/logging.d.ts CHANGED
@@ -51,6 +51,19 @@ export interface PinRejectedFields {
51
51
  project: string | null;
52
52
  }
53
53
  export declare function logPinRejected(fields: PinRejectedFields): void;
54
+ export interface OriginRejectedFields {
55
+ remote_addr: string;
56
+ origin: string | null;
57
+ }
58
+ export declare function logOriginRejected(fields: OriginRejectedFields): void;
59
+ export interface InstructionsOutdatedFields {
60
+ project_root: string;
61
+ stale: Array<{
62
+ file: string;
63
+ state: string;
64
+ }>;
65
+ }
66
+ export declare function logInstructionsOutdated(fields: InstructionsOutdatedFields): void;
54
67
  export interface ValidationWarningFields {
55
68
  request_id: string;
56
69
  session_id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../src/logging.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../src/logging.ts"],"names":[],"mappings":"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"}
package/dist/logging.js CHANGED
@@ -113,6 +113,12 @@ export function logAuthFailure(fields) {
113
113
  export function logPinRejected(fields) {
114
114
  opsLog.info(fields, 'pin_rejected');
115
115
  }
116
+ export function logOriginRejected(fields) {
117
+ opsLog.info(fields, 'origin_rejected');
118
+ }
119
+ export function logInstructionsOutdated(fields) {
120
+ opsLog.info(fields, 'instructions_outdated');
121
+ }
116
122
  export function logValidationWarning(fields) {
117
123
  opsLog.warn(fields, 'validation_warning');
118
124
  }
@@ -1 +1 @@
1
- {"version":3,"file":"logging.js","sourceRoot":"","sources":["../src/logging.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,2CAA2C;AAC3C,EAAE;AACF,6EAA6E;AAC7E,2EAA2E;AAC3E,oCAAoC;AACpC,EAAE;AACF,wEAAwE;AACxE,qEAAqE;AACrE,8EAA8E;AAC9E,EAAE;AACF,uEAAuE;AACvE,uEAAuE;AACvE,0EAA0E;AAC1E,yEAAyE;AACzE,WAAW;AACX,+EAA+E;AAE/E,OAAO,IAA6C,MAAM,MAAM,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE5C,kCAAkC;AAClC,EAAE;AACF,wEAAwE;AACxE,wEAAwE;AACxE,6EAA6E;AAC7E,2EAA2E;AAC3E,6EAA6E;AAC7E,0EAA0E;AAC1E,0EAA0E;AAC1E,8EAA8E;AAC9E,sEAAsE;AACtE,MAAM,YAAY,GAAG;IACnB,cAAc;IACd,oBAAoB;IACpB,YAAY;IACZ,aAAa;IACb,4BAA4B;IAC5B,eAAe;IACf,uBAAuB;IACvB,kCAAkC;IAClC,WAAW;IACX,iBAAiB;IACjB,gCAAgC;IAChC,sBAAsB;IACtB,gCAAgC;IAChC,sBAAsB;IACtB,4BAA4B;CAC7B,CAAC;AAWF,IAAI,MAAc,CAAC;AACnB,IAAI,QAAgB,CAAC;AAErB,+EAA+E;AAC/E,8EAA8E;AAC9E,qEAAqE;AACrE,4EAA4E;AAC5E,kCAAkC;AAClC,SAAS,kBAAkB;IACzB,OAAO,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,QAAQ,CAAC,IAAoB;IACpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,MAAM,CAAC;IACjE,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IACrG,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,GAAG,EAAE,CAAC;QACvD,OAAO,IAAI,CAAC;YACV,KAAK;YACL,MAAM,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE;YACrD,SAAS,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE;SAClF,CAAC,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,kBAAkB,EAAE,CAAC,CAAC;AACtG,CAAC;AAED,SAAS,UAAU,CAAC,IAAoB;IACtC,2EAA2E;IAC3E,4BAA4B;IAC5B,MAAM,KAAK,GAAG,MAAM,CAAC;IACrB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC5E,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IAChE,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,kBAAkB,EAAE,CAAC,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,OAAuB,EAAE;IACnD,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IACxB,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED,+EAA+E;AAC/E,WAAW,EAAE,CAAC;AAEd,MAAM,UAAU,SAAS,KAAa,OAAO,MAAM,CAAC,CAAC,CAAC;AACtD,MAAM,UAAU,WAAW,KAAa,OAAO,QAAQ,CAAC,CAAC,CAAC;AAE1D,MAAM,UAAU,cAAc;IAC5B,MAAM,IAAI,GAAmB,EAAE,CAAC;IAChC,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc;QAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IACxE,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,GAAG;QAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IAC5D,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe;QAAE,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IAC9E,OAAO,IAAI,CAAC;AACd,CAAC;AAgBD,MAAM,UAAU,WAAW,CAAC,MAAyB;IACnD,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AACnC,CAAC;AAwBD,MAAM,UAAU,aAAa,CAAC,MAAwB;IACpD,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACjC,CAAC;AASD,MAAM,UAAU,cAAc,CAAC,MAAyB;IACtD,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AACtC,CAAC;AAcD,MAAM,UAAU,cAAc,CAAC,MAAyB;IACtD,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AACtC,CAAC;AAqBD,MAAM,UAAU,oBAAoB,CAAC,MAA+B;IAClE,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;AAC5C,CAAC;AAmBD,MAAM,UAAU,iBAAiB,CAAC,MAAiC;IACjE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;AAC3C,CAAC;AAYD,MAAM,UAAU,yBAAyB,CAAC,MAAoC;IAC5E,MAAM,SAAS,GAAG,mBAAmB,MAAM,CAAC,KAAK,EAAE,CAAC;IACpD,IAAI,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACjC,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACjC,CAAC;AACH,CAAC;AAgBD,MAAM,UAAU,kBAAkB,CAAC,MAA6B;IAC9D,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;AAC3C,CAAC;AAgBD,MAAM,UAAU,mBAAmB,CAAC,MAA8B;IAChE,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;AAC5C,CAAC;AAkBD,MAAM,UAAU,gBAAgB,CAAC,MAA2B;IAC1D,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;AACvC,CAAC"}
1
+ {"version":3,"file":"logging.js","sourceRoot":"","sources":["../src/logging.ts"],"names":[],"mappings":"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"}
package/dist/maad-md.d.ts CHANGED
@@ -1,11 +1,2 @@
1
- import type { Registry, SchemaStore, BackendStats } from './types.js';
2
- export interface MaadMdContext {
3
- projectRoot: string;
4
- enginePath: string;
5
- registry: Registry;
6
- schemaStore: SchemaStore;
7
- stats: BackendStats | null;
8
- }
9
- export declare function generateMaadMd(ctx: MaadMdContext): string;
10
- export declare function generateStubMaadMd(enginePath: string, projectRoot: string): string;
1
+ export declare function generateMaadMd(): string;
11
2
  //# sourceMappingURL=maad-md.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"maad-md.d.ts","sourceRoot":"","sources":["../src/maad-md.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEtE,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,QAAQ,CAAC;IACnB,WAAW,EAAE,WAAW,CAAC;IACzB,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;CAC5B;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,CAazD;AA8ND,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAqBlF"}
1
+ {"version":3,"file":"maad-md.d.ts","sourceRoot":"","sources":["../src/maad-md.ts"],"names":[],"mappings":"AAUA,wBAAgB,cAAc,IAAI,MAAM,CAkHvC"}
package/dist/maad-md.js CHANGED
@@ -1,252 +1,125 @@
1
1
  // ============================================================================
2
- // MAAD.md Generator
3
- // Generates the LLM instruction file for a MAADb project.
4
- // Content is STABLE — no volatile counts, no project-state details.
5
- // Regenerated on every reindex so interface changes propagate.
2
+ // MAAD.md Generator — canonical project operating instructions for agents.
3
+ //
4
+ // FULLY STATIC since the instruction-lifecycle rework: no live counts, no
5
+ // machine paths, no project-state details. Live facts belong to tools
6
+ // (maad_summary, maad_schema); this file owns routing, safety, and workflow.
7
+ // Written stamped via the instructions manifest; refreshed only through
8
+ // `maad instructions refresh` — never rewritten by boot or reindex.
6
9
  // ============================================================================
7
- export function generateMaadMd(ctx) {
8
- const cmd = buildCmdPrefix(ctx.enginePath, ctx.projectRoot);
9
- const sections = [];
10
- sections.push(generateHeader(cmd));
11
- sections.push(generateQuickStart(cmd, ctx));
12
- sections.push(generateFullCommandRef(cmd));
13
- sections.push(generatePrimitives());
14
- sections.push(generateRules());
15
- sections.push(generateCompositionPatterns(cmd));
16
- sections.push(generateFeedback());
17
- return sections.join('\n\n---\n\n') + '\n';
18
- }
19
- function buildCmdPrefix(enginePath, projectRoot) {
20
- return `node ${enginePath} --project ${projectRoot}`;
21
- }
22
- // ---- Sections -------------------------------------------------------------
23
- function generateHeader(cmd) {
24
- return `# MAAD.md — LLM Interface
10
+ export function generateMaadMd() {
11
+ return `# MAAD.md — Agent Operating Instructions
25
12
 
26
- > Auto-generated by the MAADb engine. Do not edit.
27
- >
28
- > **This is a test/evaluation project.** If you find issues or have improvement ideas,
29
- > create a feedback file: \`feedback-YYYY-MM-DD-<model>.md\` (e.g. \`feedback-2026-04-07-gpt-5.md\`).
13
+ > Managed by the MAADb engine — do not edit (changes block future refreshes).
14
+ > Project-specific guidance belongs in your own overlay files, e.g. \`_skills/local/\`.
30
15
 
31
16
  ## What is this?
32
17
 
33
- A **MAADb project** — a markdown-native database. Markdown files are the records. A queryable index gives you structured access without reading full files.
34
-
35
- **This file** = stable operating instructions. Read once per session.
36
- **\`maad_summary\` tool** = live project snapshot. Run once per session to see what's here.
37
- **SCHEMA.md** = deep structural reference. Read only when \`maad_schema\` isn't enough.
38
-
39
- ## How to access data
40
-
41
- Use **MAADb MCP tools** for all data operations. Do not use shell commands or direct file reads for data access. If \`maad_summary\` reports an empty project, read \`_skills/architect-core.md\` and enter Architect mode to design and deploy the schema.
42
-
43
- If using CLI for debugging:
44
- \`\`\`
45
- ${cmd} <command> [args]
46
- \`\`\``;
47
- }
48
- function generateQuickStart(cmd, _ctx) {
49
- return `## Boot Sequence
50
-
51
- **1. You just read this file.** You now know the commands.
52
-
53
- **2. Run \`summary\` to see what's in this project:**
54
- \`\`\`
55
- ${cmd} summary
56
- \`\`\`
57
- Returns: types + counts, sample doc_ids, extracted object inventory.
58
-
59
- That's it. You're oriented. Now use the commands below as needed.
60
-
61
- ### Reading data
62
- - \`get <doc_id> hot\` — frontmatter only (cheapest)
63
- - \`get <doc_id> full\` — resolved record: refs, objects, related docs
64
- - \`get <doc_id> warm <block_id>\` — frontmatter + one section
65
- - \`get <doc_id> cold\` — full file (expensive, use sparingly)
66
-
67
- ### Before writing
68
- - \`schema <type>\` — field definitions, required fields, enum values
69
-
70
- ### Reference (not needed for boot)
71
- - **SCHEMA.md** has full field-level detail for every type. Read it when \`schema <type>\` isn't enough.
72
- - **\`audit\`** shows recent git activity if you need project history.`;
73
- }
74
- function generateFullCommandRef(cmd) {
75
- return `## All Commands
76
-
77
- > Commands shown below in CLI form for explicit syntax. **MCP tool names prefix \`maad_\`** (e.g. \`get\` → \`maad_get\`, \`bulk_create\` → \`maad_bulk_create\`). Agent workflows use the MCP variants; CLI is for operator debugging.
78
-
79
- ### Discover
80
- | Command | What it does |
81
- |---------|-------------|
82
- | \`scan <file.md>\` | Structural analysis of a raw file (no registry needed) |
83
- | \`scan <dir/>\` | Corpus-level patterns: recurring fields, headings, document families |
84
- | \`summary\` | **Start here.** Types, counts, sample IDs, object inventory |
85
-
86
- ### Read
87
- | \`describe\` | Project overview: types, doc counts, primitives |
88
- | \`get <doc_id> hot\` | Frontmatter only (cheapest read) |
89
- | \`get <doc_id> warm <block>\` | Frontmatter + one section |
90
- | \`get <doc_id> cold\` | Full document (expensive — use sparingly) |
91
- | \`get <doc_id> full\` | Resolved record: refs resolved, objects, related, latest note |
92
- | \`query <type>\` | All documents of a type |
93
- | \`query <type> --filter field=value\` | Filtered (ops: eq, neq, gt, gte, lt, lte, in, contains) |
94
- | \`query <type> --fields name,status\` | Return frontmatter fields in results (projection) |
95
- | \`search <primitive>\` | Cross-document object search |
96
- | \`search <primitive> --subtype <s>\` | Filter by subtype (e.g. person, attorney) |
97
- | \`search <primitive> --query <text>\` | Substring match on values (alias: --contains) |
98
- | \`related <doc_id> both\` | All connected documents (outgoing + incoming) |
99
- | \`related <doc_id> outgoing\` | Documents this one references |
100
- | \`related <doc_id> incoming\` | Documents that reference this one |
101
- | \`schema <type>\` | Field definitions, ID prefix, format hints (use before writes) |
102
- | \`aggregate\` | Group by a field with count/sum/avg/min/max. **Use instead of iterating records to compute totals.** Supports multi-hop ref chains (\`a->b->c\`) for cross-doctype aggregates. Filters accept \`between\` shortcut and array-of-ops (AND). |
103
- | \`join\` | Query + follow refs + project fields from both sides in one call. **Use instead of \`query\` → \`get\` → \`get\` chains.** |
104
- | \`verify mode=field\` | Fact-check a field value: grounded true/false + actual value + source |
105
- | \`verify mode=count\` | Fact-check a document count: grounded true/false + actual count |
106
- | \`changes_since <cursor>\` | Delta feed — records modified since cursor. Opaque base64url cursor, stable order on (updated_at ASC, doc_id ASC). Empty cursor = from the beginning. |
107
-
108
- ### Write
109
- | Command | What it does |
110
- |---------|-------------|
111
- | \`create <type> --field k=v [--field k=v ...] [--body "text"] [--id custom-id]\` | Create a new record |
112
- | \`update <doc_id> --field k=v [--field k=v ...]\` | Update frontmatter fields |
113
- | \`update <doc_id> --append "text"\` | Append to document body |
114
- | \`update <doc_id> --body "text"\` | Replace document body |
115
- | \`bulk_create\` | Create multiple records in one call (MCP only) |
116
- | \`bulk_update\` | Update multiple records in one call (MCP only) |
117
- | \`delete <doc_id>\` | Remove a record (soft by default, \`--hard\` for hard delete) |
118
-
119
- ### Maintain
120
- | Command | What it does |
121
- |---------|-------------|
122
- | \`validate\` | Validate all documents against schemas |
123
- | \`validate <doc_id>\` | Validate one document |
124
- | \`reindex --force\` | Rebuild the full index from markdown |
125
- | \`reload\` | Reload registry + schemas without restart (after editing \`_registry/\` or \`_schema/\`) |
126
- | \`health\` | Engine status — write queue depth, last write op, disk headroom, git clean flag, transport + session telemetry |
127
- | \`parse <file.md>\` | Parse one file, show structure |
128
-
129
- ### Audit (requires git)
130
- | Command | What it does |
131
- |---------|-------------|
132
- | \`history <doc_id>\` | Change history for a document |
133
- | \`audit\` | Project-wide activity |
134
- | \`audit --since <date>\` | Activity since a date |
135
-
136
- ### Field syntax for create/update
137
- - String: \`--field name=Acme Corp\`
138
- - Enum: \`--field status=open\`
139
- - Ref: \`--field client=cli-acme\`
140
- - Array: \`--field tags=[enterprise,priority]\`
141
- - Date: \`--field opened_at=2026-04-07\``;
142
- }
143
- function generatePrimitives() {
144
- return `## Extraction Primitives
145
-
146
- Inline annotations in markdown body use \`[[type:value|label]]\` syntax. The engine extracts and indexes them.
147
-
148
- | Primitive | Captures | Search example |
149
- |-----------|----------|---------------|
150
- | \`entity\` | person, org, team, product | \`search entity --subtype person\` |
151
- | \`date\` | date, datetime | \`search date --contains 2026\` |
152
- | \`duration\` | time span (3 hours, 2 weeks) | \`search duration\` |
153
- | \`amount\` | currency (100.00 USD, $500) | \`search amount\` |
154
- | \`measure\` | value + unit (500mg, 6 feet) | \`search measure\` |
155
- | \`quantity\` | bare count (42, 1800) | \`search quantity\` |
156
- | \`percentage\` | ratio (15%, 0.85) | \`search percentage\` |
157
- | \`location\` | place, address | \`search location\` |
158
- | \`identifier\` | case number, invoice, code | \`search identifier\` |
159
- | \`contact\` | email, phone, URL | \`search contact\` |
160
- | \`media\` | image, video, audio, document | \`search media\` |`;
161
- }
162
- function generateRules() {
163
- return `## Rules
164
-
165
- 1. **Run \`summary\` first** in every new session — one call to orient
166
- 2. **Use \`hot\` reads by default** — escalate to \`full\`, \`warm\`, then \`cold\` only when needed
167
- 3. **Use \`schema <type>\` before writes** — know what fields are required
168
- 4. **Use MAADb MCP tools for writes** — never edit markdown files directly; CLI forms above are for operator debugging only
169
- 5. **Use \`search\` for cross-document queries** — don't open files to find people/dates/amounts
170
- 6. **Use \`related\` for graph traversal** — don't manually search for connected docs
171
- 7. **Cite \`doc_id\` and \`block_id\`** in answers for traceability
172
- 8. **\`reindex --force\`** recovers from any stale state
173
- 9. **Inspect \`_meta.warnings[]\` on write responses** — the engine surfaces soft-validation signals (precision drift, deprecation hints) alongside successful writes. Agents self-correct on warnings, not just on errors
174
- 10. **Use \`aggregate\` for group-by totals** — don't iterate records to compute counts, sums, averages, mins, or maxes. One \`aggregate\` call with \`metric\` + \`groupBy\` returns the answer; use the \`a->b->c\` ref-chain form for cross-doctype groupings.
175
- 11. **Use \`join\` to follow refs in one call** — don't chain \`query\` → \`get\` → \`get\` to collect related fields. \`join\` projects fields from both sides of a ref in one pass.
176
-
177
- ## Grounding Rules (CRITICAL)
178
-
179
- **Never state a number, date, amount, count, or ID from memory.** Always query first.
180
-
181
- - Before reporting a field value → call \`get\` or \`verify\` with the doc_id and field
182
- - Before reporting a count → call \`verify\` in count mode or \`query\` with the type and filters
183
- - Before reporting a relationship → call \`related\` or \`join\`
184
- - If you cannot ground a claim from the database → say "unable to verify from records"
185
-
186
- Use \`maad_verify\` to fact-check before answering:
187
- - \`verify mode=field docId=cas-001 field=claim_amount expected="1500000.00 USD"\`
188
- - \`verify mode=count docType=case expectedCount=12 filters={status: "open"}\`
189
-
190
- **The pattern:** query or verify → confirm grounded → then answer. Never the reverse.`;
191
- }
192
- function generateCompositionPatterns(cmd) {
193
- return `## Composition Patterns
194
-
195
- These are common multi-step operations built from primitives. The engine does not provide these as single commands — you compose them.
196
-
197
- ### Deep inspect (full engine internals for a document)
198
- \`\`\`
199
- ${cmd} get <doc_id> hot # frontmatter + metadata
200
- ${cmd} validate <doc_id> # schema validation state
201
- ${cmd} related <doc_id> both # all relationships
202
- ${cmd} search entity --doc <doc_id> # all extracted objects
203
- \`\`\`
204
-
205
- ### Onboard raw files (bootstrap a new project)
206
- \`\`\`
207
- ${cmd} scan <directory> # corpus-level patterns
208
- # Read the output, then:
209
- # 1. Create _registry/object_types.yaml with detected families
210
- # 2. Create _schema/*.yaml with detected field patterns
211
- # 3. Add frontmatter to each file
212
- ${cmd} reindex --force # build the index
213
- ${cmd} summary # confirm orientation
214
- \`\`\``;
215
- }
216
- function generateFeedback() {
217
- return `## Feedback
218
-
219
- This is a test/evaluation project. If you encounter issues, friction, or have improvement suggestions:
220
-
221
- 1. Create a file in the project root: \`feedback-YYYY-MM-DD-<model>.md\`
222
- - Example: \`feedback-2026-04-07-gpt-5.md\`
223
- - Example: \`feedback-2026-04-08-claude-opus.md\`
224
- 2. Structure your feedback with:
225
- - **Observations** — what happened, what you expected
226
- - **Suggestions** — how to improve it
227
- - **Context** — what you were trying to do when the issue occurred
228
- 3. Do not modify existing feedback files from other models`;
229
- }
230
- export function generateStubMaadMd(enginePath, projectRoot) {
231
- const cmd = buildCmdPrefix(enginePath, projectRoot);
232
- return `# MAAD.md — LLM Interface
233
-
234
- > Auto-generated by the MAADb engine.
235
- > Run \`reindex\` after adding types and schemas to update this file.
236
- >
237
- > **This is a test/evaluation project.** If you find issues, create a feedback file:
238
- > \`feedback-YYYY-MM-DD-<model>.md\`
239
-
240
- This is a **MAADb project** — a markdown-native database.
241
-
242
- ## Getting Started
243
-
244
- 1. Define types in \`_registry/object_types.yaml\`
245
- 2. Create schemas in \`_schema/\`
246
- 3. Add markdown records
247
- 4. Run: \`${cmd} reindex --force\`
248
-
249
- This file will be regenerated with full type/command reference after the first reindex.
18
+ A **MAADb project** — a markdown-native database. Markdown files are the
19
+ records (canonical); a SQLite index provides structured access (derived).
20
+ Use **MAADb MCP tools for all data operations** — never shell commands or
21
+ direct file reads/writes for record data. Tool schemas are authoritative
22
+ for parameters; this file covers routing, safety, and workflow.
23
+
24
+ ## Boot
25
+
26
+ 1. **Bind if needed.** Multi-project servers: \`maad_projects\` to list, then
27
+ \`maad_use_project\` (or \`maad_use_projects\`) to bind. Bindings are fixed
28
+ for the session — rebinding fails with \`SESSION_PINNED\`/\`SESSION_ALREADY_BOUND\`;
29
+ open a new session to switch. Hosted deployments may pre-pin the project.
30
+ 2. **Orient.** \`maad_summary\` once per session: types, counts, sample IDs.
31
+ Empty project → read \`_skills/architect-core.md\` and enter Architect mode.
32
+ 3. Your **effective role** (reader/writer/admin) is set by token and binding.
33
+ Tools above your role fail \`INSUFFICIENT_ROLE\`; request a lower role via
34
+ \`as=\` when acting deliberately below your ceiling. On **read-only
35
+ deployments** every mutation fails \`READ_ONLY\` — report it, don't retry.
36
+
37
+ ## Reading — pick the shape that matches the need
38
+
39
+ - \`maad_get <id> hot\` — frontmatter fields only
40
+ - \`maad_get <id> warm <block>\` — frontmatter + one named section
41
+ - \`maad_get <id> cold\` — the raw markdown body
42
+ - \`maad_get <id> full\` — resolved refs, extracted objects, relationships
43
+
44
+ Different shapes, not an escalation ladder: field value → \`hot\`; one
45
+ section → \`warm\`; whole narrative → \`cold\`; graph context → \`full\`.
46
+
47
+ ## Lookups — route by kind
48
+
49
+ - \`maad_query\` — structured frontmatter filters (eq/neq/gt/gte/lt/lte/in/contains), projection
50
+ - \`maad_search\` — extracted objects (people, dates, amounts annotated in text)
51
+ - \`maad_semantic_search\` — meaning-based retrieval (when enabled; degraded
52
+ responses say so — fall back to query/search, don't guess)
53
+ - \`maad_related\` — relationship traversal (outgoing/incoming/both)
54
+ - \`maad_aggregate\` — group-by count/sum/avg/min/max; ref chains (\`a->b->c\`)
55
+ for cross-type groupings. Use instead of iterating records.
56
+ - \`maad_join\` — query + follow refs + project both sides in one call.
57
+ Use instead of query → get → get chains.
58
+
59
+ ## Writing
60
+
61
+ 1. \`maad_schema <type>\` first — field types, required fields, enum values.
62
+ 2. **Identity is engine-owned**: never put \`doc_id\`, \`doc_type\`, or \`schema\`
63
+ inside \`fields\` — rejected with \`FRONTMATTER_GUARD\`.
64
+ 3. **Sequential mutations** — never parallelize create/update/delete from one
65
+ caller. Use \`maad_bulk_create\` / \`maad_bulk_update\` for genuine batches.
66
+ 4. **Safe updates**: pass \`expectedVersion\` on updates when you hold a prior
67
+ read. On retry after a timeout, reuse the same \`idempotencyKey\` — the
68
+ engine replays the original result instead of double-writing.
69
+ 5. **Read the response**: \`_meta.warnings[]\` carries soft-validation signals
70
+ (self-correct on warnings, not just errors). \`writeDurable: false\` or a
71
+ \`commitFailure\` means the write landed but isn't durably committed —
72
+ surface it to the operator rather than continuing silently.
73
+ 6. **Destructive operations** (\`maad_delete\`, cleanup/repair tools) follow the
74
+ dry-run-then-confirm contract where offered; prefer a \`maad_backup\` before
75
+ high-risk repair or cleanup.
76
+
77
+ ## Integrity and recovery
78
+
79
+ - \`maad_verify mode=field|count\` — ground a claimed value/count before reporting it.
80
+ - \`maad_verify mode=integrity\` — diagnoses index/document divergence and
81
+ reports the specific recovery path. Run after git pulls, manual file edits,
82
+ or schema changes.
83
+ - \`maad_reindex\` rebuilds derived index state only — it does not repair
84
+ malformed markdown, invalid schemas, or git/filesystem problems.
85
+ - \`INDEX_EMPTY\` on a project that should have data = false-empty index; the
86
+ sanctioned recovery is \`maad_reindex\` (multi-project mode) or the
87
+ operator-run CLI path — do not improvise with file writes.
88
+
89
+ ## Change awareness (multi-agent / hosted projects)
90
+
91
+ Live push: \`maad_subscribe\` (manage with \`maad_unsubscribe\` /
92
+ \`maad_subscriptions\`). Catch-up after reconnects or gaps:
93
+ \`maad_changes_since <cursor>\` — persist the cursor between calls.
94
+
95
+ ## Grounding
96
+
97
+ Claims **about project records** (values, counts, IDs, relationships) must
98
+ come from current tool results — cite \`doc_id\` / \`block_id\` when
99
+ traceability matters, and use \`maad_verify\` for high-consequence assertions.
100
+ If a claim can't be grounded, say so.
101
+
102
+ ## Extraction primitives
103
+
104
+ Inline \`[[type:value|label]]\` annotations in record bodies are extracted and
105
+ indexed: \`entity\`, \`date\`, \`duration\`, \`amount\`, \`measure\`, \`quantity\`,
106
+ \`percentage\`, \`location\`, \`identifier\`, \`contact\`, \`media\`.
107
+ Search them with \`maad_search <primitive>\`.
108
+
109
+ ## Schema and config changes
110
+
111
+ Record data goes through MCP tools. Registry (\`_registry/\`) and schema
112
+ (\`_schema/\`) authoring uses an approved filesystem or host-application
113
+ channel, followed by \`maad_reload\` — see \`_skills/architect-core.md\`. If no
114
+ approved channel exists in this deployment, stop and ask the operator; do
115
+ not improvise direct writes. In shared or public projects, keep records free
116
+ of secrets and personal data you would not hand to every project member.
117
+
118
+ ## Skills
119
+
120
+ - \`_skills/architect-core.md\` — design and deploy schemas (Architect mode)
121
+ - \`_skills/schema-guide.md\` — schema DSL reference and evolution
122
+ - \`_skills/import-guide.md\` — importing existing data
250
123
  `;
251
124
  }
252
125
  //# sourceMappingURL=maad-md.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"maad-md.js","sourceRoot":"","sources":["../src/maad-md.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,oBAAoB;AACpB,0DAA0D;AAC1D,oEAAoE;AACpE,+DAA+D;AAC/D,+EAA+E;AAY/E,MAAM,UAAU,cAAc,CAAC,GAAkB;IAC/C,MAAM,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;IAC5D,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;IACnC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAC5C,QAAQ,CAAC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3C,QAAQ,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACpC,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IAC/B,QAAQ,CAAC,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC,CAAC;IAChD,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAElC,OAAO,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC;AAC7C,CAAC;AAED,SAAS,cAAc,CAAC,UAAkB,EAAE,WAAmB;IAC7D,OAAO,QAAQ,UAAU,cAAc,WAAW,EAAE,CAAC;AACvD,CAAC;AAED,8EAA8E;AAE9E,SAAS,cAAc,CAAC,GAAW;IACjC,OAAO;;;;;;;;;;;;;;;;;;;;;EAqBP,GAAG;OACE,CAAC;AACR,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAW,EAAE,IAAmB;IAC1D,OAAO;;;;;;EAMP,GAAG;;;;;;;;;;;;;;;;;uEAiBkE,CAAC;AACxE,CAAC;AAED,SAAS,sBAAsB,CAAC,GAAW;IACzC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yCAkEgC,CAAC;AAC1C,CAAC;AAED,SAAS,kBAAkB;IACzB,OAAO;;;;;;;;;;;;;;;;iEAgBwD,CAAC;AAClE,CAAC;AAED,SAAS,aAAa;IACpB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;sFA2B6E,CAAC;AACvF,CAAC;AAED,SAAS,2BAA2B,CAAC,GAAW;IAC9C,OAAO;;;;;;EAMP,GAAG;EACH,GAAG;EACH,GAAG;EACH,GAAG;;;;;EAKH,GAAG;;;;;EAKH,GAAG;EACH,GAAG;OACE,CAAC;AACR,CAAC;AAED,SAAS,gBAAgB;IACvB,OAAO;;;;;;;;;;;2DAWkD,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,UAAkB,EAAE,WAAmB;IACxE,MAAM,GAAG,GAAG,cAAc,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IACpD,OAAO;;;;;;;;;;;;;;;YAeG,GAAG;;;CAGd,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"maad-md.js","sourceRoot":"","sources":["../src/maad-md.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,2EAA2E;AAC3E,EAAE;AACF,0EAA0E;AAC1E,sEAAsE;AACtE,6EAA6E;AAC7E,wEAAwE;AACxE,oEAAoE;AACpE,+EAA+E;AAE/E,MAAM,UAAU,cAAc;IAC5B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgHR,CAAC;AACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"kinds.d.ts","sourceRoot":"","sources":["../../src/mcp/kinds.ts"],"names":[],"mappings":"AAgBA,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,OAAO,CAAC;AAI7C,eAAO,MAAM,UAAU,EAAE,WAAW,CAAC,MAAM,CAmBzC,CAAC;AAIH,eAAO,MAAM,WAAW,EAAE,WAAW,CAAC,MAAM,CAc1C,CAAC;AAKH,eAAO,MAAM,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAchD,CAAC;AAqBH;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAIjE;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAElD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,EAAE,CAE7C"}
1
+ {"version":3,"file":"kinds.d.ts","sourceRoot":"","sources":["../../src/mcp/kinds.ts"],"names":[],"mappings":"AAgBA,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,OAAO,CAAC;AAI7C,eAAO,MAAM,UAAU,EAAE,WAAW,CAAC,MAAM,CAmBzC,CAAC;AAIH,eAAO,MAAM,WAAW,EAAE,WAAW,CAAC,MAAM,CAiB1C,CAAC;AAKH,eAAO,MAAM,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAchD,CAAC;AAqBH;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAIjE;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAElD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,EAAE,CAE7C"}