@maadb/core 0.0.1 → 0.7.9

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 (407) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +371 -3
  3. package/dist/architect.d.ts +2 -0
  4. package/dist/architect.d.ts.map +1 -0
  5. package/dist/architect.js +273 -0
  6. package/dist/architect.js.map +1 -0
  7. package/dist/auth/resolve.d.ts +36 -0
  8. package/dist/auth/resolve.d.ts.map +1 -0
  9. package/dist/auth/resolve.js +77 -0
  10. package/dist/auth/resolve.js.map +1 -0
  11. package/dist/auth/token-store.d.ts +82 -0
  12. package/dist/auth/token-store.d.ts.map +1 -0
  13. package/dist/auth/token-store.js +464 -0
  14. package/dist/auth/token-store.js.map +1 -0
  15. package/dist/auth/types.d.ts +75 -0
  16. package/dist/auth/types.d.ts.map +1 -0
  17. package/dist/auth/types.js +15 -0
  18. package/dist/auth/types.js.map +1 -0
  19. package/dist/backend/adapter.d.ts +57 -0
  20. package/dist/backend/adapter.d.ts.map +1 -0
  21. package/dist/backend/adapter.js +6 -0
  22. package/dist/backend/adapter.js.map +1 -0
  23. package/dist/backend/index.d.ts +3 -0
  24. package/dist/backend/index.d.ts.map +1 -0
  25. package/dist/backend/index.js +2 -0
  26. package/dist/backend/index.js.map +1 -0
  27. package/dist/backend/sqlite/index.d.ts +63 -0
  28. package/dist/backend/sqlite/index.d.ts.map +1 -0
  29. package/dist/backend/sqlite/index.js +521 -0
  30. package/dist/backend/sqlite/index.js.map +1 -0
  31. package/dist/backend/sqlite/schema.d.ts +2 -0
  32. package/dist/backend/sqlite/schema.d.ts.map +1 -0
  33. package/dist/backend/sqlite/schema.js +88 -0
  34. package/dist/backend/sqlite/schema.js.map +1 -0
  35. package/dist/claude-md.d.ts +2 -0
  36. package/dist/claude-md.d.ts.map +1 -0
  37. package/dist/claude-md.js +97 -0
  38. package/dist/claude-md.js.map +1 -0
  39. package/dist/cli/commands/audit.d.ts +4 -0
  40. package/dist/cli/commands/audit.d.ts.map +1 -0
  41. package/dist/cli/commands/audit.js +39 -0
  42. package/dist/cli/commands/audit.js.map +1 -0
  43. package/dist/cli/commands/auth.d.ts +8 -0
  44. package/dist/cli/commands/auth.d.ts.map +1 -0
  45. package/dist/cli/commands/auth.js +242 -0
  46. package/dist/cli/commands/auth.js.map +1 -0
  47. package/dist/cli/commands/discover.d.ts +5 -0
  48. package/dist/cli/commands/discover.d.ts.map +1 -0
  49. package/dist/cli/commands/discover.js +48 -0
  50. package/dist/cli/commands/discover.js.map +1 -0
  51. package/dist/cli/commands/maintain.d.ts +6 -0
  52. package/dist/cli/commands/maintain.d.ts.map +1 -0
  53. package/dist/cli/commands/maintain.js +168 -0
  54. package/dist/cli/commands/maintain.js.map +1 -0
  55. package/dist/cli/commands/read.d.ts +7 -0
  56. package/dist/cli/commands/read.d.ts.map +1 -0
  57. package/dist/cli/commands/read.js +139 -0
  58. package/dist/cli/commands/read.js.map +1 -0
  59. package/dist/cli/commands/write.d.ts +4 -0
  60. package/dist/cli/commands/write.d.ts.map +1 -0
  61. package/dist/cli/commands/write.js +99 -0
  62. package/dist/cli/commands/write.js.map +1 -0
  63. package/dist/cli/helpers.d.ts +8 -0
  64. package/dist/cli/helpers.d.ts.map +1 -0
  65. package/dist/cli/helpers.js +17 -0
  66. package/dist/cli/helpers.js.map +1 -0
  67. package/dist/cli/index.d.ts +3 -0
  68. package/dist/cli/index.d.ts.map +1 -0
  69. package/dist/cli/index.js +296 -0
  70. package/dist/cli/index.js.map +1 -0
  71. package/dist/cli.d.ts +3 -0
  72. package/dist/cli.d.ts.map +1 -0
  73. package/dist/cli.js +7 -0
  74. package/dist/cli.js.map +1 -0
  75. package/dist/engine/audit.d.ts +15 -0
  76. package/dist/engine/audit.d.ts.map +1 -0
  77. package/dist/engine/audit.js +42 -0
  78. package/dist/engine/audit.js.map +1 -0
  79. package/dist/engine/composites.d.ts +6 -0
  80. package/dist/engine/composites.d.ts.map +1 -0
  81. package/dist/engine/composites.js +102 -0
  82. package/dist/engine/composites.js.map +1 -0
  83. package/dist/engine/context.d.ts +47 -0
  84. package/dist/engine/context.d.ts.map +1 -0
  85. package/dist/engine/context.js +55 -0
  86. package/dist/engine/context.js.map +1 -0
  87. package/dist/engine/docid-safe.d.ts +8 -0
  88. package/dist/engine/docid-safe.d.ts.map +1 -0
  89. package/dist/engine/docid-safe.js +0 -0
  90. package/dist/engine/docid-safe.js.map +1 -0
  91. package/dist/engine/helpers.d.ts +8 -0
  92. package/dist/engine/helpers.d.ts.map +1 -0
  93. package/dist/engine/helpers.js +102 -0
  94. package/dist/engine/helpers.js.map +1 -0
  95. package/dist/engine/index.d.ts +209 -0
  96. package/dist/engine/index.d.ts.map +1 -0
  97. package/dist/engine/index.js +489 -0
  98. package/dist/engine/index.js.map +1 -0
  99. package/dist/engine/indexing.d.ts +14 -0
  100. package/dist/engine/indexing.d.ts.map +1 -0
  101. package/dist/engine/indexing.js +225 -0
  102. package/dist/engine/indexing.js.map +1 -0
  103. package/dist/engine/journal.d.ts +32 -0
  104. package/dist/engine/journal.d.ts.map +1 -0
  105. package/dist/engine/journal.js +111 -0
  106. package/dist/engine/journal.js.map +1 -0
  107. package/dist/engine/logger.d.ts +19 -0
  108. package/dist/engine/logger.d.ts.map +1 -0
  109. package/dist/engine/logger.js +40 -0
  110. package/dist/engine/logger.js.map +1 -0
  111. package/dist/engine/maintenance.d.ts +15 -0
  112. package/dist/engine/maintenance.d.ts.map +1 -0
  113. package/dist/engine/maintenance.js +87 -0
  114. package/dist/engine/maintenance.js.map +1 -0
  115. package/dist/engine/mutex.d.ts +24 -0
  116. package/dist/engine/mutex.d.ts.map +1 -0
  117. package/dist/engine/mutex.js +50 -0
  118. package/dist/engine/mutex.js.map +1 -0
  119. package/dist/engine/pathguard.d.ts +16 -0
  120. package/dist/engine/pathguard.d.ts.map +1 -0
  121. package/dist/engine/pathguard.js +41 -0
  122. package/dist/engine/pathguard.js.map +1 -0
  123. package/dist/engine/reads.d.ts +24 -0
  124. package/dist/engine/reads.d.ts.map +1 -0
  125. package/dist/engine/reads.js +701 -0
  126. package/dist/engine/reads.js.map +1 -0
  127. package/dist/engine/types.d.ts +350 -0
  128. package/dist/engine/types.d.ts.map +1 -0
  129. package/dist/engine/types.js +5 -0
  130. package/dist/engine/types.js.map +1 -0
  131. package/dist/engine/writes.d.ts +10 -0
  132. package/dist/engine/writes.d.ts.map +1 -0
  133. package/dist/engine/writes.js +606 -0
  134. package/dist/engine/writes.js.map +1 -0
  135. package/dist/engine.d.ts +3 -0
  136. package/dist/engine.d.ts.map +1 -0
  137. package/dist/engine.js +6 -0
  138. package/dist/engine.js.map +1 -0
  139. package/dist/errors.d.ts +20 -0
  140. package/dist/errors.d.ts.map +1 -0
  141. package/dist/errors.js +17 -0
  142. package/dist/errors.js.map +1 -0
  143. package/dist/extractor/fields.d.ts +3 -0
  144. package/dist/extractor/fields.d.ts.map +1 -0
  145. package/dist/extractor/fields.js +58 -0
  146. package/dist/extractor/fields.js.map +1 -0
  147. package/dist/extractor/index.d.ts +7 -0
  148. package/dist/extractor/index.d.ts.map +1 -0
  149. package/dist/extractor/index.js +22 -0
  150. package/dist/extractor/index.js.map +1 -0
  151. package/dist/extractor/normalizers.d.ts +22 -0
  152. package/dist/extractor/normalizers.d.ts.map +1 -0
  153. package/dist/extractor/normalizers.js +250 -0
  154. package/dist/extractor/normalizers.js.map +1 -0
  155. package/dist/extractor/objects.d.ts +3 -0
  156. package/dist/extractor/objects.d.ts.map +1 -0
  157. package/dist/extractor/objects.js +33 -0
  158. package/dist/extractor/objects.js.map +1 -0
  159. package/dist/extractor/relationships.d.ts +3 -0
  160. package/dist/extractor/relationships.d.ts.map +1 -0
  161. package/dist/extractor/relationships.js +58 -0
  162. package/dist/extractor/relationships.js.map +1 -0
  163. package/dist/git/commit.d.ts +63 -0
  164. package/dist/git/commit.d.ts.map +1 -0
  165. package/dist/git/commit.js +161 -0
  166. package/dist/git/commit.js.map +1 -0
  167. package/dist/git/diff.d.ts +4 -0
  168. package/dist/git/diff.d.ts.map +1 -0
  169. package/dist/git/diff.js +56 -0
  170. package/dist/git/diff.js.map +1 -0
  171. package/dist/git/index.d.ts +41 -0
  172. package/dist/git/index.d.ts.map +1 -0
  173. package/dist/git/index.js +86 -0
  174. package/dist/git/index.js.map +1 -0
  175. package/dist/git/log.d.ts +13 -0
  176. package/dist/git/log.d.ts.map +1 -0
  177. package/dist/git/log.js +116 -0
  178. package/dist/git/log.js.map +1 -0
  179. package/dist/git/snapshot.d.ts +4 -0
  180. package/dist/git/snapshot.d.ts.map +1 -0
  181. package/dist/git/snapshot.js +65 -0
  182. package/dist/git/snapshot.js.map +1 -0
  183. package/dist/instance/config.d.ts +19 -0
  184. package/dist/instance/config.d.ts.map +1 -0
  185. package/dist/instance/config.js +107 -0
  186. package/dist/instance/config.js.map +1 -0
  187. package/dist/instance/pool.d.ts +138 -0
  188. package/dist/instance/pool.d.ts.map +1 -0
  189. package/dist/instance/pool.js +335 -0
  190. package/dist/instance/pool.js.map +1 -0
  191. package/dist/instance/session.d.ts +140 -0
  192. package/dist/instance/session.d.ts.map +1 -0
  193. package/dist/instance/session.js +267 -0
  194. package/dist/instance/session.js.map +1 -0
  195. package/dist/logging.d.ts +108 -0
  196. package/dist/logging.d.ts.map +1 -0
  197. package/dist/logging.js +120 -0
  198. package/dist/logging.js.map +1 -0
  199. package/dist/maad-md.d.ts +11 -0
  200. package/dist/maad-md.d.ts.map +1 -0
  201. package/dist/maad-md.js +252 -0
  202. package/dist/maad-md.js.map +1 -0
  203. package/dist/mcp/bulk-cap.d.ts +10 -0
  204. package/dist/mcp/bulk-cap.d.ts.map +1 -0
  205. package/dist/mcp/bulk-cap.js +37 -0
  206. package/dist/mcp/bulk-cap.js.map +1 -0
  207. package/dist/mcp/config.d.ts +18 -0
  208. package/dist/mcp/config.d.ts.map +1 -0
  209. package/dist/mcp/config.js +20 -0
  210. package/dist/mcp/config.js.map +1 -0
  211. package/dist/mcp/ctx.d.ts +17 -0
  212. package/dist/mcp/ctx.d.ts.map +1 -0
  213. package/dist/mcp/ctx.js +7 -0
  214. package/dist/mcp/ctx.js.map +1 -0
  215. package/dist/mcp/guardrails.d.ts +21 -0
  216. package/dist/mcp/guardrails.d.ts.map +1 -0
  217. package/dist/mcp/guardrails.js +39 -0
  218. package/dist/mcp/guardrails.js.map +1 -0
  219. package/dist/mcp/idempotency.d.ts +69 -0
  220. package/dist/mcp/idempotency.d.ts.map +1 -0
  221. package/dist/mcp/idempotency.js +168 -0
  222. package/dist/mcp/idempotency.js.map +1 -0
  223. package/dist/mcp/instance-reload.d.ts +23 -0
  224. package/dist/mcp/instance-reload.d.ts.map +1 -0
  225. package/dist/mcp/instance-reload.js +126 -0
  226. package/dist/mcp/instance-reload.js.map +1 -0
  227. package/dist/mcp/kinds.d.ts +22 -0
  228. package/dist/mcp/kinds.d.ts.map +1 -0
  229. package/dist/mcp/kinds.js +110 -0
  230. package/dist/mcp/kinds.js.map +1 -0
  231. package/dist/mcp/lifecycle.d.ts +8 -0
  232. package/dist/mcp/lifecycle.d.ts.map +1 -0
  233. package/dist/mcp/lifecycle.js +65 -0
  234. package/dist/mcp/lifecycle.js.map +1 -0
  235. package/dist/mcp/notifications.d.ts +87 -0
  236. package/dist/mcp/notifications.d.ts.map +1 -0
  237. package/dist/mcp/notifications.js +154 -0
  238. package/dist/mcp/notifications.js.map +1 -0
  239. package/dist/mcp/query-depth.d.ts +28 -0
  240. package/dist/mcp/query-depth.d.ts.map +1 -0
  241. package/dist/mcp/query-depth.js +43 -0
  242. package/dist/mcp/query-depth.js.map +1 -0
  243. package/dist/mcp/rate-limit.d.ts +60 -0
  244. package/dist/mcp/rate-limit.d.ts.map +1 -0
  245. package/dist/mcp/rate-limit.js +203 -0
  246. package/dist/mcp/rate-limit.js.map +1 -0
  247. package/dist/mcp/reload-signal.d.ts +13 -0
  248. package/dist/mcp/reload-signal.d.ts.map +1 -0
  249. package/dist/mcp/reload-signal.js +68 -0
  250. package/dist/mcp/reload-signal.js.map +1 -0
  251. package/dist/mcp/response.d.ts +109 -0
  252. package/dist/mcp/response.d.ts.map +1 -0
  253. package/dist/mcp/response.js +132 -0
  254. package/dist/mcp/response.js.map +1 -0
  255. package/dist/mcp/roles.d.ts +7 -0
  256. package/dist/mcp/roles.d.ts.map +1 -0
  257. package/dist/mcp/roles.js +56 -0
  258. package/dist/mcp/roles.js.map +1 -0
  259. package/dist/mcp/server.d.ts +33 -0
  260. package/dist/mcp/server.d.ts.map +1 -0
  261. package/dist/mcp/server.js +242 -0
  262. package/dist/mcp/server.js.map +1 -0
  263. package/dist/mcp/shutdown.d.ts +32 -0
  264. package/dist/mcp/shutdown.d.ts.map +1 -0
  265. package/dist/mcp/shutdown.js +130 -0
  266. package/dist/mcp/shutdown.js.map +1 -0
  267. package/dist/mcp/tools/audit.d.ts +4 -0
  268. package/dist/mcp/tools/audit.d.ts.map +1 -0
  269. package/dist/mcp/tools/audit.js +45 -0
  270. package/dist/mcp/tools/audit.js.map +1 -0
  271. package/dist/mcp/tools/auth.d.ts +4 -0
  272. package/dist/mcp/tools/auth.d.ts.map +1 -0
  273. package/dist/mcp/tools/auth.js +181 -0
  274. package/dist/mcp/tools/auth.js.map +1 -0
  275. package/dist/mcp/tools/discover.d.ts +4 -0
  276. package/dist/mcp/tools/discover.d.ts.map +1 -0
  277. package/dist/mcp/tools/discover.js +83 -0
  278. package/dist/mcp/tools/discover.js.map +1 -0
  279. package/dist/mcp/tools/instance.d.ts +15 -0
  280. package/dist/mcp/tools/instance.d.ts.map +1 -0
  281. package/dist/mcp/tools/instance.js +207 -0
  282. package/dist/mcp/tools/instance.js.map +1 -0
  283. package/dist/mcp/tools/maintain.d.ts +4 -0
  284. package/dist/mcp/tools/maintain.d.ts.map +1 -0
  285. package/dist/mcp/tools/maintain.js +118 -0
  286. package/dist/mcp/tools/maintain.js.map +1 -0
  287. package/dist/mcp/tools/read.d.ts +4 -0
  288. package/dist/mcp/tools/read.d.ts.map +1 -0
  289. package/dist/mcp/tools/read.js +260 -0
  290. package/dist/mcp/tools/read.js.map +1 -0
  291. package/dist/mcp/tools/write.d.ts +4 -0
  292. package/dist/mcp/tools/write.d.ts.map +1 -0
  293. package/dist/mcp/tools/write.js +342 -0
  294. package/dist/mcp/tools/write.js.map +1 -0
  295. package/dist/mcp/transport/auth.d.ts +41 -0
  296. package/dist/mcp/transport/auth.d.ts.map +1 -0
  297. package/dist/mcp/transport/auth.js +115 -0
  298. package/dist/mcp/transport/auth.js.map +1 -0
  299. package/dist/mcp/transport/http.d.ts +62 -0
  300. package/dist/mcp/transport/http.d.ts.map +1 -0
  301. package/dist/mcp/transport/http.js +357 -0
  302. package/dist/mcp/transport/http.js.map +1 -0
  303. package/dist/mcp/transport/pin.d.ts +15 -0
  304. package/dist/mcp/transport/pin.d.ts.map +1 -0
  305. package/dist/mcp/transport/pin.js +71 -0
  306. package/dist/mcp/transport/pin.js.map +1 -0
  307. package/dist/mcp/transport/telemetry.d.ts +79 -0
  308. package/dist/mcp/transport/telemetry.d.ts.map +1 -0
  309. package/dist/mcp/transport/telemetry.js +97 -0
  310. package/dist/mcp/transport/telemetry.js.map +1 -0
  311. package/dist/mcp/with-session.d.ts +26 -0
  312. package/dist/mcp/with-session.d.ts.map +1 -0
  313. package/dist/mcp/with-session.js +275 -0
  314. package/dist/mcp/with-session.js.map +1 -0
  315. package/dist/parser/annotations.d.ts +3 -0
  316. package/dist/parser/annotations.d.ts.map +1 -0
  317. package/dist/parser/annotations.js +41 -0
  318. package/dist/parser/annotations.js.map +1 -0
  319. package/dist/parser/blocks.d.ts +3 -0
  320. package/dist/parser/blocks.d.ts.map +1 -0
  321. package/dist/parser/blocks.js +99 -0
  322. package/dist/parser/blocks.js.map +1 -0
  323. package/dist/parser/frontmatter.d.ts +9 -0
  324. package/dist/parser/frontmatter.d.ts.map +1 -0
  325. package/dist/parser/frontmatter.js +33 -0
  326. package/dist/parser/frontmatter.js.map +1 -0
  327. package/dist/parser/index.d.ts +11 -0
  328. package/dist/parser/index.d.ts.map +1 -0
  329. package/dist/parser/index.js +54 -0
  330. package/dist/parser/index.js.map +1 -0
  331. package/dist/parser/matter.d.ts +3 -0
  332. package/dist/parser/matter.d.ts.map +1 -0
  333. package/dist/parser/matter.js +32 -0
  334. package/dist/parser/matter.js.map +1 -0
  335. package/dist/parser/tags.d.ts +3 -0
  336. package/dist/parser/tags.d.ts.map +1 -0
  337. package/dist/parser/tags.js +32 -0
  338. package/dist/parser/tags.js.map +1 -0
  339. package/dist/parser/verbatim.d.ts +4 -0
  340. package/dist/parser/verbatim.d.ts.map +1 -0
  341. package/dist/parser/verbatim.js +121 -0
  342. package/dist/parser/verbatim.js.map +1 -0
  343. package/dist/parser/yaml-profile.d.ts +4 -0
  344. package/dist/parser/yaml-profile.d.ts.map +1 -0
  345. package/dist/parser/yaml-profile.js +73 -0
  346. package/dist/parser/yaml-profile.js.map +1 -0
  347. package/dist/registry/index.d.ts +2 -0
  348. package/dist/registry/index.d.ts.map +1 -0
  349. package/dist/registry/index.js +2 -0
  350. package/dist/registry/index.js.map +1 -0
  351. package/dist/registry/loader.d.ts +4 -0
  352. package/dist/registry/loader.d.ts.map +1 -0
  353. package/dist/registry/loader.js +147 -0
  354. package/dist/registry/loader.js.map +1 -0
  355. package/dist/registry/types.d.ts +2 -0
  356. package/dist/registry/types.d.ts.map +1 -0
  357. package/dist/registry/types.js +5 -0
  358. package/dist/registry/types.js.map +1 -0
  359. package/dist/scanner.d.ts +57 -0
  360. package/dist/scanner.d.ts.map +1 -0
  361. package/dist/scanner.js +223 -0
  362. package/dist/scanner.js.map +1 -0
  363. package/dist/schema/index.d.ts +3 -0
  364. package/dist/schema/index.d.ts.map +1 -0
  365. package/dist/schema/index.js +3 -0
  366. package/dist/schema/index.js.map +1 -0
  367. package/dist/schema/loader.d.ts +4 -0
  368. package/dist/schema/loader.d.ts.map +1 -0
  369. package/dist/schema/loader.js +303 -0
  370. package/dist/schema/loader.js.map +1 -0
  371. package/dist/schema/precision.d.ts +6 -0
  372. package/dist/schema/precision.d.ts.map +1 -0
  373. package/dist/schema/precision.js +59 -0
  374. package/dist/schema/precision.js.map +1 -0
  375. package/dist/schema/validator.d.ts +21 -0
  376. package/dist/schema/validator.d.ts.map +1 -0
  377. package/dist/schema/validator.js +200 -0
  378. package/dist/schema/validator.js.map +1 -0
  379. package/dist/schema-md.d.ts +8 -0
  380. package/dist/schema-md.d.ts.map +1 -0
  381. package/dist/schema-md.js +98 -0
  382. package/dist/schema-md.js.map +1 -0
  383. package/dist/skill-files.d.ts +3 -0
  384. package/dist/skill-files.d.ts.map +1 -0
  385. package/dist/skill-files.js +362 -0
  386. package/dist/skill-files.js.map +1 -0
  387. package/dist/skills-scaffold.d.ts +10 -0
  388. package/dist/skills-scaffold.d.ts.map +1 -0
  389. package/dist/skills-scaffold.js +52 -0
  390. package/dist/skills-scaffold.js.map +1 -0
  391. package/dist/types.d.ts +309 -0
  392. package/dist/types.d.ts.map +1 -0
  393. package/dist/types.js +111 -0
  394. package/dist/types.js.map +1 -0
  395. package/dist/writer/index.d.ts +7 -0
  396. package/dist/writer/index.d.ts.map +1 -0
  397. package/dist/writer/index.js +32 -0
  398. package/dist/writer/index.js.map +1 -0
  399. package/dist/writer/serializer.d.ts +4 -0
  400. package/dist/writer/serializer.d.ts.map +1 -0
  401. package/dist/writer/serializer.js +103 -0
  402. package/dist/writer/serializer.js.map +1 -0
  403. package/dist/writer/template.d.ts +3 -0
  404. package/dist/writer/template.d.ts.map +1 -0
  405. package/dist/writer/template.js +27 -0
  406. package/dist/writer/template.js.map +1 -0
  407. package/package.json +59 -7
