@maadb/core 0.11.2 → 0.12.1

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 (85) hide show
  1. package/README.md +16 -4
  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 +28 -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/instructions/manifest.d.ts +53 -0
  25. package/dist/instructions/manifest.d.ts.map +1 -0
  26. package/dist/instructions/manifest.js +128 -0
  27. package/dist/instructions/manifest.js.map +1 -0
  28. package/dist/logging.d.ts +13 -0
  29. package/dist/logging.d.ts.map +1 -1
  30. package/dist/logging.js +6 -0
  31. package/dist/logging.js.map +1 -1
  32. package/dist/maad-md.d.ts +1 -10
  33. package/dist/maad-md.d.ts.map +1 -1
  34. package/dist/maad-md.js +116 -243
  35. package/dist/maad-md.js.map +1 -1
  36. package/dist/mcp/kinds.d.ts.map +1 -1
  37. package/dist/mcp/kinds.js +3 -0
  38. package/dist/mcp/kinds.js.map +1 -1
  39. package/dist/mcp/lifecycle.d.ts.map +1 -1
  40. package/dist/mcp/lifecycle.js +4 -1
  41. package/dist/mcp/lifecycle.js.map +1 -1
  42. package/dist/mcp/server.d.ts +6 -0
  43. package/dist/mcp/server.d.ts.map +1 -1
  44. package/dist/mcp/server.js +1 -0
  45. package/dist/mcp/server.js.map +1 -1
  46. package/dist/mcp/tools/discover.d.ts.map +1 -1
  47. package/dist/mcp/tools/discover.js +11 -1
  48. package/dist/mcp/tools/discover.js.map +1 -1
  49. package/dist/mcp/tools/maintain.d.ts.map +1 -1
  50. package/dist/mcp/tools/maintain.js +61 -1
  51. package/dist/mcp/tools/maintain.js.map +1 -1
  52. package/dist/mcp/tools/write.d.ts.map +1 -1
  53. package/dist/mcp/tools/write.js +8 -2
  54. package/dist/mcp/tools/write.js.map +1 -1
  55. package/dist/mcp/transport/http.d.ts +10 -0
  56. package/dist/mcp/transport/http.d.ts.map +1 -1
  57. package/dist/mcp/transport/http.js +34 -9
  58. package/dist/mcp/transport/http.js.map +1 -1
  59. package/dist/mcp/transport/origin.d.ts +33 -0
  60. package/dist/mcp/transport/origin.d.ts.map +1 -0
  61. package/dist/mcp/transport/origin.js +106 -0
  62. package/dist/mcp/transport/origin.js.map +1 -0
  63. package/dist/schema/index.d.ts +1 -1
  64. package/dist/schema/index.d.ts.map +1 -1
  65. package/dist/schema/index.js +1 -1
  66. package/dist/schema/index.js.map +1 -1
  67. package/dist/schema/loader.js +60 -0
  68. package/dist/schema/loader.js.map +1 -1
  69. package/dist/schema/validator.d.ts +6 -0
  70. package/dist/schema/validator.d.ts.map +1 -1
  71. package/dist/schema/validator.js +60 -0
  72. package/dist/schema/validator.js.map +1 -1
  73. package/dist/skill-files.d.ts.map +1 -1
  74. package/dist/skill-files.js +65 -17
  75. package/dist/skill-files.js.map +1 -1
  76. package/dist/skills-scaffold.d.ts +6 -0
  77. package/dist/skills-scaffold.d.ts.map +1 -1
  78. package/dist/skills-scaffold.js +38 -29
  79. package/dist/skills-scaffold.js.map +1 -1
  80. package/dist/types.d.ts +10 -0
  81. package/dist/types.d.ts.map +1 -1
  82. package/dist/writer/serializer.d.ts.map +1 -1
  83. package/dist/writer/serializer.js +15 -3
  84. package/dist/writer/serializer.js.map +1 -1
  85. package/package.json +1 -1
