@happyvertical/smrt-core 0.30.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 (631) hide show
  1. package/AGENTS.md +124 -0
  2. package/CLAUDE.md +1 -0
  3. package/LICENSE +7 -0
  4. package/README.md +265 -0
  5. package/bin/smrt-prebuild.js +26 -0
  6. package/dist/__tests__/fixtures/advisor-test-classes.d.ts +28 -0
  7. package/dist/__tests__/fixtures/advisor-test-classes.d.ts.map +1 -0
  8. package/dist/__tests__/fixtures/collection-coverage-fixtures.d.ts +12 -0
  9. package/dist/__tests__/fixtures/collection-coverage-fixtures.d.ts.map +1 -0
  10. package/dist/__tests__/fixtures/inheritance-resolver-fixtures.d.ts +28 -0
  11. package/dist/__tests__/fixtures/inheritance-resolver-fixtures.d.ts.map +1 -0
  12. package/dist/__tests__/fixtures/inheritance-test-classes.d.ts +43 -0
  13. package/dist/__tests__/fixtures/inheritance-test-classes.d.ts.map +1 -0
  14. package/dist/__tests__/fixtures/mcp-integration-test-classes.d.ts +18 -0
  15. package/dist/__tests__/fixtures/mcp-integration-test-classes.d.ts.map +1 -0
  16. package/dist/__tests__/fixtures/object-ai-memory-fixtures.d.ts +15 -0
  17. package/dist/__tests__/fixtures/object-ai-memory-fixtures.d.ts.map +1 -0
  18. package/dist/__tests__/fixtures/object-spec-test-classes.d.ts +13 -0
  19. package/dist/__tests__/fixtures/object-spec-test-classes.d.ts.map +1 -0
  20. package/dist/__tests__/fixtures/registry-test-classes.d.ts +23 -0
  21. package/dist/__tests__/fixtures/registry-test-classes.d.ts.map +1 -0
  22. package/dist/adapters/ai-usage.d.ts +23 -0
  23. package/dist/adapters/ai-usage.d.ts.map +1 -0
  24. package/dist/adapters/ai-usage.js +105 -0
  25. package/dist/adapters/ai-usage.js.map +1 -0
  26. package/dist/adapters/cost-rates.d.ts +20 -0
  27. package/dist/adapters/cost-rates.d.ts.map +1 -0
  28. package/dist/adapters/cost-rates.js +40 -0
  29. package/dist/adapters/cost-rates.js.map +1 -0
  30. package/dist/adapters/index.d.ts +19 -0
  31. package/dist/adapters/index.d.ts.map +1 -0
  32. package/dist/adapters/metrics.d.ts +111 -0
  33. package/dist/adapters/metrics.d.ts.map +1 -0
  34. package/dist/adapters/metrics.js +169 -0
  35. package/dist/adapters/metrics.js.map +1 -0
  36. package/dist/adapters/pubsub.d.ts +124 -0
  37. package/dist/adapters/pubsub.d.ts.map +1 -0
  38. package/dist/adapters/pubsub.js +121 -0
  39. package/dist/adapters/pubsub.js.map +1 -0
  40. package/dist/browser.d.ts +32 -0
  41. package/dist/browser.d.ts.map +1 -0
  42. package/dist/browser.js +68 -0
  43. package/dist/browser.js.map +1 -0
  44. package/dist/child-accessors.d.ts +27 -0
  45. package/dist/child-accessors.d.ts.map +1 -0
  46. package/dist/child-accessors.js +35 -0
  47. package/dist/child-accessors.js.map +1 -0
  48. package/dist/class.d.ts +313 -0
  49. package/dist/class.d.ts.map +1 -0
  50. package/dist/class.js +896 -0
  51. package/dist/class.js.map +1 -0
  52. package/dist/collection-cache.d.ts +110 -0
  53. package/dist/collection-cache.d.ts.map +1 -0
  54. package/dist/collection-cache.js +187 -0
  55. package/dist/collection-cache.js.map +1 -0
  56. package/dist/collection.d.ts +894 -0
  57. package/dist/collection.d.ts.map +1 -0
  58. package/dist/collection.js +1987 -0
  59. package/dist/collection.js.map +1 -0
  60. package/dist/config/global-config.d.ts +3 -0
  61. package/dist/config/global-config.d.ts.map +1 -0
  62. package/dist/config/global-config.js +19 -0
  63. package/dist/config/global-config.js.map +1 -0
  64. package/dist/config.d.ts +145 -0
  65. package/dist/config.d.ts.map +1 -0
  66. package/dist/config.js +57 -0
  67. package/dist/config.js.map +1 -0
  68. package/dist/consumer-plugin/index.d.ts +22 -0
  69. package/dist/consumer-plugin/index.d.ts.map +1 -0
  70. package/dist/consumer-plugin/index.js +452 -0
  71. package/dist/consumer-plugin/index.js.map +1 -0
  72. package/dist/consumer-plugin.d.ts +8 -0
  73. package/dist/consumer-plugin.d.ts.map +1 -0
  74. package/dist/consumer-plugin.js +5 -0
  75. package/dist/consumer-plugin.js.map +1 -0
  76. package/dist/database.d.ts +95 -0
  77. package/dist/database.d.ts.map +1 -0
  78. package/dist/database.js +32 -0
  79. package/dist/database.js.map +1 -0
  80. package/dist/decorators/compatibility.d.ts +14 -0
  81. package/dist/decorators/compatibility.d.ts.map +1 -0
  82. package/dist/decorators/compatibility.js +111 -0
  83. package/dist/decorators/compatibility.js.map +1 -0
  84. package/dist/decorators/index.d.ts +381 -0
  85. package/dist/decorators/index.d.ts.map +1 -0
  86. package/dist/decorators/index.js +104 -0
  87. package/dist/decorators/index.js.map +1 -0
  88. package/dist/dispatch/bus.d.ts +306 -0
  89. package/dist/dispatch/bus.d.ts.map +1 -0
  90. package/dist/dispatch/bus.js +583 -0
  91. package/dist/dispatch/bus.js.map +1 -0
  92. package/dist/dispatch/collections/DispatchSubscriptions.d.ts +79 -0
  93. package/dist/dispatch/collections/DispatchSubscriptions.d.ts.map +1 -0
  94. package/dist/dispatch/collections/DispatchSubscriptions.js +243 -0
  95. package/dist/dispatch/collections/DispatchSubscriptions.js.map +1 -0
  96. package/dist/dispatch/collections/Dispatches.d.ts +98 -0
  97. package/dist/dispatch/collections/Dispatches.d.ts.map +1 -0
  98. package/dist/dispatch/collections/Dispatches.js +358 -0
  99. package/dist/dispatch/collections/Dispatches.js.map +1 -0
  100. package/dist/dispatch/index.d.ts +47 -0
  101. package/dist/dispatch/index.d.ts.map +1 -0
  102. package/dist/dispatch/models/Dispatch.d.ts +101 -0
  103. package/dist/dispatch/models/Dispatch.d.ts.map +1 -0
  104. package/dist/dispatch/models/Dispatch.js +162 -0
  105. package/dist/dispatch/models/Dispatch.js.map +1 -0
  106. package/dist/dispatch/models/DispatchSubscription.d.ts +83 -0
  107. package/dist/dispatch/models/DispatchSubscription.d.ts.map +1 -0
  108. package/dist/dispatch/models/DispatchSubscription.js +112 -0
  109. package/dist/dispatch/models/DispatchSubscription.js.map +1 -0
  110. package/dist/dispatch/tenant-resolver.d.ts +98 -0
  111. package/dist/dispatch/tenant-resolver.d.ts.map +1 -0
  112. package/dist/dispatch/tenant-resolver.js +32 -0
  113. package/dist/dispatch/tenant-resolver.js.map +1 -0
  114. package/dist/dispatch/types.d.ts +149 -0
  115. package/dist/dispatch/types.d.ts.map +1 -0
  116. package/dist/embeddings/hash.d.ts +33 -0
  117. package/dist/embeddings/hash.d.ts.map +1 -0
  118. package/dist/embeddings/hash.js +37 -0
  119. package/dist/embeddings/hash.js.map +1 -0
  120. package/dist/embeddings/index.d.ts +36 -0
  121. package/dist/embeddings/index.d.ts.map +1 -0
  122. package/dist/embeddings/provider.d.ts +75 -0
  123. package/dist/embeddings/provider.d.ts.map +1 -0
  124. package/dist/embeddings/provider.js +170 -0
  125. package/dist/embeddings/provider.js.map +1 -0
  126. package/dist/embeddings/similarity.d.ts +47 -0
  127. package/dist/embeddings/similarity.d.ts.map +1 -0
  128. package/dist/embeddings/similarity.js +64 -0
  129. package/dist/embeddings/similarity.js.map +1 -0
  130. package/dist/embeddings/storage.d.ts +125 -0
  131. package/dist/embeddings/storage.d.ts.map +1 -0
  132. package/dist/embeddings/storage.js +283 -0
  133. package/dist/embeddings/storage.js.map +1 -0
  134. package/dist/embeddings/types.d.ts +250 -0
  135. package/dist/embeddings/types.d.ts.map +1 -0
  136. package/dist/errors.d.ts +363 -0
  137. package/dist/errors.d.ts.map +1 -0
  138. package/dist/errors.js +669 -0
  139. package/dist/errors.js.map +1 -0
  140. package/dist/generators/cli.d.ts +162 -0
  141. package/dist/generators/cli.d.ts.map +1 -0
  142. package/dist/generators/cli.js +462 -0
  143. package/dist/generators/cli.js.map +1 -0
  144. package/dist/generators/index.d.ts +13 -0
  145. package/dist/generators/index.d.ts.map +1 -0
  146. package/dist/generators/mcp-runtime-template.d.ts +60 -0
  147. package/dist/generators/mcp-runtime-template.d.ts.map +1 -0
  148. package/dist/generators/mcp-runtime-template.js +509 -0
  149. package/dist/generators/mcp-runtime-template.js.map +1 -0
  150. package/dist/generators/mcp.d.ts +231 -0
  151. package/dist/generators/mcp.d.ts.map +1 -0
  152. package/dist/generators/mcp.js +1220 -0
  153. package/dist/generators/mcp.js.map +1 -0
  154. package/dist/generators/rest.d.ts +171 -0
  155. package/dist/generators/rest.d.ts.map +1 -0
  156. package/dist/generators/rest.js +591 -0
  157. package/dist/generators/rest.js.map +1 -0
  158. package/dist/generators/swagger.d.ts +21 -0
  159. package/dist/generators/swagger.d.ts.map +1 -0
  160. package/dist/generators/swagger.js +307 -0
  161. package/dist/generators/swagger.js.map +1 -0
  162. package/dist/generators/tenant-gate.d.ts +74 -0
  163. package/dist/generators/tenant-gate.d.ts.map +1 -0
  164. package/dist/generators/tenant-gate.js +15 -0
  165. package/dist/generators/tenant-gate.js.map +1 -0
  166. package/dist/generators.d.ts +8 -0
  167. package/dist/generators.d.ts.map +1 -0
  168. package/dist/generators.js +19 -0
  169. package/dist/generators.js.map +1 -0
  170. package/dist/hierarchical.d.ts +103 -0
  171. package/dist/hierarchical.d.ts.map +1 -0
  172. package/dist/hierarchical.js +184 -0
  173. package/dist/hierarchical.js.map +1 -0
  174. package/dist/index.d.ts +57 -0
  175. package/dist/index.d.ts.map +1 -0
  176. package/dist/index.js +202 -0
  177. package/dist/index.js.map +1 -0
  178. package/dist/interceptors.d.ts +251 -0
  179. package/dist/interceptors.d.ts.map +1 -0
  180. package/dist/interceptors.js +259 -0
  181. package/dist/interceptors.js.map +1 -0
  182. package/dist/junction.d.ts +99 -0
  183. package/dist/junction.d.ts.map +1 -0
  184. package/dist/junction.js +136 -0
  185. package/dist/junction.js.map +1 -0
  186. package/dist/knowledge.d.ts +11 -0
  187. package/dist/knowledge.d.ts.map +1 -0
  188. package/dist/knowledge.js +310 -0
  189. package/dist/knowledge.js.map +1 -0
  190. package/dist/lazy-config.d.ts +160 -0
  191. package/dist/lazy-config.d.ts.map +1 -0
  192. package/dist/lazy-config.js +146 -0
  193. package/dist/lazy-config.js.map +1 -0
  194. package/dist/manifest/discover-base-classes.d.ts +78 -0
  195. package/dist/manifest/discover-base-classes.d.ts.map +1 -0
  196. package/dist/manifest/discover-base-classes.js +85 -0
  197. package/dist/manifest/discover-base-classes.js.map +1 -0
  198. package/dist/manifest/discover-smrt-packages.d.ts +48 -0
  199. package/dist/manifest/discover-smrt-packages.d.ts.map +1 -0
  200. package/dist/manifest/discover-smrt-packages.js +361 -0
  201. package/dist/manifest/discover-smrt-packages.js.map +1 -0
  202. package/dist/manifest/generator.d.ts +93 -0
  203. package/dist/manifest/generator.d.ts.map +1 -0
  204. package/dist/manifest/generator.js +380 -0
  205. package/dist/manifest/generator.js.map +1 -0
  206. package/dist/manifest/index.d.ts +16 -0
  207. package/dist/manifest/index.d.ts.map +1 -0
  208. package/dist/manifest/index.js +51 -0
  209. package/dist/manifest/index.js.map +1 -0
  210. package/dist/manifest/manager.d.ts +51 -0
  211. package/dist/manifest/manager.d.ts.map +1 -0
  212. package/dist/manifest/manager.js +89 -0
  213. package/dist/manifest/manager.js.map +1 -0
  214. package/dist/manifest/manifest-loader.d.ts +187 -0
  215. package/dist/manifest/manifest-loader.d.ts.map +1 -0
  216. package/dist/manifest/manifest-loader.js +847 -0
  217. package/dist/manifest/manifest-loader.js.map +1 -0
  218. package/dist/manifest/sources/composite.d.ts +22 -0
  219. package/dist/manifest/sources/composite.d.ts.map +1 -0
  220. package/dist/manifest/sources/composite.js +60 -0
  221. package/dist/manifest/sources/composite.js.map +1 -0
  222. package/dist/manifest/sources/embedded.d.ts +7 -0
  223. package/dist/manifest/sources/embedded.d.ts.map +1 -0
  224. package/dist/manifest/sources/embedded.js +30 -0
  225. package/dist/manifest/sources/embedded.js.map +1 -0
  226. package/dist/manifest/sources/explicit-paths.d.ts +17 -0
  227. package/dist/manifest/sources/explicit-paths.d.ts.map +1 -0
  228. package/dist/manifest/sources/explicit-paths.js +35 -0
  229. package/dist/manifest/sources/explicit-paths.js.map +1 -0
  230. package/dist/manifest/sources/fallback.d.ts +25 -0
  231. package/dist/manifest/sources/fallback.d.ts.map +1 -0
  232. package/dist/manifest/sources/fallback.js +63 -0
  233. package/dist/manifest/sources/fallback.js.map +1 -0
  234. package/dist/manifest/sources/index.d.ts +17 -0
  235. package/dist/manifest/sources/index.d.ts.map +1 -0
  236. package/dist/manifest/sources/local-test.d.ts +7 -0
  237. package/dist/manifest/sources/local-test.d.ts.map +1 -0
  238. package/dist/manifest/sources/local-test.js +21 -0
  239. package/dist/manifest/sources/local-test.js.map +1 -0
  240. package/dist/manifest/sources/static.d.ts +7 -0
  241. package/dist/manifest/sources/static.d.ts.map +1 -0
  242. package/dist/manifest/sources/static.js +19 -0
  243. package/dist/manifest/sources/static.js.map +1 -0
  244. package/dist/manifest/sources/test.d.ts +7 -0
  245. package/dist/manifest/sources/test.d.ts.map +1 -0
  246. package/dist/manifest/sources/test.js +21 -0
  247. package/dist/manifest/sources/test.js.map +1 -0
  248. package/dist/manifest/sources/types.d.ts +79 -0
  249. package/dist/manifest/sources/types.d.ts.map +1 -0
  250. package/dist/manifest/sources/types.js +61 -0
  251. package/dist/manifest/sources/types.js.map +1 -0
  252. package/dist/manifest/static-manifest.d.ts +4 -0
  253. package/dist/manifest/static-manifest.d.ts.map +1 -0
  254. package/dist/manifest/static-manifest.js +1535 -0
  255. package/dist/manifest/static-manifest.js.map +1 -0
  256. package/dist/manifest/store.d.ts +111 -0
  257. package/dist/manifest/store.d.ts.map +1 -0
  258. package/dist/manifest/store.js +431 -0
  259. package/dist/manifest/store.js.map +1 -0
  260. package/dist/manifest/test-manifest-loader.d.ts +3 -0
  261. package/dist/manifest/test-manifest-loader.d.ts.map +1 -0
  262. package/dist/manifest/test-manifest-stub.d.ts +4 -0
  263. package/dist/manifest/test-manifest-stub.d.ts.map +1 -0
  264. package/dist/manifest/test-manifest-stub.js +80013 -0
  265. package/dist/manifest/test-manifest-stub.js.map +1 -0
  266. package/dist/manifest.d.ts +8 -0
  267. package/dist/manifest.d.ts.map +1 -0
  268. package/dist/manifest.js +20 -0
  269. package/dist/manifest.js.map +1 -0
  270. package/dist/manifest.json +1489 -0
  271. package/dist/mcp-advisor/index.d.ts +499 -0
  272. package/dist/mcp-advisor/index.d.ts.map +1 -0
  273. package/dist/mcp-advisor/tools/add-ai-methods.d.ts +6 -0
  274. package/dist/mcp-advisor/tools/add-ai-methods.d.ts.map +1 -0
  275. package/dist/mcp-advisor/tools/configure-decorators.d.ts +6 -0
  276. package/dist/mcp-advisor/tools/configure-decorators.d.ts.map +1 -0
  277. package/dist/mcp-advisor/tools/generate-collection.d.ts +6 -0
  278. package/dist/mcp-advisor/tools/generate-collection.d.ts.map +1 -0
  279. package/dist/mcp-advisor/tools/generate-field-definitions.d.ts +6 -0
  280. package/dist/mcp-advisor/tools/generate-field-definitions.d.ts.map +1 -0
  281. package/dist/mcp-advisor/tools/generate-smrt-class.d.ts +6 -0
  282. package/dist/mcp-advisor/tools/generate-smrt-class.d.ts.map +1 -0
  283. package/dist/mcp-advisor/tools/get-object-config.d.ts +6 -0
  284. package/dist/mcp-advisor/tools/get-object-config.d.ts.map +1 -0
  285. package/dist/mcp-advisor/tools/get-object-schema.d.ts +10 -0
  286. package/dist/mcp-advisor/tools/get-object-schema.d.ts.map +1 -0
  287. package/dist/mcp-advisor/tools/list-registered-objects.d.ts +9 -0
  288. package/dist/mcp-advisor/tools/list-registered-objects.d.ts.map +1 -0
  289. package/dist/mcp-advisor/tools/preview-api-endpoints.d.ts +9 -0
  290. package/dist/mcp-advisor/tools/preview-api-endpoints.d.ts.map +1 -0
  291. package/dist/mcp-advisor/tools/preview-mcp-tools.d.ts +9 -0
  292. package/dist/mcp-advisor/tools/preview-mcp-tools.d.ts.map +1 -0
  293. package/dist/mcp-advisor/tools/validate-smrt-object.d.ts +6 -0
  294. package/dist/mcp-advisor/tools/validate-smrt-object.d.ts.map +1 -0
  295. package/dist/mcp-advisor/types.d.ts +209 -0
  296. package/dist/mcp-advisor/types.d.ts.map +1 -0
  297. package/dist/migrations/backfill-tracker.d.ts +84 -0
  298. package/dist/migrations/backfill-tracker.d.ts.map +1 -0
  299. package/dist/migrations/backfill-tracker.js +118 -0
  300. package/dist/migrations/backfill-tracker.js.map +1 -0
  301. package/dist/migrations/checksum.d.ts +43 -0
  302. package/dist/migrations/checksum.d.ts.map +1 -0
  303. package/dist/migrations/checksum.js +32 -0
  304. package/dist/migrations/checksum.js.map +1 -0
  305. package/dist/migrations/differ.d.ts +186 -0
  306. package/dist/migrations/differ.d.ts.map +1 -0
  307. package/dist/migrations/differ.js +601 -0
  308. package/dist/migrations/differ.js.map +1 -0
  309. package/dist/migrations/generator.d.ts +133 -0
  310. package/dist/migrations/generator.d.ts.map +1 -0
  311. package/dist/migrations/generator.js +328 -0
  312. package/dist/migrations/generator.js.map +1 -0
  313. package/dist/migrations/index.d.ts +20 -0
  314. package/dist/migrations/index.d.ts.map +1 -0
  315. package/dist/migrations/orchestrate.d.ts +148 -0
  316. package/dist/migrations/orchestrate.d.ts.map +1 -0
  317. package/dist/migrations/orchestrate.js +118 -0
  318. package/dist/migrations/orchestrate.js.map +1 -0
  319. package/dist/migrations/tracker.d.ts +134 -0
  320. package/dist/migrations/tracker.d.ts.map +1 -0
  321. package/dist/migrations/tracker.js +624 -0
  322. package/dist/migrations/tracker.js.map +1 -0
  323. package/dist/migrations/types.d.ts +221 -0
  324. package/dist/migrations/types.d.ts.map +1 -0
  325. package/dist/migrations.d.ts +7 -0
  326. package/dist/migrations.d.ts.map +1 -0
  327. package/dist/migrations.js +26 -0
  328. package/dist/migrations.js.map +1 -0
  329. package/dist/node_modules/.pnpm/balanced-match@4.0.4/node_modules/balanced-match/dist/esm/index.js +56 -0
  330. package/dist/node_modules/.pnpm/balanced-match@4.0.4/node_modules/balanced-match/dist/esm/index.js.map +1 -0
  331. package/dist/node_modules/.pnpm/brace-expansion@5.0.5/node_modules/brace-expansion/dist/esm/index.js +163 -0
  332. package/dist/node_modules/.pnpm/brace-expansion@5.0.5/node_modules/brace-expansion/dist/esm/index.js.map +1 -0
  333. package/dist/node_modules/.pnpm/minimatch@10.2.3/node_modules/minimatch/dist/esm/assert-valid-pattern.js +13 -0
  334. package/dist/node_modules/.pnpm/minimatch@10.2.3/node_modules/minimatch/dist/esm/assert-valid-pattern.js.map +1 -0
  335. package/dist/node_modules/.pnpm/minimatch@10.2.3/node_modules/minimatch/dist/esm/ast.js +654 -0
  336. package/dist/node_modules/.pnpm/minimatch@10.2.3/node_modules/minimatch/dist/esm/ast.js.map +1 -0
  337. package/dist/node_modules/.pnpm/minimatch@10.2.3/node_modules/minimatch/dist/esm/brace-expressions.js +111 -0
  338. package/dist/node_modules/.pnpm/minimatch@10.2.3/node_modules/minimatch/dist/esm/brace-expressions.js.map +1 -0
  339. package/dist/node_modules/.pnpm/minimatch@10.2.3/node_modules/minimatch/dist/esm/escape.js +10 -0
  340. package/dist/node_modules/.pnpm/minimatch@10.2.3/node_modules/minimatch/dist/esm/escape.js.map +1 -0
  341. package/dist/node_modules/.pnpm/minimatch@10.2.3/node_modules/minimatch/dist/esm/index.js +824 -0
  342. package/dist/node_modules/.pnpm/minimatch@10.2.3/node_modules/minimatch/dist/esm/index.js.map +1 -0
  343. package/dist/node_modules/.pnpm/minimatch@10.2.3/node_modules/minimatch/dist/esm/unescape.js +10 -0
  344. package/dist/node_modules/.pnpm/minimatch@10.2.3/node_modules/minimatch/dist/esm/unescape.js.map +1 -0
  345. package/dist/object.d.ts +1202 -0
  346. package/dist/object.d.ts.map +1 -0
  347. package/dist/object.js +2731 -0
  348. package/dist/object.js.map +1 -0
  349. package/dist/polymorphic-association.d.ts +69 -0
  350. package/dist/polymorphic-association.d.ts.map +1 -0
  351. package/dist/polymorphic-association.js +96 -0
  352. package/dist/polymorphic-association.js.map +1 -0
  353. package/dist/prebuild/cli.d.ts +7 -0
  354. package/dist/prebuild/cli.d.ts.map +1 -0
  355. package/dist/prebuild/cli.js +29 -0
  356. package/dist/prebuild/cli.js.map +1 -0
  357. package/dist/prebuild/index.d.ts +22 -0
  358. package/dist/prebuild/index.d.ts.map +1 -0
  359. package/dist/prebuild/index.js +239 -0
  360. package/dist/prebuild/index.js.map +1 -0
  361. package/dist/prebuild.d.ts +8 -0
  362. package/dist/prebuild.d.ts.map +1 -0
  363. package/dist/prebuild.js +6 -0
  364. package/dist/prebuild.js.map +1 -0
  365. package/dist/registry/cache-config.d.ts +13 -0
  366. package/dist/registry/cache-config.d.ts.map +1 -0
  367. package/dist/registry/cache-config.js +17 -0
  368. package/dist/registry/cache-config.js.map +1 -0
  369. package/dist/registry/class-registration.d.ts +31 -0
  370. package/dist/registry/class-registration.d.ts.map +1 -0
  371. package/dist/registry/class-registration.js +1074 -0
  372. package/dist/registry/class-registration.js.map +1 -0
  373. package/dist/registry/collection-resolution.d.ts +45 -0
  374. package/dist/registry/collection-resolution.d.ts.map +1 -0
  375. package/dist/registry/collection-resolution.js +121 -0
  376. package/dist/registry/collection-resolution.js.map +1 -0
  377. package/dist/registry/collision-policy.d.ts +179 -0
  378. package/dist/registry/collision-policy.d.ts.map +1 -0
  379. package/dist/registry/collision-policy.js +153 -0
  380. package/dist/registry/collision-policy.js.map +1 -0
  381. package/dist/registry/diagnostics.d.ts +58 -0
  382. package/dist/registry/diagnostics.d.ts.map +1 -0
  383. package/dist/registry/diagnostics.js +54 -0
  384. package/dist/registry/diagnostics.js.map +1 -0
  385. package/dist/registry/embedding-manager.d.ts +23 -0
  386. package/dist/registry/embedding-manager.d.ts.map +1 -0
  387. package/dist/registry/embedding-manager.js +62 -0
  388. package/dist/registry/embedding-manager.js.map +1 -0
  389. package/dist/registry/index.d.ts +13 -0
  390. package/dist/registry/index.d.ts.map +1 -0
  391. package/dist/registry/inheritance-resolver.d.ts +13 -0
  392. package/dist/registry/inheritance-resolver.d.ts.map +1 -0
  393. package/dist/registry/inheritance-resolver.js +244 -0
  394. package/dist/registry/inheritance-resolver.js.map +1 -0
  395. package/dist/registry/manifest-field-merge.d.ts +4 -0
  396. package/dist/registry/manifest-field-merge.d.ts.map +1 -0
  397. package/dist/registry/manifest-field-merge.js +82 -0
  398. package/dist/registry/manifest-field-merge.js.map +1 -0
  399. package/dist/registry/name-resolver.d.ts +102 -0
  400. package/dist/registry/name-resolver.d.ts.map +1 -0
  401. package/dist/registry/name-resolver.js +241 -0
  402. package/dist/registry/name-resolver.js.map +1 -0
  403. package/dist/registry/relationship-graph.d.ts +16 -0
  404. package/dist/registry/relationship-graph.d.ts.map +1 -0
  405. package/dist/registry/relationship-graph.js +79 -0
  406. package/dist/registry/relationship-graph.js.map +1 -0
  407. package/dist/registry/schema-builder.d.ts +113 -0
  408. package/dist/registry/schema-builder.d.ts.map +1 -0
  409. package/dist/registry/schema-builder.js +474 -0
  410. package/dist/registry/schema-builder.js.map +1 -0
  411. package/dist/registry/shared-state.d.ts +62 -0
  412. package/dist/registry/shared-state.d.ts.map +1 -0
  413. package/dist/registry/shared-state.js +135 -0
  414. package/dist/registry/shared-state.js.map +1 -0
  415. package/dist/registry/types.d.ts +667 -0
  416. package/dist/registry/types.d.ts.map +1 -0
  417. package/dist/registry/validator.d.ts +13 -0
  418. package/dist/registry/validator.d.ts.map +1 -0
  419. package/dist/registry/validator.js +138 -0
  420. package/dist/registry/validator.js.map +1 -0
  421. package/dist/registry.d.ts +1358 -0
  422. package/dist/registry.d.ts.map +1 -0
  423. package/dist/registry.js +2301 -0
  424. package/dist/registry.js.map +1 -0
  425. package/dist/runtime/client.d.ts +34 -0
  426. package/dist/runtime/client.d.ts.map +1 -0
  427. package/dist/runtime/client.js +104 -0
  428. package/dist/runtime/client.js.map +1 -0
  429. package/dist/runtime/index.d.ts +10 -0
  430. package/dist/runtime/index.d.ts.map +1 -0
  431. package/dist/runtime/mcp.d.ts +47 -0
  432. package/dist/runtime/mcp.d.ts.map +1 -0
  433. package/dist/runtime/mcp.js +72 -0
  434. package/dist/runtime/mcp.js.map +1 -0
  435. package/dist/runtime/server.d.ts +92 -0
  436. package/dist/runtime/server.d.ts.map +1 -0
  437. package/dist/runtime/server.js +390 -0
  438. package/dist/runtime/server.js.map +1 -0
  439. package/dist/runtime/types.d.ts +58 -0
  440. package/dist/runtime/types.d.ts.map +1 -0
  441. package/dist/runtime.d.ts +8 -0
  442. package/dist/runtime.d.ts.map +1 -0
  443. package/dist/runtime.js +10 -0
  444. package/dist/runtime.js.map +1 -0
  445. package/dist/scanner/import-scanner.d.ts +7 -0
  446. package/dist/scanner/import-scanner.d.ts.map +1 -0
  447. package/dist/scanner/index.d.ts +12 -0
  448. package/dist/scanner/index.d.ts.map +1 -0
  449. package/dist/scanner/manifest-generator.d.ts +304 -0
  450. package/dist/scanner/manifest-generator.d.ts.map +1 -0
  451. package/dist/scanner/manifest-generator.js +1707 -0
  452. package/dist/scanner/manifest-generator.js.map +1 -0
  453. package/dist/scanner/test-file-patterns.d.ts +18 -0
  454. package/dist/scanner/test-file-patterns.d.ts.map +1 -0
  455. package/dist/scanner/test-file-patterns.js +16 -0
  456. package/dist/scanner/test-file-patterns.js.map +1 -0
  457. package/dist/scanner/types.d.ts +313 -0
  458. package/dist/scanner/types.d.ts.map +1 -0
  459. package/dist/scanner/types.js +2 -0
  460. package/dist/scanner/types.js.map +1 -0
  461. package/dist/scanner.d.ts +6 -0
  462. package/dist/scanner.d.ts.map +1 -0
  463. package/dist/scanner.js +6 -0
  464. package/dist/scanner.js.map +1 -0
  465. package/dist/schema/code-generator.d.ts +53 -0
  466. package/dist/schema/code-generator.d.ts.map +1 -0
  467. package/dist/schema/ddl/base-strategy.d.ts +80 -0
  468. package/dist/schema/ddl/base-strategy.d.ts.map +1 -0
  469. package/dist/schema/ddl/base-strategy.js +240 -0
  470. package/dist/schema/ddl/base-strategy.js.map +1 -0
  471. package/dist/schema/ddl/duckdb-strategy.d.ts +33 -0
  472. package/dist/schema/ddl/duckdb-strategy.d.ts.map +1 -0
  473. package/dist/schema/ddl/duckdb-strategy.js +74 -0
  474. package/dist/schema/ddl/duckdb-strategy.js.map +1 -0
  475. package/dist/schema/ddl/index.d.ts +53 -0
  476. package/dist/schema/ddl/index.d.ts.map +1 -0
  477. package/dist/schema/ddl/index.js +80 -0
  478. package/dist/schema/ddl/index.js.map +1 -0
  479. package/dist/schema/ddl/json-duckdb-strategy.d.ts +8 -0
  480. package/dist/schema/ddl/json-duckdb-strategy.d.ts.map +1 -0
  481. package/dist/schema/ddl/json-duckdb-strategy.js +14 -0
  482. package/dist/schema/ddl/json-duckdb-strategy.js.map +1 -0
  483. package/dist/schema/ddl/postgres-strategy.d.ts +29 -0
  484. package/dist/schema/ddl/postgres-strategy.d.ts.map +1 -0
  485. package/dist/schema/ddl/postgres-strategy.js +102 -0
  486. package/dist/schema/ddl/postgres-strategy.js.map +1 -0
  487. package/dist/schema/ddl/sqlite-strategy.d.ts +38 -0
  488. package/dist/schema/ddl/sqlite-strategy.d.ts.map +1 -0
  489. package/dist/schema/ddl/sqlite-strategy.js +74 -0
  490. package/dist/schema/ddl/sqlite-strategy.js.map +1 -0
  491. package/dist/schema/ddl/types.d.ts +114 -0
  492. package/dist/schema/ddl/types.d.ts.map +1 -0
  493. package/dist/schema/generator.d.ts +176 -0
  494. package/dist/schema/generator.d.ts.map +1 -0
  495. package/dist/schema/generator.js +1076 -0
  496. package/dist/schema/generator.js.map +1 -0
  497. package/dist/schema/index-utils.d.ts +19 -0
  498. package/dist/schema/index-utils.d.ts.map +1 -0
  499. package/dist/schema/index-utils.js +32 -0
  500. package/dist/schema/index-utils.js.map +1 -0
  501. package/dist/schema/index.d.ts +13 -0
  502. package/dist/schema/index.d.ts.map +1 -0
  503. package/dist/schema/override-system.d.ts +43 -0
  504. package/dist/schema/override-system.d.ts.map +1 -0
  505. package/dist/schema/schema-aggregator.d.ts +112 -0
  506. package/dist/schema/schema-aggregator.d.ts.map +1 -0
  507. package/dist/schema/schema-manager.d.ts +95 -0
  508. package/dist/schema/schema-manager.d.ts.map +1 -0
  509. package/dist/schema/schema-manager.js +283 -0
  510. package/dist/schema/schema-manager.js.map +1 -0
  511. package/dist/schema/sql-identifiers.d.ts +107 -0
  512. package/dist/schema/sql-identifiers.d.ts.map +1 -0
  513. package/dist/schema/sql-identifiers.js +190 -0
  514. package/dist/schema/sql-identifiers.js.map +1 -0
  515. package/dist/schema/table-verifier.d.ts +10 -0
  516. package/dist/schema/table-verifier.d.ts.map +1 -0
  517. package/dist/schema/table-verifier.js +37 -0
  518. package/dist/schema/table-verifier.js.map +1 -0
  519. package/dist/schema/types.d.ts +241 -0
  520. package/dist/schema/types.d.ts.map +1 -0
  521. package/dist/schema/utils.d.ts +32 -0
  522. package/dist/schema/utils.d.ts.map +1 -0
  523. package/dist/schema/utils.js +134 -0
  524. package/dist/schema/utils.js.map +1 -0
  525. package/dist/scripts/create-wrappers.js +89 -0
  526. package/dist/scripts/generate-manifest.js +155 -0
  527. package/dist/scripts/generate-test-manifest.js +77 -0
  528. package/dist/scripts/migrate-datetime-to-timestamp.ts +310 -0
  529. package/dist/scripts/prepack.js +49 -0
  530. package/dist/signals/bus.d.ts +64 -0
  531. package/dist/signals/bus.d.ts.map +1 -0
  532. package/dist/signals/bus.js +102 -0
  533. package/dist/signals/bus.js.map +1 -0
  534. package/dist/signals/index.d.ts +11 -0
  535. package/dist/signals/index.d.ts.map +1 -0
  536. package/dist/signals/sanitizer.d.ts +54 -0
  537. package/dist/signals/sanitizer.d.ts.map +1 -0
  538. package/dist/signals/sanitizer.js +111 -0
  539. package/dist/signals/sanitizer.js.map +1 -0
  540. package/dist/smrt-knowledge.json +335 -0
  541. package/dist/system/compatibility.d.ts +8 -0
  542. package/dist/system/compatibility.d.ts.map +1 -0
  543. package/dist/system/compatibility.js +409 -0
  544. package/dist/system/compatibility.js.map +1 -0
  545. package/dist/system/index.d.ts +9 -0
  546. package/dist/system/index.d.ts.map +1 -0
  547. package/dist/system/schema.d.ts +69 -0
  548. package/dist/system/schema.d.ts.map +1 -0
  549. package/dist/system/schema.js +271 -0
  550. package/dist/system/schema.js.map +1 -0
  551. package/dist/system/types.d.ts +135 -0
  552. package/dist/system/types.d.ts.map +1 -0
  553. package/dist/system-fields.d.ts +44 -0
  554. package/dist/system-fields.d.ts.map +1 -0
  555. package/dist/system-fields.js +55 -0
  556. package/dist/system-fields.js.map +1 -0
  557. package/dist/table-cache.d.ts +28 -0
  558. package/dist/table-cache.d.ts.map +1 -0
  559. package/dist/table-cache.js +21 -0
  560. package/dist/table-cache.js.map +1 -0
  561. package/dist/test-utils.d.ts +140 -0
  562. package/dist/test-utils.d.ts.map +1 -0
  563. package/dist/testing/database.d.ts +73 -0
  564. package/dist/testing/database.d.ts.map +1 -0
  565. package/dist/testing/database.js +204 -0
  566. package/dist/testing/database.js.map +1 -0
  567. package/dist/testing/index.d.ts +21 -0
  568. package/dist/testing/index.d.ts.map +1 -0
  569. package/dist/testing.d.ts +6 -0
  570. package/dist/testing.d.ts.map +1 -0
  571. package/dist/testing.js +5 -0
  572. package/dist/testing.js.map +1 -0
  573. package/dist/tools/index.d.ts +8 -0
  574. package/dist/tools/index.d.ts.map +1 -0
  575. package/dist/tools/tool-executor.d.ts +101 -0
  576. package/dist/tools/tool-executor.d.ts.map +1 -0
  577. package/dist/tools/tool-executor.js +142 -0
  578. package/dist/tools/tool-executor.js.map +1 -0
  579. package/dist/tools/tool-generator.d.ts +54 -0
  580. package/dist/tools/tool-generator.d.ts.map +1 -0
  581. package/dist/tools/tool-generator.js +121 -0
  582. package/dist/tools/tool-generator.js.map +1 -0
  583. package/dist/utils/chunk.d.ts +32 -0
  584. package/dist/utils/chunk.d.ts.map +1 -0
  585. package/dist/utils/chunk.js +14 -0
  586. package/dist/utils/chunk.js.map +1 -0
  587. package/dist/utils/import-workspace-module.d.ts +8 -0
  588. package/dist/utils/import-workspace-module.d.ts.map +1 -0
  589. package/dist/utils/import-workspace-module.js +81 -0
  590. package/dist/utils/import-workspace-module.js.map +1 -0
  591. package/dist/utils/json.d.ts +102 -0
  592. package/dist/utils/json.d.ts.map +1 -0
  593. package/dist/utils/json.js +43 -0
  594. package/dist/utils/json.js.map +1 -0
  595. package/dist/utils/lru-cache.d.ts +69 -0
  596. package/dist/utils/lru-cache.d.ts.map +1 -0
  597. package/dist/utils/lru-cache.js +100 -0
  598. package/dist/utils/lru-cache.js.map +1 -0
  599. package/dist/utils/naming.d.ts +16 -0
  600. package/dist/utils/naming.d.ts.map +1 -0
  601. package/dist/utils/naming.js +23 -0
  602. package/dist/utils/naming.js.map +1 -0
  603. package/dist/utils/qualified-names.d.ts +122 -0
  604. package/dist/utils/qualified-names.d.ts.map +1 -0
  605. package/dist/utils/qualified-names.js +82 -0
  606. package/dist/utils/qualified-names.js.map +1 -0
  607. package/dist/utils/scanner-module.d.ts +37 -0
  608. package/dist/utils/scanner-module.d.ts.map +1 -0
  609. package/dist/utils.d.ts +177 -0
  610. package/dist/utils.d.ts.map +1 -0
  611. package/dist/utils.js +185 -0
  612. package/dist/utils.js.map +1 -0
  613. package/dist/vite-plugin/import-build-aware.d.ts +68 -0
  614. package/dist/vite-plugin/import-build-aware.d.ts.map +1 -0
  615. package/dist/vite-plugin/import-build-aware.js +72 -0
  616. package/dist/vite-plugin/import-build-aware.js.map +1 -0
  617. package/dist/vite-plugin/index.d.ts +59 -0
  618. package/dist/vite-plugin/index.d.ts.map +1 -0
  619. package/dist/vite-plugin/index.js +1400 -0
  620. package/dist/vite-plugin/index.js.map +1 -0
  621. package/dist/vite-plugin/sveltekit-generator.d.ts +66 -0
  622. package/dist/vite-plugin/sveltekit-generator.d.ts.map +1 -0
  623. package/dist/vite-plugin/sveltekit-generator.js +1375 -0
  624. package/dist/vite-plugin/sveltekit-generator.js.map +1 -0
  625. package/dist/vite-plugin/templates/default-ui.ts +432 -0
  626. package/dist/vite-plugin/templates/default.html +206 -0
  627. package/dist/vite-plugin.d.ts +8 -0
  628. package/dist/vite-plugin.d.ts.map +1 -0
  629. package/dist/vite-plugin.js +11 -0
  630. package/dist/vite-plugin.js.map +1 -0
  631. package/package.json +208 -0