@@ -0,0 +1,6 @@
1
+ export type Precision = 'year' | 'month' | 'day' | 'hour' | 'minute' | 'second' | 'millisecond';
2
+ export declare function isPrecision(v: unknown): v is Precision;
3
+ export declare function detectPrecision(iso: string): Precision | null;
4
+ export declare function comparePrecision(a: Precision, b: Precision): -1 | 0 | 1;
5
+ export declare function isCoarserThan(actual: Precision, declared: Precision): boolean;
6
+ //# sourceMappingURL=precision.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"precision.d.ts","sourceRoot":"","sources":["../../src/schema/precision.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,OAAO,GACP,KAAK,GACL,MAAM,GACN,QAAQ,GACR,QAAQ,GACR,aAAa,CAAC;AAsBlB,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,SAAS,CAEtD;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAa7D;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAMvE;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,GAAG,OAAO,CAE7E"}
@@ -0,0 +1,59 @@
1
+ // ============================================================================
2
+ // Datetime precision detection
3
+ // Honors the LITERAL string's precision, not the parsed Date object.
4
+ // "2026-04-16T00:00:00Z" is second-precision (because seconds are written),
5
+ // not day-precision-padded-to-midnight.
6
+ // ============================================================================
7
+ const PRECISION_RANK = {
8
+ year: 0,
9
+ month: 1,
10
+ day: 2,
11
+ hour: 3,
12
+ minute: 4,
13
+ second: 5,
14
+ millisecond: 6,
15
+ };
16
+ const VALID_PRECISIONS = [
17
+ 'year',
18
+ 'month',
19
+ 'day',
20
+ 'hour',
21
+ 'minute',
22
+ 'second',
23
+ 'millisecond',
24
+ ];
25
+ export function isPrecision(v) {
26
+ return typeof v === 'string' && VALID_PRECISIONS.includes(v);
27
+ }
28
+ export function detectPrecision(iso) {
29
+ // Timezone suffix (Z, +HH:MM, -HH:MM) does not change precision classification.
30
+ const stripped = iso.replace(/(Z|[+-]\d{2}:\d{2})$/, '');
31
+ if (/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d+$/.test(stripped))
32
+ return 'millisecond';
33
+ if (/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$/.test(stripped))
34
+ return 'second';
35
+ if (/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}$/.test(stripped))
36
+ return 'minute';
37
+ if (/^\d{4}-\d{2}-\d{2}T\d{2}$/.test(stripped))
38
+ return 'hour';
39
+ if (/^\d{4}-\d{2}-\d{2}$/.test(stripped))
40
+ return 'day';
41
+ if (/^\d{4}-\d{2}$/.test(stripped))
42
+ return 'month';
43
+ if (/^\d{4}$/.test(stripped))
44
+ return 'year';
45
+ return null;
46
+ }
47
+ export function comparePrecision(a, b) {
48
+ const ra = PRECISION_RANK[a];
49
+ const rb = PRECISION_RANK[b];
50
+ if (ra < rb)
51
+ return -1;
52
+ if (ra > rb)
53
+ return 1;
54
+ return 0;
55
+ }
56
+ export function isCoarserThan(actual, declared) {
57
+ return comparePrecision(actual, declared) < 0;
58
+ }
59
+ //# sourceMappingURL=precision.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"precision.js","sourceRoot":"","sources":["../../src/schema/precision.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,+BAA+B;AAC/B,qEAAqE;AACrE,4EAA4E;AAC5E,wCAAwC;AACxC,+EAA+E;AAW/E,MAAM,cAAc,GAA8B;IAChD,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;IACR,GAAG,EAAE,CAAC;IACN,IAAI,EAAE,CAAC;IACP,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,CAAC;IACT,WAAW,EAAE,CAAC;CACf,CAAC;AAEF,MAAM,gBAAgB,GAAyB;IAC7C,MAAM;IACN,OAAO;IACP,KAAK;IACL,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,aAAa;CACL,CAAC;AAEX,MAAM,UAAU,WAAW,CAAC,CAAU;IACpC,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAK,gBAAsC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACtF,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,gFAAgF;IAChF,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAC;IAEzD,IAAI,4CAA4C,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,aAAa,CAAC;IACtF,IAAI,uCAAuC,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC5E,IAAI,iCAAiC,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IACtE,IAAI,2BAA2B,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,MAAM,CAAC;IAC9D,IAAI,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IACvD,IAAI,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,OAAO,CAAC;IACnD,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,MAAM,CAAC;IAE5C,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,CAAY,EAAE,CAAY;IACzD,MAAM,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;IAC7B,MAAM,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;IAC7B,IAAI,EAAE,GAAG,EAAE;QAAE,OAAO,CAAC,CAAC,CAAC;IACvB,IAAI,EAAE,GAAG,EAAE;QAAE,OAAO,CAAC,CAAC;IACtB,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAiB,EAAE,QAAmB;IAClE,OAAO,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;AAChD,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type { SchemaDefinition, Registry, ValidationResult, FilePath } from '../types.js';
2
+ /**
3
+ * Validator call mode. Determines whether precision enforcement fires.
4
+ *
5
+ * - `write`: create / update / bulk — precision enforced per schema contract.
6
+ * - `read`: read path validation — precision NEVER enforced. Historical
7
+ * records stay valid regardless of current schema declarations.
8
+ * - `index`: reindex / index-on-load — precision NEVER enforced. Same rule.
9
+ * - `audit`: explicit audit via `maad_validate` — precision drift can be
10
+ * reported as informational by passing through via
11
+ * `validateFrontmatter`'s structural errors path, but never counted as
12
+ * invalid. Kept here as a distinct mode so callers signal intent.
13
+ */
14
+ export type ValidationMode = 'write' | 'read' | 'index' | 'audit';
15
+ export interface ValidationOptions {
16
+ mode: ValidationMode;
17
+ /** Update-path hint: precision enforcement skips fields NOT in this set. */
18
+ changedFields?: Set<string>;
19
+ }
20
+ export declare function validateFrontmatter(frontmatter: Record<string, unknown>, schema: SchemaDefinition, registry: Registry, filePath?: FilePath | undefined, options?: ValidationOptions): ValidationResult;
21
+ //# sourceMappingURL=validator.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,200 @@
1
+ // ============================================================================
2
+ // Schema Validator
3
+ // Validates a document's frontmatter against its bound schema.
4
+ // ============================================================================
5
+ import { detectPrecision, isCoarserThan } from './precision.js';
6
+ export function validateFrontmatter(frontmatter, schema, registry, filePath, options) {
7
+ const errors = [];
8
+ const warnings = [];
9
+ const loc = filePath ? { file: filePath, line: 1, col: 1 } : null;
10
+ // Safe default: callers that haven't been updated to the 0.6.7 mode
11
+ // parameter land in 'read' mode, which never fires precision enforcement.
12
+ // Every write-path caller must explicitly opt in to mode: 'write'.
13
+ const mode = options?.mode ?? 'read';
14
+ const changedFields = options?.changedFields;
15
+ // Check required fields
16
+ for (const req of schema.required) {
17
+ if (req === 'doc_id') {
18
+ if (frontmatter['doc_id'] === undefined || frontmatter['doc_id'] === null) {
19
+ errors.push({ field: 'doc_id', message: 'Required field missing', location: loc });
20
+ }
21
+ continue;
22
+ }
23
+ if (req === 'doc_type' || req === 'schema')
24
+ continue; // validated elsewhere
25
+ const value = frontmatter[req];
26
+ if (value === undefined || value === null) {
27
+ const fieldDef = schema.fields.get(req);
28
+ if (fieldDef?.defaultValue !== undefined && fieldDef.defaultValue !== null) {
29
+ continue; // has default, skip
30
+ }
31
+ const hint = fieldDef ? describeFieldExpectation(fieldDef, registry) : '';
32
+ errors.push({ field: req, message: `Required field missing${hint}`, location: loc });
33
+ }
34
+ }
35
+ // Validate each field that has a definition
36
+ for (const [fieldName, fieldDef] of schema.fields) {
37
+ const value = frontmatter[fieldName];
38
+ if (value === undefined || value === null)
39
+ continue; // missing handled by required check
40
+ const fieldErrors = validateField(fieldName, value, fieldDef, registry);
41
+ errors.push(...fieldErrors);
42
+ // Precision enforcement — write-mode only. Never on read / index / audit.
43
+ // Skip unchanged fields on update path (changedFields filter). Skip when
44
+ // structural validation already failed — no point reporting precision on
45
+ // a value the validator will reject anyway.
46
+ if (mode === 'write' &&
47
+ fieldErrors.length === 0 &&
48
+ fieldDef.type === 'date' &&
49
+ fieldDef.storePrecision !== null &&
50
+ (changedFields === undefined || changedFields.has(fieldName))) {
51
+ const precEntry = checkPrecision(fieldName, value, fieldDef, loc);
52
+ if (precEntry?.kind === 'error')
53
+ errors.push(precEntry.entry);
54
+ else if (precEntry?.kind === 'warn')
55
+ warnings.push(precEntry.entry);
56
+ }
57
+ }
58
+ return {
59
+ valid: errors.length === 0,
60
+ errors,
61
+ warnings,
62
+ };
63
+ }
64
+ function checkPrecision(fieldName, value, fieldDef, loc) {
65
+ const declared = fieldDef.storePrecision;
66
+ if (declared === null)
67
+ return null;
68
+ const actual = value instanceof Date
69
+ ? 'millisecond'
70
+ : typeof value === 'string'
71
+ ? detectPrecision(value)
72
+ : null;
73
+ if (actual === null)
74
+ return null; // malformed — structural validator handles
75
+ if (!isCoarserThan(actual, declared))
76
+ return null; // at or finer than declared
77
+ const message = `Value "${value instanceof Date ? value.toISOString() : String(value)}" ` +
78
+ `is ${actual}-precision but schema declares store_precision=${declared}`;
79
+ if (fieldDef.onCoarser === 'error') {
80
+ return {
81
+ kind: 'error',
82
+ entry: { field: fieldName, message, location: loc },
83
+ };
84
+ }
85
+ // Default to warn (also covers explicit warn + the case where onCoarser is
86
+ // null while storePrecision is set, which the loader normalizes to 'warn').
87
+ return {
88
+ kind: 'warn',
89
+ entry: {
90
+ field: fieldName,
91
+ message,
92
+ code: 'PRECISION_COARSER_THAN_DECLARED',
93
+ location: loc,
94
+ },
95
+ };
96
+ }
97
+ function validateField(name, value, def, registry) {
98
+ const errors = [];
99
+ switch (def.type) {
100
+ case 'string':
101
+ if (typeof value !== 'string') {
102
+ errors.push({ field: name, message: `Expected string, got ${typeof value}`, location: null });
103
+ }
104
+ break;
105
+ case 'number':
106
+ if (typeof value !== 'number' || !isFinite(value)) {
107
+ errors.push({ field: name, message: `Expected finite number, got ${String(value)}`, location: null });
108
+ }
109
+ break;
110
+ case 'boolean':
111
+ if (typeof value !== 'boolean') {
112
+ errors.push({ field: name, message: `Expected boolean, got ${typeof value}`, location: null });
113
+ }
114
+ break;
115
+ case 'date':
116
+ if (typeof value !== 'string') {
117
+ // gray-matter may parse dates as Date objects
118
+ if (value instanceof Date)
119
+ break; // allow Date objects
120
+ errors.push({ field: name, message: `Expected date string, got ${typeof value}`, location: null });
121
+ }
122
+ else if (def.format === 'YYYY-MM-DD') {
123
+ if (!/^\d{4}-\d{2}-\d{2}/.test(value)) {
124
+ errors.push({ field: name, message: `Date "${value}" does not match format ${def.format}`, location: null });
125
+ }
126
+ }
127
+ break;
128
+ case 'enum':
129
+ if (typeof value !== 'string') {
130
+ errors.push({ field: name, message: `Expected string for enum, got ${typeof value}`, location: null });
131
+ }
132
+ else if (def.values !== null && !def.values.includes(value)) {
133
+ errors.push({ field: name, message: `Value "${value}" not in enum [${def.values.join(', ')}]`, location: null });
134
+ }
135
+ break;
136
+ case 'ref':
137
+ if (typeof value !== 'string') {
138
+ errors.push({ field: name, message: `Expected ref to ${def.target ? def.target : 'any type'}, got ${typeof value}`, location: null });
139
+ }
140
+ else if (def.target !== null) {
141
+ const targetType = registry.types.get(def.target);
142
+ if (targetType && !value.startsWith(targetType.idPrefix + '-')) {
143
+ errors.push({ field: name, message: `Ref "${value}" must start with "${targetType.idPrefix}-" (references ${def.target})`, location: null });
144
+ }
145
+ }
146
+ break;
147
+ case 'list':
148
+ if (!Array.isArray(value)) {
149
+ errors.push({ field: name, message: `Expected array of ${def.itemType ?? 'values'}, got ${typeof value}`, location: null });
150
+ }
151
+ else if (def.itemType === 'ref' && def.target !== null) {
152
+ // Validate each item in a list-of-refs
153
+ const targetType = registry.types.get(def.target);
154
+ if (targetType) {
155
+ for (let i = 0; i < value.length; i++) {
156
+ const item = value[i];
157
+ if (typeof item !== 'string') {
158
+ errors.push({ field: `${name}[${i}]`, message: `Expected ref to ${def.target}, got ${typeof item}`, location: null });
159
+ }
160
+ else if (!item.startsWith(targetType.idPrefix + '-')) {
161
+ errors.push({ field: `${name}[${i}]`, message: `Ref "${item}" must start with "${targetType.idPrefix}-" (references ${def.target})`, location: null });
162
+ }
163
+ }
164
+ }
165
+ }
166
+ break;
167
+ case 'amount':
168
+ if (typeof value !== 'string') {
169
+ errors.push({ field: name, message: `Expected amount string (e.g. "100.00 USD"), got ${typeof value}`, location: null });
170
+ }
171
+ else if (!/^\d+(\.\d+)?\s+[A-Z]{3}$/.test(value)) {
172
+ errors.push({ field: name, message: `Amount "${value}" does not match format "<number> <CURRENCY>"`, location: null });
173
+ }
174
+ break;
175
+ }
176
+ return errors;
177
+ }
178
+ function describeFieldExpectation(def, registry) {
179
+ switch (def.type) {
180
+ case 'ref': {
181
+ if (!def.target)
182
+ return ' — expected a ref';
183
+ const targetType = registry.types.get(def.target);
184
+ return targetType
185
+ ? ` — expected ref to ${def.target} (prefix "${targetType.idPrefix}-")`
186
+ : ` — expected ref to ${def.target}`;
187
+ }
188
+ case 'enum':
189
+ return def.values ? ` — must be one of: ${def.values.join(', ')}` : ' — expected enum value';
190
+ case 'date':
191
+ return def.format ? ` — expected date (${def.format})` : ' — expected date string';
192
+ case 'amount':
193
+ return ' — expected amount (e.g. "100.00 USD")';
194
+ case 'list':
195
+ return ` — expected array of ${def.itemType ?? 'values'}`;
196
+ default:
197
+ return ` — expected ${def.type}`;
198
+ }
199
+ }
200
+ //# sourceMappingURL=validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/schema/validator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { Registry, SchemaStore, BackendStats } from './types.js';
2
+ export interface SchemaMdContext {
3
+ registry: Registry;
4
+ schemaStore: SchemaStore;
5
+ stats: BackendStats | null;
6
+ }
7
+ export declare function generateSchemaMd(ctx: SchemaMdContext): string;
8
+ //# sourceMappingURL=schema-md.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-md.d.ts","sourceRoot":"","sources":["../src/schema-md.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAmB,YAAY,EAAE,MAAM,YAAY,CAAC;AAEvF,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,QAAQ,CAAC;IACnB,WAAW,EAAE,WAAW,CAAC;IACzB,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;CAC5B;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAY7D"}
@@ -0,0 +1,98 @@
1
+ // ============================================================================
2
+ // SCHEMA.md Generator
3
+ // Generates the project data index file for LLM consumption.
4
+ // Updated on reindex to reflect current registry, schemas, and doc counts.
5
+ // This is the "what's in this project" file — types, fields, counts, subtypes.
6
+ // ============================================================================
7
+ export function generateSchemaMd(ctx) {
8
+ const sections = [];
9
+ sections.push(generateHeader(ctx));
10
+ sections.push(generateTypeSummary(ctx));
11
+ sections.push(generateTypeDetails(ctx));
12
+ if (Object.keys(ctx.registry.extraction.subtypes).length > 0) {
13
+ sections.push(generateCustomSubtypes(ctx));
14
+ }
15
+ return sections.join('\n\n') + '\n';
16
+ }
17
+ function generateHeader(ctx) {
18
+ const totalDocs = ctx.stats?.totalDocuments ?? 0;
19
+ const typeCount = ctx.registry.types.size;
20
+ const typeList = [...ctx.registry.types.values()].map(t => `\`${t.name}\``).join(', ');
21
+ return `# SCHEMA.md — Project Data Index
22
+
23
+ > Auto-generated by the MAAD engine on \`reindex\`. Do not edit.
24
+
25
+ **${totalDocs} documents** across **${typeCount} types**: ${typeList}`;
26
+ }
27
+ function generateTypeSummary(ctx) {
28
+ const lines = ['## Overview\n'];
29
+ lines.push('| Type | Docs | Prefix | Required Fields |');
30
+ lines.push('|------|------|--------|----------------|');
31
+ for (const [, regType] of ctx.registry.types) {
32
+ const count = ctx.stats?.documentCountByType[regType.name] ?? 0;
33
+ const schema = ctx.schemaStore.getSchemaForType(regType.name);
34
+ const required = schema
35
+ ? schema.required.filter(r => r !== 'doc_id').join(', ')
36
+ : '—';
37
+ lines.push(`| \`${regType.name}\` | ${count} | \`${regType.idPrefix}\` | ${required} |`);
38
+ }
39
+ return lines.join('\n');
40
+ }
41
+ function generateTypeDetails(ctx) {
42
+ const lines = ['## Types\n'];
43
+ for (const [, regType] of ctx.registry.types) {
44
+ const count = ctx.stats?.documentCountByType[regType.name] ?? 0;
45
+ const schema = ctx.schemaStore.getSchemaForType(regType.name);
46
+ lines.push(`### \`${regType.name}\` — ${count} docs`);
47
+ lines.push(`prefix: \`${regType.idPrefix}\` | schema: \`${regType.schemaRef}\` | path: \`${regType.path}\``);
48
+ if (schema) {
49
+ if (schema.fields.size > 0) {
50
+ lines.push('');
51
+ lines.push('| Field | Type | Indexed | Details |');
52
+ lines.push('|-------|------|---------|---------|');
53
+ for (const [name, field] of schema.fields) {
54
+ const required = schema.required.includes(name) ? '**yes**' : 'no';
55
+ lines.push(`| \`${name}\` | ${formatType(field)} | ${field.index ? 'yes' : 'no'} | ${formatDetails(field, required)} |`);
56
+ }
57
+ }
58
+ }
59
+ lines.push('');
60
+ }
61
+ return lines.join('\n');
62
+ }
63
+ function generateCustomSubtypes(ctx) {
64
+ const lines = ['## Custom Extraction Subtypes\n'];
65
+ lines.push('These subtypes are project-specific and map to engine primitives.\n');
66
+ lines.push('| Subtype | Primitive | Use in annotations |');
67
+ lines.push('|---------|-----------|-------------------|');
68
+ for (const [subtype, primitive] of Object.entries(ctx.registry.extraction.subtypes)) {
69
+ lines.push(`| \`${subtype}\` | \`${primitive}\` | \`[[${subtype}:value|label]]\` |`);
70
+ }
71
+ return lines.join('\n');
72
+ }
73
+ function formatType(field) {
74
+ let t = field.type;
75
+ if (field.type === 'ref' && field.target)
76
+ t = `ref -> \`${field.target}\``;
77
+ if (field.type === 'list' && field.itemType) {
78
+ t = `list of ${field.itemType}`;
79
+ if (field.target)
80
+ t += ` -> \`${field.target}\``;
81
+ }
82
+ if (field.type === 'enum')
83
+ t = 'enum';
84
+ return t;
85
+ }
86
+ function formatDetails(field, required) {
87
+ const parts = [];
88
+ if (required === '**yes**')
89
+ parts.push('required');
90
+ if (field.role)
91
+ parts.push(`role: ${field.role}`);
92
+ if (field.type === 'enum' && field.values)
93
+ parts.push(field.values.join(', '));
94
+ if (field.format)
95
+ parts.push(field.format);
96
+ return parts.join(' | ') || '—';
97
+ }
98
+ //# sourceMappingURL=schema-md.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-md.js","sourceRoot":"","sources":["../src/schema-md.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare function generateSchemaGuide(): string;
2
+ export declare function generateImportGuide(): string;
3
+ //# sourceMappingURL=skill-files.d.ts.map
@@ -0,0 +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"}