@@ -0,0 +1,106 @@
1
+ // ============================================================================
2
+ // Origin-header validation for the Streamable HTTP /mcp endpoint.
3
+ //
4
+ // MCP Streamable HTTP spec (2025-03-26 onward; reaffirmed 2025-11-25):
5
+ // servers MUST validate the Origin header on all incoming connections to
6
+ // prevent DNS rebinding, and MUST respond 403 Forbidden when a present
7
+ // Origin is invalid. Requests WITHOUT an Origin header pass — Origin is a
8
+ // browser-attached header that non-browser MCP clients (SDKs, CLIs,
9
+ // backend services) do not send, and a page cannot forge or strip it.
10
+ //
11
+ // This is Origin validation, not CORS: no Access-Control-* headers are
12
+ // emitted, and no preflight handling is added. The allowlist is exact
13
+ // serialized origins only — no wildcards, no implicit localhost. An empty
14
+ // allowlist (the default) denies every request that presents an Origin,
15
+ // which is the secure zero-configuration posture for non-browser deploys.
16
+ // ============================================================================
17
+ /**
18
+ * Split a comma-separated origin list (MAAD_HTTP_ALLOWED_ORIGINS) into
19
+ * candidate entries. Empty segments from stray commas are dropped; actual
20
+ * validation happens in parseAllowedOrigins.
21
+ */
22
+ export function splitOriginList(raw) {
23
+ return raw.split(',').map(s => s.trim()).filter(s => s.length > 0);
24
+ }
25
+ /**
26
+ * Validate and canonicalize configured allowlist entries once at startup.
27
+ * Accepts only http:/https: origins, canonicalized via WHATWG URL origin
28
+ * serialization. Entries carrying wildcards, paths (beyond a bare trailing
29
+ * slash), queries, fragments, credentials, or the opaque `null` origin are
30
+ * configuration errors — the caller must fail startup with the returned
31
+ * messages rather than silently dropping entries.
32
+ */
33
+ export function parseAllowedOrigins(entries) {
34
+ const origins = new Set();
35
+ const errors = [];
36
+ for (const entry of entries) {
37
+ const trimmed = entry.trim();
38
+ if (trimmed.length === 0) {
39
+ errors.push('empty origin entry');
40
+ continue;
41
+ }
42
+ if (trimmed.includes('*')) {
43
+ errors.push(`'${trimmed}': wildcards are not supported; list exact origins`);
44
+ continue;
45
+ }
46
+ if (trimmed.toLowerCase() === 'null') {
47
+ errors.push(`'${trimmed}': the opaque null origin cannot be allowlisted`);
48
+ continue;
49
+ }
50
+ let url;
51
+ try {
52
+ url = new URL(trimmed);
53
+ }
54
+ catch {
55
+ errors.push(`'${trimmed}': not a parseable origin (expected e.g. https://app.example.com)`);
56
+ continue;
57
+ }
58
+ if (url.protocol !== 'http:' && url.protocol !== 'https:') {
59
+ errors.push(`'${trimmed}': only http: and https: origins are supported`);
60
+ continue;
61
+ }
62
+ if (url.username !== '' || url.password !== '') {
63
+ errors.push(`'${trimmed}': credentials are not allowed in an origin`);
64
+ continue;
65
+ }
66
+ if (url.search !== '' || url.hash !== '') {
67
+ errors.push(`'${trimmed}': queries/fragments are not allowed in an origin`);
68
+ continue;
69
+ }
70
+ if (url.pathname !== '/') {
71
+ errors.push(`'${trimmed}': paths are not allowed in an origin`);
72
+ continue;
73
+ }
74
+ origins.add(url.origin);
75
+ }
76
+ if (errors.length > 0)
77
+ return { ok: false, errors };
78
+ return { ok: true, origins };
79
+ }
80
+ /**
81
+ * Evaluate a request's Origin header against the canonical allowlist.
82
+ * `absent` (no header) passes — non-browser client. A present header must
83
+ * be a single, parseable http(s) origin whose canonical serialization is
84
+ * in the allowlist; anything else — unlisted, malformed, duplicated,
85
+ * opaque `null` — is `forbidden` (HTTP 403 per spec).
86
+ */
87
+ export function checkOrigin(header, allowed) {
88
+ if (header === undefined)
89
+ return 'absent';
90
+ if (Array.isArray(header))
91
+ return 'forbidden';
92
+ const value = header.trim();
93
+ if (value.length === 0 || value.toLowerCase() === 'null')
94
+ return 'forbidden';
95
+ let url;
96
+ try {
97
+ url = new URL(value);
98
+ }
99
+ catch {
100
+ return 'forbidden';
101
+ }
102
+ if (url.protocol !== 'http:' && url.protocol !== 'https:')
103
+ return 'forbidden';
104
+ return allowed.has(url.origin) ? 'allowed' : 'forbidden';
105
+ }
106
+ //# sourceMappingURL=origin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"origin.js","sourceRoot":"","sources":["../../../src/mcp/transport/origin.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  export { loadSchemas } from './loader.js';
2
- export { validateFrontmatter } from './validator.js';
2
+ export { validateFrontmatter, codePointLength } from './validator.js';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC"}
@@ -1,3 +1,3 @@
1
1
  export { loadSchemas } from './loader.js';
2
- export { validateFrontmatter } from './validator.js';
2
+ export { validateFrontmatter, codePointLength } from './validator.js';
3
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC"}
@@ -183,8 +183,26 @@ function parseSchemaDefinition(data, ref, registry) {
183
183
  template,
184
184
  });
185
185
  }
186
+ // 0.12.0 capability gate — the complete field-definition key vocabulary.
187
+ // Unknown keys FAIL schema activation (SCHEMA_INVALID) instead of being
188
+ // silently ignored: a schema requesting a constraint this engine doesn't
189
+ // implement must refuse to load rather than run with unenforced policy.
190
+ // Every future constraint key added here is automatically version-gated —
191
+ // engines older than the key (but carrying this gate) reject it by name.
192
+ const KNOWN_FIELD_KEYS = new Set([
193
+ 'type', 'index', 'role', 'format', 'target', 'values', 'item_type', 'default',
194
+ 'store_precision', 'on_coarser', 'display_precision',
195
+ 'max_length', 'soft_max_length', 'multiline',
196
+ ]);
186
197
  function parseFieldDefinition(name, fd, schemaRef, registry) {
187
198
  const errors = [];
199
+ for (const key of Object.keys(fd)) {
200
+ if (!KNOWN_FIELD_KEYS.has(key)) {
201
+ errors.push(maadError('SCHEMA_INVALID', `Schema "${schemaRef}" field "${name}" declares unknown key "${key}". ` +
202
+ `This engine cannot enforce it, so the schema is refused rather than loaded with unenforced policy. ` +
203
+ `Known keys: ${[...KNOWN_FIELD_KEYS].join(', ')}. If "${key}" is from a newer MAADb, upgrade this engine before activating the schema.`));
204
+ }
205
+ }
188
206
  const typeStr = fd['type'];
189
207
  if (typeof typeStr !== 'string' || !VALID_FIELD_TYPES.includes(typeStr)) {
190
208
  errors.push(maadError('SCHEMA_INVALID', `Schema "${schemaRef}" field "${name}" has invalid type "${String(typeStr)}". Valid: ${VALID_FIELD_TYPES.join(', ')}`));
@@ -291,6 +309,45 @@ function parseFieldDefinition(name, fd, schemaRef, registry) {
291
309
  }
292
310
  }
293
311
  }