@@ -0,0 +1,667 @@
1
+ import { DomainKnowledgeConfig } from '@happyvertical/smrt-types';
2
+ import { SmrtCollection } from '../collection';
3
+ import { CollectionCacheConfig } from '../collection-cache';
4
+ import { SmrtObject } from '../object';
5
+ import { QualifiedClassName, SmartObjectManifest, SmrtVisibility, ValidationRule } from '../scanner/types.js';
6
+ import { SchemaDefinition } from '../schema/types.js';
7
+ /**
8
+ * Type for any constructor function that extends SmrtObject.
9
+ * Used for WeakMap keys where we need to accept any subclass constructor.
10
+ */
11
+ export type SmrtObjectConstructor = new (...args: any[]) => SmrtObject;
12
+ export type ApiHttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
13
+ export interface ApiSerializerReference {
14
+ /**
15
+ * Module specifier to import the serializer from.
16
+ *
17
+ * Supports package imports and project aliases such as `$lib/...`.
18
+ */
19
+ importPath: string;
20
+ /**
21
+ * Named export to use as the serializer function.
22
+ */
23
+ exportName: string;
24
+ }
25
+ export interface ApiCustomRouteConfig {
26
+ /**
27
+ * Route scope for custom methods.
28
+ * - `item`: Generates `/<collection>/[id]/<path>`
29
+ * - `collection`: Generates `/<collection>/<path>`
30
+ *
31
+ * Defaults to `collection` for static methods and `item` for instance methods.
32
+ */
33
+ scope?: 'item' | 'collection';
34
+ /**
35
+ * HTTP verb for the generated route.
36
+ * Defaults to `POST` for custom actions.
37
+ */
38
+ method?: ApiHttpMethod;
39
+ /**
40
+ * Optional custom path segment for the route.
41
+ * Defaults to the method name.
42
+ *
43
+ * @example
44
+ * ```typescript
45
+ * routes: {
46
+ * browseFacts: { scope: 'collection', method: 'GET', path: 'facts' }
47
+ * }
48
+ * ```
49
+ */
50
+ path?: string;
51
+ }
52
+ export interface ApiSerializersConfig {
53
+ /**
54
+ * Custom serializers REPLACE the framework's default `toPublicJSON()`
55
+ * serialization on generated routes. Security (#1540): when you supply a
56
+ * serializer you are responsible for excluding `@field({ sensitive: true })`
57
+ * fields — a serializer that returns `item.toJSON()` (or spreads all fields)
58
+ * will leak secrets that the default path would have stripped.
59
+ */
60
+ /**
61
+ * Serializer used for standard item responses (`get`, `create`, `update`).
62
+ */
63
+ item?: ApiSerializerReference;
64
+ /**
65
+ * Serializer used for standard list responses.
66
+ *
67
+ * When omitted, SMRT falls back to `item` for each list entry.
68
+ */
69
+ listItem?: ApiSerializerReference;
70
+ }
71
+ export interface ApiConfig {
72
+ /**
73
+ * Optional collection path override for generated CRUD routes.
74
+ *
75
+ * When omitted, SMRT derives the path from `tableName` by replacing `_` with `-`.
76
+ * This remains the supported way to keep legacy/public route shapes stable when
77
+ * the storage table name differs from the desired URL segment.
78
+ */
79
+ path?: string;
80
+ /**
81
+ * Exclude specific endpoints (supports both standard CRUD actions and custom methods)
82
+ */
83
+ exclude?: string[];
84
+ /**
85
+ * Include only specific endpoints (supports both standard CRUD actions and custom methods)
86
+ */
87
+ include?: string[];
88
+ /**
89
+ * Custom middleware for this object's endpoints
90
+ */
91
+ middleware?: any[];
92
+ /**
93
+ * Custom endpoint handlers (supports both standard CRUD actions and custom methods)
94
+ */
95
+ customize?: Record<string, (req: any, collection: any) => Promise<any>>;
96
+ /**
97
+ * Route metadata for custom API methods.
98
+ * Lets generated routes declare collection-vs-item scope, HTTP verb, and path.
99
+ */
100
+ routes?: Record<string, ApiCustomRouteConfig>;
101
+ /**
102
+ * Optional serializers for standard generated CRUD responses.
103
+ * Useful when item JSON needs async enrichment beyond `transformJSON()`.
104
+ */
105
+ serializers?: ApiSerializersConfig;
106
+ /**
107
+ * Authorization posture for generated CRUD routes (fail-closed by default).
108
+ *
109
+ * Generated REST / MCP / SvelteKit routes require an authenticated principal
110
+ * on `locals` (e.g. `locals.user` / `locals.session`) unless this opts out:
111
+ * - `false` (default): every route requires authentication — reads and writes.
112
+ * - `true`: all routes are public (no auth required). Use only for genuinely
113
+ * public data.
114
+ * - `'read'`: read routes (`list`/`get`) are public, but mutating routes
115
+ * (`create`/`update`/`delete`) still require authentication.
116
+ *
117
+ * This is a security default: omitting it means the routes are protected.
118
+ */
119
+ public?: boolean | 'read';
120
+ /**
121
+ * Allowlist of field names that may be set from the request body on generated
122
+ * `create`/`update` routes.
123
+ *
124
+ * When set, only these fields are accepted; everything else in the body is
125
+ * dropped. Regardless of this list, framework/server-managed fields (`id`,
126
+ * `tenantId`, timestamps, `_`-prefixed) and `@field({ readonly: true })`
127
+ * fields are always stripped to prevent mass-assignment.
128
+ */
129
+ writable?: string[];
130
+ }
131
+ /**
132
+ * Configuration options for SMRT objects registered in the system
133
+ *
134
+ * Controls how objects are exposed through generated APIs, CLIs, and MCP servers.
135
+ * Each section configures a different aspect of code generation and runtime behavior.
136
+ *
137
+ * @interface SmartObjectConfig
138
+ */
139
+ export interface SmartObjectConfig {
140
+ /**
141
+ * Custom name for the object (defaults to class name)
142
+ */
143
+ name?: string;
144
+ /**
145
+ * Explicit package name for deterministic qualified registration.
146
+ *
147
+ * Build tools should prefer setting this instead of relying on runtime
148
+ * stack/package.json discovery, which can fail in bundled deployments.
149
+ */
150
+ packageName?: string;
151
+ /**
152
+ * Custom table name for database storage (defaults to pluralized snake_case class name)
153
+ * Explicitly setting this ensures the table name survives code minification
154
+ */
155
+ tableName?: string;
156
+ /**
157
+ * Storage type for the synthetic `id` primary key (defaults to 'uuid').
158
+ *
159
+ * Use 'text' only for models that intentionally generate non-UUID ids.
160
+ * On SQLite, UUID maps to TEXT at DDL render time because SQLite has no
161
+ * native UUID type.
162
+ */
163
+ idType?: 'uuid' | 'text';
164
+ /**
165
+ * Table inheritance strategy (defaults to 'cti')
166
+ * - 'cti': Class Table Inheritance - one table per class (current default)
167
+ * - 'sti': Single Table Inheritance - shared table with discriminator column
168
+ *
169
+ * Set once on base class, children inherit automatically.
170
+ *
171
+ * @example
172
+ * ```typescript
173
+ * @smrt({ tableStrategy: 'sti' })
174
+ * class Event extends SmrtObject {
175
+ * title: string = '';
176
+ * }
177
+ *
178
+ * // Meeting inherits 'sti' strategy
179
+ * @smrt()
180
+ * class Meeting extends Event {
181
+ * roomId = foreignKey(Room);
182
+ * }
183
+ * ```
184
+ */
185
+ tableStrategy?: 'cti' | 'sti';
186
+ /**
187
+ * Custom conflict columns for UPSERT operations
188
+ *
189
+ * By default, SMRT uses ['slug', 'context'] for CTI tables and
190
+ * ['slug', 'context', '_meta_type'] for STI tables. Override this
191
+ * for junction tables or models with different natural keys.
192
+ *
193
+ * @example
194
+ * ```typescript
195
+ * // Junction table using foreign keys as natural key
196
+ * @smrt({ conflictColumns: ['event_id', 'profile_id'] })
197
+ * class EventParticipant extends SmrtObject {
198
+ * eventId = '';
199
+ * profileId = '';
200
+ * }
201
+ * ```
202
+ */
203
+ conflictColumns?: string[];
204
+ /**
205
+ * Opt-in read-through cache for collection reads (issue #1498).
206
+ *
207
+ * When set, `collection.list()` and `collection.get()` memoize result
208
+ * rows for `ttl` milliseconds. Mutations through SMRT (`save()`,
209
+ * `delete()`, `collection.create()`, `getOrUpsert()`, junction
210
+ * attach/detach) automatically invalidate the table's cached entries
211
+ * in-process. With `crossProcess: true`, invalidations also broadcast to
212
+ * peer replicas via the database adapter's notification capability
213
+ * (e.g. Postgres LISTEN/NOTIFY) when the adapter provides one.
214
+ *
215
+ * Defaults to off — caching is opinionated and silently serving stale
216
+ * rows would be a footgun. Children inherit the nearest ancestor's
217
+ * setting; set `cache: false` on a child to opt back out. Per-call
218
+ * options override this: `list({ cache: false })` forces a fresh read,
219
+ * `list({ cache: { ttl } })` enables caching for that call only.
220
+ *
221
+ * @example
222
+ * ```typescript
223
+ * @smrt({ cache: { ttl: 60_000 } })
224
+ * class Product extends SmrtObject {
225
+ * name: string = '';
226
+ * }
227
+ * ```
228
+ */
229
+ cache?: CollectionCacheConfig | false;
230
+ /**
231
+ * Visibility control for manifest inclusion and cross-package access
232
+ * - 'public': Included in published manifest, available to all consumers (default)
233
+ * - 'internal': Package-only, excluded from published manifest
234
+ * - 'test': Test-only, never in any published manifest
235
+ *
236
+ * @example
237
+ * ```typescript
238
+ * // Public class (default) - exported to consumers
239
+ * @smrt({ visibility: 'public' })
240
+ * class Product extends SmrtObject {}
241
+ *
242
+ * // Internal helper class - not exported
243
+ * @smrt({ visibility: 'internal' })
244
+ * class InternalHelper extends SmrtObject {}
245
+ *
246
+ * // Test fixture - never exported
247
+ * @smrt({ visibility: 'test' })
248
+ * class TestProduct extends SmrtObject {}
249
+ * ```
250
+ */
251
+ visibility?: SmrtVisibility;
252
+ /**
253
+ * Agent/developer knowledge metadata.
254
+ *
255
+ * Set to false to exclude this object from generated smrt-knowledge.json
256
+ * without changing runtime manifest registration. Object-level metadata
257
+ * augments package-level knowledge defaults from smrt.config.
258
+ */
259
+ knowledge?: false | Pick<DomainKnowledgeConfig, 'tags' | 'summary' | 'risks'>;
260
+ /**
261
+ * API configuration
262
+ */
263
+ api?: boolean | ApiConfig;
264
+ /**
265
+ * MCP server configuration
266
+ */
267
+ mcp?: boolean | {
268
+ /**
269
+ * Include specific tools (supports both standard CRUD actions and custom methods)
270
+ */
271
+ include?: string[];
272
+ /**
273
+ * Exclude specific tools (supports both standard CRUD actions and custom methods)
274
+ */
275
+ exclude?: string[];
276
+ };
277
+ /**
278
+ * CLI configuration
279
+ */
280
+ cli?: boolean | {
281
+ /**
282
+ * Include specific commands (supports both standard CRUD actions and custom methods)
283
+ */
284
+ include?: string[];
285
+ /**
286
+ * Exclude specific commands (supports both standard CRUD actions and custom methods)
287
+ */
288
+ exclude?: string[];
289
+ /**
290
+ * Skip the build-time check that every `cli.include` method is also
291
+ * exposed via the API. Set this for classes whose CLI is invoked
292
+ * in-process (e.g. admin/security tools intentionally without HTTP
293
+ * routes) rather than over HTTP.
294
+ */
295
+ skipApiCheck?: boolean;
296
+ /**
297
+ * Whether this CLI surface should be advertised through HTTP discovery
298
+ * (`GET /api/_resources`) for `@happyvertical/smrt-app-cli`.
299
+ *
300
+ * Set to `false` for package-internal or in-process CLI resources that
301
+ * may still be useful to local generators but do not have app HTTP
302
+ * routes in downstream deployments.
303
+ */
304
+ http?: boolean;
305
+ };
306
+ /**
307
+ * AI callable configuration
308
+ */
309
+ ai?: {
310
+ /**
311
+ * Methods that AI can call
312
+ * - Array of method names, e.g., ['analyze', 'validate']
313
+ * - 'public-async' to auto-include all public async methods
314
+ * - 'all' to include all methods (not recommended)
315
+ */
316
+ callable?: string[] | 'public-async' | 'all';
317
+ /**
318
+ * Methods to exclude from AI calling (higher priority than callable)
319
+ */
320
+ exclude?: string[];
321
+ /**
322
+ * Additional tool descriptions to override method JSDoc
323
+ */
324
+ descriptions?: Record<string, string>;
325
+ };
326
+ /**
327
+ * Lifecycle hooks
328
+ */
329
+ hooks?: {
330
+ beforeSave?: string | ((instance: any) => Promise<void>);
331
+ afterSave?: string | ((instance: any) => Promise<void>);
332
+ beforeCreate?: string | ((instance: any) => Promise<void>);
333
+ afterCreate?: string | ((instance: any) => Promise<void>);
334
+ beforeUpdate?: string | ((instance: any) => Promise<void>);
335
+ afterUpdate?: string | ((instance: any) => Promise<void>);
336
+ beforeDelete?: string | ((instance: any) => Promise<void>);
337
+ afterDelete?: string | ((instance: any) => Promise<void>);
338
+ };
339
+ /**
340
+ * Embedding configuration for semantic search
341
+ *
342
+ * Enable vector embeddings on this class for similarity search.
343
+ * Project-level defaults come from smrt.config embeddings section.
344
+ *
345
+ * @example
346
+ * ```typescript
347
+ * @smrt({
348
+ * embeddings: {
349
+ * fields: ['title', 'body'],
350
+ * autoGenerate: true
351
+ * }
352
+ * })
353
+ * class Article extends SmrtObject {
354
+ * title: string = '';
355
+ * body: string = '';
356
+ * }
357
+ * ```
358
+ */
359
+ embeddings?: {
360
+ /**
361
+ * Fields to generate embeddings for
362
+ * Each field gets its own embedding vector stored in _smrt_embeddings
363
+ */
364
+ fields: string[];
365
+ /**
366
+ * Override project-level embedding provider
367
+ * - 'local': Use local Node.js model (@xenova/transformers)
368
+ * - 'ai': Use AI library (OpenAI, etc.)
369
+ * - 'auto': Try local first, fallback to AI
370
+ */
371
+ provider?: 'local' | 'ai' | 'auto';
372
+ /**
373
+ * Automatically generate embeddings on save
374
+ * Only regenerates when content changes (via content hash)
375
+ * @default true
376
+ */
377
+ autoGenerate?: boolean;
378
+ /**
379
+ * Regenerate embeddings when field content changes
380
+ * Uses content hash comparison to detect changes
381
+ * @default true
382
+ */
383
+ regenerateOnChange?: boolean;
384
+ /**
385
+ * Create a combined embedding from multiple fields
386
+ * Useful for holistic similarity search across an object
387
+ *
388
+ * @example
389
+ * ```typescript
390
+ * combinedField: {
391
+ * name: 'content',
392
+ * template: '{title}\n\n{body}'
393
+ * }
394
+ * ```
395
+ */
396
+ combinedField?: {
397
+ /** Field name for the combined embedding */
398
+ name: string;
399
+ /** Template with {fieldName} placeholders */
400
+ template: string;
401
+ };
402
+ };
403
+ /**
404
+ * Multi-tenancy configuration
405
+ *
406
+ * Enable automatic tenant isolation for this class.
407
+ * When enabled, a `tenantId` field is auto-injected and queries are
408
+ * automatically filtered by tenant context.
409
+ *
410
+ * Requires `@happyvertical/smrt-tenancy` package to be installed
411
+ * and `enableTenancy()` to be called at app startup.
412
+ *
413
+ * @example Simple boolean flag (uses defaults)
414
+ * ```typescript
415
+ * @smrt({ tenantScoped: true })
416
+ * class Account extends SmrtObject {
417
+ * // tenantId field auto-injected
418
+ * name: string = '';
419
+ * }
420
+ * ```
421
+ *
422
+ * @example With custom options
423
+ * ```typescript
424
+ * @smrt({
425
+ * tenantScoped: {
426
+ * mode: 'optional', // Works with or without tenant context
427
+ * allowSuperAdminBypass: true
428
+ * }
429
+ * })
430
+ * class AuditLog extends SmrtObject { }
431
+ * ```
432
+ *
433
+ * @see https://github.com/happyvertical/smrt/issues/688
434
+ */
435
+ tenantScoped?: boolean | {
436
+ /**
437
+ * Tenancy mode for this class
438
+ * - 'required': Must have tenant context for all operations (default)
439
+ * - 'optional': Works with or without tenant context
440
+ * @default 'required'
441
+ */
442
+ mode?: 'required' | 'optional';
443
+ /**
444
+ * Field name for the tenant ID
445
+ * @default 'tenantId'
446
+ */
447
+ field?: string;
448
+ /**
449
+ * Auto-filter all queries by tenant
450
+ * @default true
451
+ */
452
+ autoFilter?: boolean;
453
+ /**
454
+ * Auto-populate tenant ID from context on create
455
+ * @default true
456
+ */
457
+ autoPopulate?: boolean;
458
+ /**
459
+ * Allow super admin bypass for this class
460
+ * @default false
461
+ */
462
+ allowSuperAdminBypass?: boolean;
463
+ };
464
+ /**
465
+ * Code-owned feature toggle declarations for this class.
466
+ *
467
+ * Feature definitions live in code and can be synced into runtime metadata
468
+ * stores by downstream packages (for example `@happyvertical/smrt-features`).
469
+ * Each feature is identified by a class-local key that becomes part of the
470
+ * canonical feature key `<qualifiedClassName>#<localId>`.
471
+ *
472
+ * V1 supports boolean flags only.
473
+ */
474
+ features?: Record<string, {
475
+ /**
476
+ * Default enabled state before runtime overrides are applied.
477
+ */
478
+ defaultEnabled: boolean;
479
+ /**
480
+ * Human-friendly label for admin UIs and generated docs.
481
+ */
482
+ label?: string;
483
+ /**
484
+ * Optional description explaining what the feature does.
485
+ */
486
+ description?: string;
487
+ /**
488
+ * Additional code-owned metadata for applications.
489
+ */
490
+ metadata?: Record<string, unknown>;
491
+ }>;
492
+ /**
493
+ * Agent metadata configuration
494
+ *
495
+ * Only relevant for classes extending Agent. Provides metadata
496
+ * that the manifest build uses to auto-generate permissions, features,
497
+ * menu items, and component declarations.
498
+ *
499
+ * @example
500
+ * ```typescript
501
+ * @smrt({
502
+ * tableName: 'praecos',
503
+ * agent: {
504
+ * icon: 'newspaper',
505
+ * tier: 'standard',
506
+ * description: 'Council meeting coverage and article generation',
507
+ * },
508
+ * cli: { include: ['discover', 'fetch', 'analyze'] },
509
+ * })
510
+ * export class Praeco extends Agent { }
511
+ * ```
512
+ */
513
+ agent?: {
514
+ /** Icon identifier (e.g., 'newspaper', 'cloud', 'git-branch') */
515
+ icon?: string;
516
+ /** Billing tier: 'free' | 'standard' | 'premium' */
517
+ tier?: 'free' | 'standard' | 'premium';
518
+ /** Human-readable description of the agent */
519
+ description?: string;
520
+ };
521
+ /**
522
+ * Optional UI hints consumed by `@happyvertical/smrt-svelte`'s
523
+ * `navTreeFromManifest()` helper (and any other manifest → admin-UI
524
+ * adapters). The framework itself never reads these — they round-trip
525
+ * through the generated manifest as plain data, letting consumers
526
+ * declare icon glyphs / labels next to the model rather than in a
527
+ * separate hand-written nav config.
528
+ *
529
+ * Kept deliberately minimal. Adding apparel-specific terminology or
530
+ * design-system-specific shapes here would couple the framework to a
531
+ * vertical; consumers that need richer hints should layer their own
532
+ * adapter on top.
533
+ *
534
+ * @example
535
+ * ```typescript
536
+ * @smrt({
537
+ * ui: { icon: 'newspaper', label: 'News articles' },
538
+ * })
539
+ * class Article extends SmrtObject { ... }
540
+ * ```
541
+ */
542
+ ui?: {
543
+ /**
544
+ * Icon identifier / glyph / emoji passed straight through to
545
+ * generated nav entries. Interpretation is consumer-defined — the
546
+ * framework only persists the string.
547
+ */
548
+ icon?: string;
549
+ /**
550
+ * Override the auto-pluralized label used for generated nav entries
551
+ * (e.g. `Article` → "Articles"). Leave undefined to use the default.
552
+ */
553
+ label?: string;
554
+ };
555
+ /**
556
+ * Synchronous manifest for build-time imports (Issue #270 Phase 1)
557
+ * Allows passing manifest directly instead of async loading
558
+ * @internal Advanced usage - typically set by build tools
559
+ */
560
+ _manifest?: SmartObjectManifest;
561
+ }
562
+ /**
563
+ * Validation function that takes an object instance and returns
564
+ * a ValidationError if validation fails, or null if validation passes
565
+ */
566
+ export type ValidatorFunction = (instance: any) => Promise<import('../errors').ValidationError | null>;
567
+ /**
568
+ * Relationship type for the relationship map
569
+ */
570
+ export type RelationshipType = 'foreignKey' | 'crossPackageRef' | 'oneToMany' | 'manyToMany';
571
+ /**
572
+ * Metadata about a relationship between classes
573
+ */
574
+ export interface RelationshipMetadata {
575
+ /** Source class name */
576
+ sourceClass: string;
577
+ /** Field name on the source class */
578
+ fieldName: string;
579
+ /** Target/related class name */
580
+ targetClass: string;
581
+ /** Type of relationship */
582
+ type: RelationshipType;
583
+ /** Options for the relationship (onDelete, etc.) */
584
+ options: any;
585
+ }
586
+ /**
587
+ * Internal representation of a registered SMRT class
588
+ *
589
+ * @interface RegisteredClass
590
+ */
591
+ export interface RegisteredClass {
592
+ /**
593
+ * Simple class name (e.g., "Product")
594
+ */
595
+ name: string;
596
+ /**
597
+ * Qualified class name in format "@package/name:ClassName"
598
+ * This is the PRIMARY KEY for registry lookups.
599
+ * Example: "@happyvertical/smrt-core:Product"
600
+ */
601
+ qualifiedName?: QualifiedClassName;
602
+ constructor: typeof SmrtObject;
603
+ collectionConstructor?: new (options: any) => SmrtCollection<any>;
604
+ config: SmartObjectConfig;
605
+ fields: Map<string, any>;
606
+ /** Method definitions from manifest (for custom CLI/API/MCP generation) */
607
+ methods: Map<string, any>;
608
+ /** Cached schema definition generated during registration */
609
+ schema?: SchemaDefinition;
610
+ /** Compiled validation functions for efficient runtime validation */
611
+ validators?: ValidatorFunction[];
612
+ /**
613
+ * Pre-computed validation rules from manifest (Issue #782)
614
+ * When available, these are used instead of compiling validator closures,
615
+ * significantly reducing CLI startup time.
616
+ */
617
+ validationRules?: ValidationRule[];
618
+ /** AI-callable tools generated from methods at build time */
619
+ tools?: Array<{
620
+ type: 'function';
621
+ function: {
622
+ name: string;
623
+ description?: string;
624
+ parameters?: Record<string, any>;
625
+ };
626
+ }>;
627
+ /** Package name from manifest (for external package classes) */
628
+ packageName?: string;
629
+ /** Source file path where the class was defined (for collision detection) */
630
+ sourceFilePath?: string;
631
+ /**
632
+ * Pluralized endpoint/collection name from the manifest (e.g. `sourcecrawls`
633
+ * for `SourceCrawl`). This is the segment the SvelteKit route generator
634
+ * uses for `/api/<collection>/...`, and it is NOT the same as `tableName`
635
+ * (which is snake_case and can be overridden/uncountable). Stored here so
636
+ * runtime consumers (e.g. `createResourceListHandler`) can build URLs that
637
+ * match the generated routes instead of re-deriving from `tableName`.
638
+ * See smrt#1311 consumer-migration finding.
639
+ */
640
+ collection?: string;
641
+ /** Parent class name (for inheritance chain tracking) */
642
+ extends?: string;
643
+ /** Generic type arg from `SmrtCollection<X>` — marks collection classes. */
644
+ extendsTypeArg?: string;
645
+ /** Full inheritance chain from base to this class (cached for performance) */
646
+ inheritanceChain?: string[];
647
+ /** Merged fields from entire inheritance chain (cached, includes parent fields) */
648
+ inheritedFields?: Map<string, any>;
649
+ /** Merged methods from entire inheritance chain (cached, includes parent methods) */
650
+ inheritedMethods?: Map<string, any>;
651
+ /** Normalized tenant scoping configuration (Issue #688) */
652
+ tenantScopedConfig?: {
653
+ mode: 'required' | 'optional';
654
+ field: string;
655
+ autoFilter: boolean;
656
+ autoPopulate: boolean;
657
+ allowSuperAdminBypass: boolean;
658
+ };
659
+ /**
660
+ * Visibility control for manifest inclusion
661
+ * - 'public': Included in published manifest (default)
662
+ * - 'internal': Package-only, excluded from published manifest
663
+ * - 'test': Test-only, never in any published manifest
664
+ */
665
+ visibility?: SmrtVisibility;
666
+ }
667
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/registry/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { ValidatorFunction } from './types';
2
+ /**
3
+ * Compile validation functions from field definitions.
4
+ *
5
+ * Extracts validation rules from field options and compiles them into
6
+ * efficient validation functions that can be executed at runtime.
7
+ *
8
+ * @param className - Name of the class being validated
9
+ * @param fields - Map of field definitions
10
+ * @returns Array of compiled validation functions
11
+ */
12
+ export declare function compileValidators(className: string, fields: Map<string, any>): ValidatorFunction[];
13
+ //# sourceMappingURL=validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/registry/validator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEjD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,GACvB,iBAAiB,EAAE,CAmKrB"}