312
+ // --- 0.12.0 structural constraints (only meaningful on string fields) ----
313
+ let maxLength = null;
314
+ let softMaxLength = null;
315
+ let multiline = null;
316
+ if (fieldType === 'string') {
317
+ const parseLimit = (key) => {
318
+ const raw = fd[key];
319
+ if (raw === undefined)
320
+ return null;
321
+ if (typeof raw !== 'number' || !Number.isInteger(raw) || raw < 1) {
322
+ errors.push(maadError('SCHEMA_INVALID', `Schema "${schemaRef}" field "${name}" has invalid ${key} "${String(raw)}" — must be a positive integer (Unicode code points)`));
323
+ return null;
324
+ }
325
+ return raw;
326
+ };
327
+ maxLength = parseLimit('max_length');
328
+ softMaxLength = parseLimit('soft_max_length');
329
+ const mlRaw = fd['multiline'];
330
+ if (mlRaw !== undefined) {
331
+ if (typeof mlRaw !== 'boolean') {
332
+ errors.push(maadError('SCHEMA_INVALID', `Schema "${schemaRef}" field "${name}" has invalid multiline "${String(mlRaw)}" — must be true or false`));
333
+ }
334
+ else {
335
+ multiline = mlRaw;
336
+ }
337
+ }
338
+ if (maxLength !== null && softMaxLength !== null && softMaxLength > maxLength) {
339
+ errors.push(maadError('SCHEMA_INVALID', `Schema "${schemaRef}" field "${name}" has soft_max_length ${softMaxLength} > max_length ${maxLength} — the advisory limit must not exceed the hard limit`));
340
+ }
341
+ }
342
+ else {
343
+ // Constraint keys on non-string fields are configuration errors — same
344
+ // posture as precision keys on non-date fields.
345
+ for (const k of ['max_length', 'soft_max_length', 'multiline']) {
346
+ if (fd[k] !== undefined) {
347
+ errors.push(maadError('SCHEMA_INVALID', `Schema "${schemaRef}" field "${name}" of type "${fieldType}" cannot declare "${k}" — only valid on string fields`));
348
+ }
349
+ }
350
+ }
294
351
  if (errors.length > 0)
295
352
  return err(errors);
296
353
  return ok({
@@ -306,6 +363,9 @@ function parseFieldDefinition(name, fd, schemaRef, registry) {
306
363
  storePrecision,
307
364
  onCoarser,
308
365
  displayPrecision,
366
+ maxLength,
367
+ softMaxLength,
368
+ multiline,
309
369
  });
310
370
  }
311
371
  function parseVersionFromRef(ref) {
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/schema/loader.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,gBAAgB;AAChB,uEAAuE;AACvE,+EAA+E;AAE/E,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,EAA+B,MAAM,cAAc,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAkB,MAAM,gBAAgB,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACjF,OAAO,EACL,OAAO,GAUR,MAAM,aAAa,CAAC;AAErB,MAAM,iBAAiB,GAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;AAEhH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,WAAmB,EAAE,QAAkB;IACvE,MAAM,MAAM,GAAgB,EAAE,CAAC;IAC/B,MAAM,OAAO,GAAG,IAAI,GAAG,EAA+B,CAAC;IACvD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAqB,CAAC;IAClD,2EAA2E;IAC3E,wEAAwE;IACxE,mEAAmE;IACnE,MAAM,WAAW,GAAG,IAAI,GAAG,EAA6C,CAAC;IACzE,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,mBAAmB,CAAC,CAAC;IAC9E,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC;QACpC,WAAW,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;IACxE,CAAC;IAAC,MAAM,CAAC;QACP,sEAAsE;QACtE,oEAAoE;QACpE,yEAAyE;IAC3E,CAAC;IAED,KAAK,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;QACzC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,SAAmB,CAAC,EAAE,CAAC;YAClD,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,qCAAqC,OAAO,CAAC,IAAc,MAAM,OAAO,CAAC,SAAmB,EAAE,CAAC,CAAC,CAAC;YACzI,SAAS;QACX,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,SAAS,OAAO,CAAC,CAAC;QAClF,IAAI,GAAW,CAAC;QAEhB,IAAI,CAAC;YACH,IAAI,CAAC,sBAAsB,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,CAAC;gBACrD,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,qCAAqC,OAAO,CAAC,SAAmB,EAAE,CAAC,CAAC,CAAC;gBAC7G,SAAS;YACX,CAAC;YACD,GAAG,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAC1C,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC;YAClC,WAAW,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;QACtE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,mCAAmC,OAAO,CAAC,IAAI,MAAM,UAAU,EAAE,CAAC,CAAC,CAAC;YAC9G,SAAS;QACX,CAAC;QAED,IAAI,IAA6B,CAAC;QAClC,IAAI,CAAC;YACH,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtC,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,IAA+B,CAAC;YAC1D,CAAC;iBAAM,CAAC;gBACN,IAAI,GAAG,WAAW,CAAC,QAAQ,GAAG,OAAO,CAAC,CAAC,IAA+B,CAAC;YACzE,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,OAAO,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC;YACvE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,2BAA2B,OAAO,CAAC,SAAS,MAAM,OAAO,EAAE,CAAC,CAAC,CAAC;YACnG,SAAS;QACX,CAAC;QAED,MAAM,MAAM,GAAG,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACxE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YAC9B,SAAS;QACX,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7C,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAc,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IACnE,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC;IACrB,CAAC;IAED,MAAM,KAAK,GAAgB;QACzB,OAAO;QACP,WAAW;QACX,SAAS,CAAC,GAAc;YACtB,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;QACD,gBAAgB,CAAC,IAAa;YAC5B,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,IAAc,CAAC,CAAC;YAC7C,IAAI,GAAG,KAAK,SAAS;gBAAE,OAAO,SAAS,CAAC;YACxC,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;QACD,OAAO;YACL,sEAAsE;YACtE,wEAAwE;YACxE,qEAAqE;YACrE,yCAAyC;YACzC,KAAK,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;gBAC5C,IAAI,CAAC;oBACH,MAAM,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;oBAC7B,IAAI,EAAE,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI;wBAAE,OAAO,IAAI,CAAC;gBAC5E,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;KACF,CAAC;IAEF,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;AACnB,CAAC;AAED,SAAS,qBAAqB,CAC5B,IAA6B,EAC7B,GAAc,EACd,QAAkB;IAElB,MAAM,MAAM,GAAgB,EAAE,CAAC;IAE/B,OAAO;IACP,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9B,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,WAAW,GAAG,6BAA6B,CAAC,CAAC,CAAC;QACtF,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC;IACrB,CAAC;IAED,UAAU;IACV,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;IAChC,MAAM,UAAU,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAEpF,kBAAkB;IAClB,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;IACrC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QAC/B,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;YAC5B,IAAI,OAAO,CAAC,KAAK,QAAQ;gBAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,SAAS;IACT,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjC,MAAM,MAAM,GAAG,IAAI,GAAG,EAA2B,CAAC;IAElD,IAAI,SAAS,KAAK,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACnF,KAAK,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAoC,CAAC,EAAE,CAAC;YACzF,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;gBACtD,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,WAAW,GAAG,YAAY,SAAS,qBAAqB,CAAC,CAAC,CAAC;gBACnG,SAAS;YACX,CAAC;YAED,MAAM,EAAE,GAAG,QAAmC,CAAC;YAC/C,MAAM,WAAW,GAAG,oBAAoB,CAAC,SAAS,EAAE,EAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;YACvE,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC;gBACpB,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;gBACnC,SAAS;YACX,CAAC;YACD,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,+CAA+C;IAC/C,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,QAAQ;YAAE,SAAS;QACzE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,WAAW,GAAG,YAAY,GAAG,+CAA+C,CAAC,CAAC,CAAC;QACzH,CAAC;IACH,CAAC;IAED,WAAW;IACX,IAAI,QAAQ,GAA6B,IAAI,CAAC;IAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;IACrC,IAAI,WAAW,KAAK,SAAS,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QACzF,MAAM,GAAG,GAAG,WAAsC,CAAC;QACnD,MAAM,WAAW,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC;QACpC,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YAC/B,QAAQ,GAAG,EAAE,CAAC;YACd,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;gBAC5B,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;oBACxC,MAAM,IAAI,GAAG,CAA4B,CAAC;oBAC1C,QAAQ,CAAC,IAAI,CAAC;wBACZ,KAAK,EAAE,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC5D,IAAI,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;wBAC1D,EAAE,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;qBACvD,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC;IACrB,CAAC;IAED,OAAO,EAAE,CAAC;QACR,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC;QACvB,OAAO,EAAE,UAAU;QACnB,QAAQ;QACR,MAAM;QACN,QAAQ;KACT,CAAC,CAAC;AACL,CAAC;AAED,SAAS,oBAAoB,CAC3B,IAAY,EACZ,EAA2B,EAC3B,SAAoB,EACpB,QAAkB;IAElB,MAAM,MAAM,GAAgB,EAAE,CAAC;IAE/B,MAAM,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC;IAC3B,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAAoB,CAAC,EAAE,CAAC;QACrF,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,EACpC,WAAW,SAAS,YAAY,IAAI,uBAAuB,MAAM,CAAC,OAAO,CAAC,aAAa,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1H,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC;IACrB,CAAC;IACD,MAAM,SAAS,GAAG,OAAoB,CAAC;IAEvC,MAAM,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;IACnC,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAChE,MAAM,MAAM,GAAG,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAE9G,oFAAoF;IACpF,IAAI,MAAM,GAAmB,IAAI,CAAC;IAClC,MAAM,WAAW,GAAG,SAAS,KAAK,KAAK,IAAI,CAAC,SAAS,KAAK,MAAM,IAAI,EAAE,CAAC,WAAW,CAAC,KAAK,KAAK,CAAC,CAAC;IAC/F,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,SAAS,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC;QAC/B,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,WAAW,SAAS,YAAY,IAAI,iDAAiD,CAAC,CAAC,CAAC;QAClI,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;gBAC5C,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,WAAW,SAAS,YAAY,IAAI,8BAA8B,SAAS,GAAG,CAAC,CAAC,CAAC;YAC3H,CAAC;YACD,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,cAAc;IACd,IAAI,MAAM,GAAoB,IAAI,CAAC;IACnC,IAAI,SAAS,KAAK,MAAM,IAAI,CAAC,SAAS,KAAK,MAAM,IAAI,EAAE,CAAC,WAAW,CAAC,KAAK,MAAM,CAAC,EAAE,CAAC;QACjF,MAAM,SAAS,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC;QAC/B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxD,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,WAAW,SAAS,YAAY,IAAI,yCAAyC,CAAC,CAAC,CAAC;QAC1H,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,iBAAiB;IACjB,IAAI,QAAQ,GAAqB,IAAI,CAAC;IACtC,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;QACzB,MAAM,WAAW,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC;QACpC,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,iBAAiB,CAAC,QAAQ,CAAC,WAAwB,CAAC,EAAE,CAAC;YAC5F,QAAQ,GAAG,WAAwB,CAAC;QACtC,CAAC;aAAM,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,EACpC,WAAW,SAAS,YAAY,IAAI,4BAA4B,MAAM,CAAC,WAAW,CAAC,aAAa,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QACrI,CAAC;QACD,4DAA4D;IAC9D,CAAC;IAED,MAAM,YAAY,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC;IAE3C,0EAA0E;IAC1E,IAAI,cAAc,GAAqB,IAAI,CAAC;IAC5C,IAAI,SAAS,GAA4B,IAAI,CAAC;IAC9C,IAAI,gBAAgB,GAAqB,IAAI,CAAC;IAE9C,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,EAAE,CAAC,iBAAiB,CAAC,CAAC;QACpC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,EACpC,WAAW,SAAS,YAAY,IAAI,kCAAkC,MAAM,CAAC,KAAK,CAAC,KAAK;oBACxF,4DAA4D,CAAC,CAAC,CAAC;YACnE,CAAC;iBAAM,CAAC;gBACN,cAAc,GAAG,KAAK,CAAC;YACzB,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC;QAC/B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;gBAC1C,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,EACpC,WAAW,SAAS,YAAY,IAAI,6BAA6B,MAAM,CAAC,KAAK,CAAC,KAAK;oBACnF,oBAAoB,CAAC,CAAC,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACN,SAAS,GAAG,KAAK,CAAC;YACpB,CAAC;QACH,CAAC;aAAM,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;YACnC,sEAAsE;YACtE,gEAAgE;YAChE,SAAS,GAAG,MAAM,CAAC;QACrB,CAAC;QAED,MAAM,KAAK,GAAG,EAAE,CAAC,mBAAmB,CAAC,CAAC;QACtC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,EACpC,WAAW,SAAS,YAAY,IAAI,oCAAoC,MAAM,CAAC,KAAK,CAAC,KAAK;oBAC1F,4DAA4D,CAAC,CAAC,CAAC;YACnE,CAAC;iBAAM,CAAC;gBACN,gBAAgB,GAAG,KAAK,CAAC;YAC3B,CAAC;QACH,CAAC;QAED,sEAAsE;QACtE,sEAAsE;QACtE,iCAAiC;QACjC,IAAI,cAAc,KAAK,IAAI,IAAI,gBAAgB,KAAK,IAAI,EAAE,CAAC;YACzD,IAAI,gBAAgB,CAAC,gBAAgB,EAAE,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC3D,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,EACpC,WAAW,SAAS,YAAY,IAAI,4BAA4B,gBAAgB,eAAe;oBAC/F,oBAAoB,cAAc,+CAA+C,CAAC,CAAC,CAAC;YACxF,CAAC;QACH,CAAC;IACH,CAAC;SAAM,CAAC;QACN,mDAAmD;QACnD,KAAK,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,YAAY,EAAE,mBAAmB,CAAC,EAAE,CAAC;YACvE,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;gBACxB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,EACpC,WAAW,SAAS,YAAY,IAAI,cAAc,SAAS,qBAAqB,CAAC,+BAA+B,CAAC,CAAC,CAAC;YACvH,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC;IAE1C,OAAO,EAAE,CAAC;QACR,IAAI;QACJ,IAAI,EAAE,SAAS;QACf,KAAK;QACL,IAAI;QACJ,MAAM;QACN,MAAM;QACN,MAAM;QACN,YAAY;QACZ,QAAQ;QACR,cAAc;QACd,SAAS;QACT,gBAAgB;KACjB,CAAC,CAAC;AACL,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAc;IACzC,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,GAAa,CAAC,CAAC;IAC9C,OAAO,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,CAAC"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/schema/loader.ts"],"names":[],"mappings":"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"}
@@ -18,4 +18,10 @@ export interface ValidationOptions {
18
18
  changedFields?: Set<string>;
19
19
  }
20
20
  export declare function validateFrontmatter(frontmatter: Record<string, unknown>, schema: SchemaDefinition, registry: Registry, filePath?: FilePath | undefined, options?: ValidationOptions): ValidationResult;
21
+ /**
22
+ * Length in Unicode code points — the constraint contract's measurement unit
23
+ * (language-neutral; what Python len() sees). NOT UTF-16 units, NOT grapheme
24
+ * clusters. Values are measured as stored; no normalization.
25
+ */
26
+ export declare function codePointLength(value: string): number;
21
27
  //# sourceMappingURL=validator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/schema/validator.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,gBAAgB,EAChB,QAAQ,EACR,gBAAgB,EAIhB,QAAQ,EACT,MAAM,aAAa,CAAC;AAGrB;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAElE,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,cAAc,CAAC;IACrB,4EAA4E;IAC5E,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC7B;AAED,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,MAAM,EAAE,gBAAgB,EACxB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,EAC/B,OAAO,CAAC,EAAE,iBAAiB,GAC1B,gBAAgB,CA6DlB"}
1
+ {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/schema/validator.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,gBAAgB,EAChB,QAAQ,EACR,gBAAgB,EAIhB,QAAQ,EACT,MAAM,aAAa,CAAC;AAGrB;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAElE,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,cAAc,CAAC;IACrB,4EAA4E;IAC5E,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC7B;AAED,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,MAAM,EAAE,gBAAgB,EACxB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,EAC/B,OAAO,CAAC,EAAE,iBAAiB,GAC1B,gBAAgB,CA6ElB;AA2DD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIrD"}
@@ -54,6 +54,19 @@ export function validateFrontmatter(frontmatter, schema, registry, filePath, opt
54
54
  else if (precEntry?.kind === 'warn')
55
55
  warnings.push(precEntry.entry);
56
56
  }
57
+ // 0.12.0 structural constraints — write-mode only, same contract as
58
+ // precision: never on read / index / audit, update-neighbor safe via
59
+ // changedFields, skipped when structural validation already failed.
60
+ // Hard and advisory limits are evaluated independently.
61
+ if (mode === 'write' &&
62
+ fieldErrors.length === 0 &&
63
+ fieldDef.type === 'string' &&
64
+ typeof value === 'string' &&
65
+ (changedFields === undefined || changedFields.has(fieldName))) {
66
+ const found = checkConstraints(fieldName, value, fieldDef, loc);
67
+ errors.push(...found.errors);
68
+ warnings.push(...found.warnings);
69
+ }
57
70
  }
58
71
  return {
59
72
  valid: errors.length === 0,
@@ -94,6 +107,53 @@ function checkPrecision(fieldName, value, fieldDef, loc) {
94
107
  },
95
108
  };
96
109
  }
110
+ /**
111
+ * Length in Unicode code points — the constraint contract's measurement unit
112
+ * (language-neutral; what Python len() sees). NOT UTF-16 units, NOT grapheme
113
+ * clusters. Values are measured as stored; no normalization.
114
+ */
115
+ export function codePointLength(value) {
116
+ let n = 0;
117
+ for (const _ of value)
118
+ n++;
119
+ return n;
120
+ }
121
+ /**
122
+ * 0.12.0 structural constraints for a string field. Caller is responsible
123
+ * for the write-mode / changedFields / structurally-valid gates.
124
+ */
125
+ function checkConstraints(fieldName, value, fieldDef, loc) {
126
+ const errors = [];
127
+ const warnings = [];
128
+ if (fieldDef.multiline === false && /[\r\n]/.test(value)) {
129
+ errors.push({
130
+ field: fieldName,
131
+ message: `Value contains line breaks but schema declares multiline: false`,
132
+ code: 'FIELD_MULTILINE_NOT_ALLOWED',
133
+ location: loc,
134
+ });
135
+ }
136
+ if (fieldDef.maxLength !== null || fieldDef.softMaxLength !== null) {
137
+ const actual = codePointLength(value);
138
+ if (fieldDef.maxLength !== null && actual > fieldDef.maxLength) {
139
+ errors.push({
140
+ field: fieldName,
141
+ message: `Value is ${actual} code points but schema declares max_length ${fieldDef.maxLength}`,
142
+ code: 'FIELD_MAX_LENGTH_EXCEEDED',
143
+ location: loc,
144
+ });
145
+ }
146
+ if (fieldDef.softMaxLength !== null && actual > fieldDef.softMaxLength) {
147
+ warnings.push({
148
+ field: fieldName,
149
+ message: `Value is ${actual} code points, over the advisory soft_max_length ${fieldDef.softMaxLength}`,
150
+ code: 'FIELD_SOFT_MAX_LENGTH_EXCEEDED',
151
+ location: loc,
152
+ });
153
+ }
154
+ }
155
+ return { errors, warnings };
156
+ }
97
157
  function validateField(name, value, def, registry) {
98
158
  const errors = [];
99
159
  switch (def.type) {
@@ -1 +1 @@
1
- {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/schema/validator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/schema/validator.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"skill-files.d.ts","sourceRoot":"","sources":["../src/skill-files.ts"],"names":[],"mappings":"AAKA,wBAAgB,mBAAmB,IAAI,MAAM,CAkM5C;AAED,wBAAgB,mBAAmB,IAAI,MAAM,CAiK5C"}
1
+ {"version":3,"file":"skill-files.d.ts","sourceRoot":"","sources":["../src/skill-files.ts"],"names":[],"mappings":"AAKA,wBAAgB,mBAAmB,IAAI,MAAM,CAgP5C;AAED,wBAAgB,mBAAmB,IAAI,MAAM,CAmK5C"}
@@ -45,11 +45,16 @@ Day-long mediation with Judge Vasquez. No resolution. Opposing at $950K.
45
45
 
46
46
  The engine indexes each block with line pointers. Individual notes are addressable via \`get warm <doc_id> <block_id>\`.
47
47
 
48
- ### Decision rule
48
+ ### Decision checkpoint
49
49
 
50
- Ask: **Will this type generate more than 1,000 records per year?**
51
- - No → Master pattern (one file per record, use \`maad_create\`)
52
- - Yes → Transaction pattern (append to parent file, use \`maad_update --append\`)
50
+ Volume is the starting signal, not the rule. Blocks appended to a parent file
51
+ give up capabilities that standalone records keep: independent frontmatter and
52
+ schema validation, query filtering, ref fields, per-record lifecycle, deletion
53
+ and retention handling. Decide per type:
54
+
55
+ - **High volume + rarely queried individually + parent-scoped** → Transaction pattern (append to parent file, \`maad_update --append\`)
56
+ - **Needs filtering, refs, per-record status, or independent deletion/retention** → Master pattern (one file per record, \`maad_create\`) even at higher volume
57
+ - Also weigh mutation patterns, audit requirements, and git behavior (thousands of files per year strain diffs and reindex)
53
58
 
54
59
  ## Registry entry
55
60
 
@@ -99,7 +104,7 @@ fields:
99
104
  tags:
100
105
  type: list
101
106
  index: false
102
- itemType: string
107
+ item_type: string
103
108
  \`\`\`
104
109
 
105
110
  ## Field types
@@ -112,7 +117,7 @@ fields:
112
117
  | \`enum\` | Constrained values | Exact match. Requires \`values\` list. |
113
118
  | \`ref\` | Reference to another record | Exact match. Requires \`target\` type. Creates relationship edges. |
114
119
  | \`boolean\` | true/false | Exact match |
115
- | \`list\` | Array of values | Requires \`itemType\`. Use \`target\` for list-of-ref. |
120
+ | \`list\` | Array of values | Requires \`item_type\`. Use \`target\` for list-of-ref. |
116
121
  | \`amount\` | Currency value (e.g. "1250000 USD") | Numeric range on extracted value |
117
122
 
118
123
  ## Date precision (0.6.7+)
@@ -154,6 +159,40 @@ birthday:
154
159
  - **Audit with \`maad_validate includePrecision: true\`** to plan migrations. Returns \`precisionDrift[]\` — informational, never counted as invalid.
155
160
  - Absent keys = pre-0.6.7 lenient behavior. Fully backward compatible.
156
161
 
162
+ ## Structural string constraints (0.12.0+)
163
+
164
+ String fields accept three optional constraint keys. Older engines refuse to
165
+ activate a schema that declares keys they cannot enforce (\`SCHEMA_INVALID\`)
166
+ — upgrade every serving engine before adding constraints to a live schema,
167
+ and preflight existing data with \`maad_validate includeConstraints: true\`.
168
+
169
+ | Key | Type | Effect on write |
170
+ |-----|------|-----------------|
171
+ | \`max_length\` | positive int | Hard limit — write fails \`FIELD_MAX_LENGTH_EXCEEDED\` |
172
+ | \`soft_max_length\` | positive int | Advisory — write succeeds with a \`FIELD_SOFT_MAX_LENGTH_EXCEEDED\` entry in \`_meta.warnings[]\` |
173
+ | \`multiline: false\` | boolean | Rejects CR/LF in the value — \`FIELD_MULTILINE_NOT_ALLOWED\` |
174
+
175
+ Lengths measure **Unicode code points** (what Python \`len()\` sees), with no
176
+ normalization. Enforcement is write-time only — existing records stay
177
+ readable, and updates that don't touch a constrained field are never blocked
178
+ by a pre-existing violation. \`soft_max_length\` must not exceed \`max_length\`.
179
+
180
+ \`\`\`yaml
181
+ type: ticket
182
+ version: 1
183
+ required: [doc_id, subject]
184
+ fields:
185
+ subject:
186
+ type: string
187
+ index: true
188
+ multiline: false
189
+ max_length: 200
190
+ soft_max_length: 120
191
+ detail:
192
+ type: string
193
+ index: false
194
+ \`\`\`
195
+
157
196
  ## Required fields
158
197
 
159
198
  Every schema must require \`doc_id\`. Add other required fields that every record of this type must have.
@@ -179,17 +218,24 @@ Add heading structure that \`maad_create\` will generate for new records:
179
218
 
180
219
  \`\`\`yaml
181
220
  template:
182
- - level: 1
183
- text: "{{title}}"
184
- - level: 2
185
- text: Background
186
- - level: 2
187
- text: Notes
221
+ headings:
222
+ - level: 1
223
+ text: "{{title}}"
224
+ - level: 2
225
+ text: Background
226
+ - level: 2
227
+ text: Notes
188
228
  \`\`\`
189
229
 
190
- ## Schema versioning
230
+ ## Schema versioning and evolution
231
+
232
+ Schema refs use \`<type>.v<number>\` format (lowercase/snake-case name, positive integer version — non-conforming refs fail \`REGISTRY_INVALID\` at load).
191
233
 
192
- Schema refs use \`<type>.v<number>\` format. When changing a schema, create a new version file and update the registry reference.
234
+ Evolving a schema is more than incrementing the number:
235
+
236
+ 1. **Additive change** (new optional field): edit the existing version file, \`maad_reload\`. Existing records stay valid.
237
+ 2. **Breaking change** (rename/retype/require a field, change enum values): create \`<type>.v<N+1>.yaml\`, update the registry ref, \`maad_reload\`. Existing records still carry the old \`schema:\` ref — repair stored refs with \`maad_repair_where\` (\`fix_schema_drift\`) after verifying the plan with its dry-run output.
238
+ 3. **After any evolution**: run \`maad_validate\` to see which records now fail, and \`maad_verify mode=integrity\` if files were edited outside the engine. Migrate or grandfather violations deliberately — don't leave the project half-conformant.
193
239
 
194
240
  ## After creating schemas
195
241
 
@@ -221,7 +267,7 @@ Use \`maad_scan\` on the source directory for structural patterns if helpful.
221
267
 
222
268
  ## Step 2 — Classify master vs transaction
223
269
 
224
- For each type, ask: **Will it generate more than 1,000 records per year?**
270
+ For each type, run the decision checkpoint from schema-guide.md — volume, queryability, mutation, retention, audit, git behavior. Typical outcomes:
225
271
 
226
272
  | Type | Volume | Pattern | File strategy |
227
273
  |------|--------|---------|---------------|
@@ -230,7 +276,7 @@ For each type, ask: **Will it generate more than 1,000 records per year?**
230
276
  | Contacts | Low (hundreds) | Master | One file per contact |
231
277
  | Case notes | **High (thousands+)** | **Transaction** | One file per case, notes appended as blocks |
232
278
  | Activity logs | **High (tens of thousands)** | **Transaction** | One file per entity, entries appended |
233
- | Invoices | Medium to high | Master if <1K/yr, Transaction if more | Depends on volume |
279
+ | Invoices | Medium to high | Master if individually queried/lifecycled | Checkpoint call — volume vs per-record needs |
234
280
 
235
281
  ## Step 3 — Design registry and schemas
236
282
 
@@ -297,11 +343,13 @@ First create the parent file, then append entries:
297
343
  maad_create({
298
344
  docType: "case_note",
299
345
  docId: "notes-cas-001",
300
- fields: { case: "cas-001", doc_type: "case_note" },
346
+ fields: { case: "cas-001" },
301
347
  body: "## 2024-03-05 — Mediation Session {#note-010}\\n\\nDay-long mediation. No resolution."
302
348
  })
303
349
  \`\`\`
304
350
 
351
+ **The engine stamps identity fields itself.** Never include \`doc_id\`, \`doc_type\`, or \`schema\` inside \`fields\` — the write is rejected with \`FRONTMATTER_GUARD\`. Identity comes from the top-level \`docType\`/\`docId\` arguments.
352
+
305
353
  For subsequent notes, append to the same file:
306
354
 
307
355
  \`\`\`
@@ -1 +1 @@
1
- {"version":3,"file":"skill-files.js","sourceRoot":"","sources":["../src/skill-files.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,2DAA2D;AAC3D,oDAAoD;AACpD,+EAA+E;AAE/E,MAAM,UAAU,mBAAmB;IACjC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgMR,CAAC;AACF,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+JR,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"skill-files.js","sourceRoot":"","sources":["../src/skill-files.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,2DAA2D;AAC3D,oDAAoD;AACpD,+EAA+E;AAE/E,MAAM,UAAU,mBAAmB;IACjC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8OR,CAAC;AACF,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiKR,CAAC;AACF,CAAC"}
@@ -7,4 +7,10 @@ export interface SkillsScaffoldResult {
7
7
  }>;
8
8
  }
9
9
  export declare function ensureProjectSkills(projectRoot: string): SkillsScaffoldResult;
10
+ /**
11
+ * Advisory-only staleness signal, emitted once per project bind. Never
12
+ * writes: stale files are reported to the ops log so operators (and the
13
+ * daily walkthrough) see them; refresh stays operator-pulled.
14
+ */
15
+ export declare function emitInstructionsAdvisory(projectRoot: string): void;
10
16
  //# sourceMappingURL=skills-scaffold.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"skills-scaffold.d.ts","sourceRoot":"","sources":["../src/skills-scaffold.ts"],"names":[],"mappings":"AAkBA,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClD;AAaD,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,oBAAoB,CA6B7E"}
1
+ {"version":3,"file":"skills-scaffold.d.ts","sourceRoot":"","sources":["../src/skills-scaffold.ts"],"names":[],"mappings":"AAsBA,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClD;AAED,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,oBAAoB,CAoB7E;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAalE"}