@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,271 @@
1
+ const CREATE_SMRT_CONTEXTS_TABLE = `
2
+ CREATE TABLE IF NOT EXISTS _smrt_contexts (
3
+ id TEXT PRIMARY KEY,
4
+ owner_class TEXT NOT NULL,
5
+ owner_id TEXT NOT NULL,
6
+ scope TEXT NOT NULL,
7
+ key TEXT NOT NULL,
8
+ value TEXT,
9
+ metadata TEXT,
10
+ version INTEGER DEFAULT 1,
11
+ confidence REAL DEFAULT 1.0,
12
+ success_count INTEGER DEFAULT 0,
13
+ failure_count INTEGER DEFAULT 0,
14
+ created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
15
+ updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
16
+ last_used_at TIMESTAMP,
17
+ expires_at TIMESTAMP,
18
+ UNIQUE(owner_class, owner_id, scope, key, version)
19
+ );
20
+
21
+ CREATE INDEX IF NOT EXISTS idx_smrt_contexts_owner
22
+ ON _smrt_contexts(owner_class, owner_id);
23
+
24
+ CREATE INDEX IF NOT EXISTS idx_smrt_contexts_scope
25
+ ON _smrt_contexts(scope);
26
+
27
+ CREATE INDEX IF NOT EXISTS idx_smrt_contexts_confidence
28
+ ON _smrt_contexts(confidence);
29
+
30
+ CREATE INDEX IF NOT EXISTS idx_smrt_contexts_last_used
31
+ ON _smrt_contexts(last_used_at);
32
+ `;
33
+ const CREATE_SMRT_MIGRATIONS_TABLE = `
34
+ CREATE TABLE IF NOT EXISTS _smrt_migrations (
35
+ id TEXT PRIMARY KEY,
36
+ version TEXT NOT NULL UNIQUE,
37
+ applied_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
38
+ description TEXT,
39
+ checksum TEXT
40
+ );
41
+ `;
42
+ const CREATE_SMRT_SCHEMA_MIGRATIONS_TABLE = `
43
+ CREATE TABLE IF NOT EXISTS _smrt_schema_migrations (
44
+ id TEXT PRIMARY KEY,
45
+ name TEXT NOT NULL UNIQUE,
46
+ version TEXT NOT NULL,
47
+ checksum TEXT NOT NULL,
48
+ applied_checksum TEXT,
49
+ applied_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
50
+ execution_time_ms INTEGER,
51
+ package_name TEXT,
52
+ source_file TEXT,
53
+ status TEXT NOT NULL DEFAULT 'pending',
54
+ error_message TEXT,
55
+ attempts INTEGER DEFAULT 0,
56
+ is_reversible INTEGER DEFAULT 1,
57
+ rolled_back_at TIMESTAMP,
58
+ applied_by TEXT,
59
+ batch INTEGER
60
+ );
61
+
62
+ CREATE INDEX IF NOT EXISTS idx_smrt_schema_migrations_status
63
+ ON _smrt_schema_migrations(status);
64
+
65
+ CREATE INDEX IF NOT EXISTS idx_smrt_schema_migrations_applied_at
66
+ ON _smrt_schema_migrations(applied_at);
67
+
68
+ CREATE INDEX IF NOT EXISTS idx_smrt_schema_migrations_batch
69
+ ON _smrt_schema_migrations(batch);
70
+ `;
71
+ const CREATE_SMRT_REGISTRY_TABLE = `
72
+ CREATE TABLE IF NOT EXISTS _smrt_registry (
73
+ class_name TEXT PRIMARY KEY,
74
+ schema_version TEXT,
75
+ fields TEXT,
76
+ relationships TEXT,
77
+ config TEXT,
78
+ manifest TEXT,
79
+ last_updated TIMESTAMP DEFAULT CURRENT_TIMESTAMP
80
+ );
81
+ `;
82
+ const CREATE_SMRT_SIGNALS_TABLE = `
83
+ CREATE TABLE IF NOT EXISTS _smrt_signals (
84
+ id TEXT PRIMARY KEY,
85
+ type TEXT NOT NULL,
86
+ source_class TEXT,
87
+ source_id TEXT,
88
+ target_class TEXT,
89
+ target_id TEXT,
90
+ payload TEXT,
91
+ timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP
92
+ );
93
+
94
+ CREATE INDEX IF NOT EXISTS idx_smrt_signals_source
95
+ ON _smrt_signals(source_class, source_id);
96
+
97
+ CREATE INDEX IF NOT EXISTS idx_smrt_signals_type
98
+ ON _smrt_signals(type);
99
+
100
+ CREATE INDEX IF NOT EXISTS idx_smrt_signals_timestamp
101
+ ON _smrt_signals(timestamp);
102
+ `;
103
+ const CREATE_SMRT_EMBEDDINGS_TABLE = `
104
+ CREATE TABLE IF NOT EXISTS _smrt_embeddings (
105
+ id TEXT PRIMARY KEY,
106
+ object_class TEXT NOT NULL,
107
+ object_id TEXT NOT NULL,
108
+ field_name TEXT NOT NULL,
109
+ content_hash TEXT NOT NULL,
110
+ embedding TEXT NOT NULL,
111
+ model TEXT NOT NULL,
112
+ dimensions INTEGER NOT NULL,
113
+ provider TEXT,
114
+ created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
115
+ updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
116
+ UNIQUE(object_class, object_id, field_name, model)
117
+ );
118
+
119
+ CREATE INDEX IF NOT EXISTS idx_smrt_embeddings_object
120
+ ON _smrt_embeddings(object_class, object_id);
121
+
122
+ CREATE INDEX IF NOT EXISTS idx_smrt_embeddings_class
123
+ ON _smrt_embeddings(object_class);
124
+
125
+ CREATE INDEX IF NOT EXISTS idx_smrt_embeddings_hash
126
+ ON _smrt_embeddings(content_hash);
127
+
128
+ CREATE INDEX IF NOT EXISTS idx_smrt_embeddings_model
129
+ ON _smrt_embeddings(model);
130
+ `;
131
+ const CREATE_SMRT_DISPATCH_TABLE = `
132
+ CREATE TABLE IF NOT EXISTS _smrt_dispatch (
133
+ id TEXT PRIMARY KEY,
134
+ type TEXT NOT NULL,
135
+ source TEXT NOT NULL,
136
+ source_id TEXT,
137
+ payload TEXT,
138
+ status TEXT NOT NULL DEFAULT 'pending',
139
+ attempts INTEGER DEFAULT 0,
140
+ last_error TEXT,
141
+ processed_at TIMESTAMP,
142
+ processed_by TEXT,
143
+ target_subscriber TEXT,
144
+ correlation_id TEXT,
145
+ tenant_id TEXT,
146
+ metadata TEXT,
147
+ created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
148
+ updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
149
+ );
150
+
151
+ CREATE INDEX IF NOT EXISTS idx_smrt_dispatch_status
152
+ ON _smrt_dispatch(status);
153
+
154
+ CREATE INDEX IF NOT EXISTS idx_smrt_dispatch_tenant_id
155
+ ON _smrt_dispatch(tenant_id);
156
+
157
+ CREATE INDEX IF NOT EXISTS idx_smrt_dispatch_type
158
+ ON _smrt_dispatch(type);
159
+
160
+ CREATE INDEX IF NOT EXISTS idx_smrt_dispatch_source
161
+ ON _smrt_dispatch(source);
162
+
163
+ CREATE INDEX IF NOT EXISTS idx_smrt_dispatch_created
164
+ ON _smrt_dispatch(created_at);
165
+
166
+ CREATE INDEX IF NOT EXISTS idx_smrt_dispatch_target
167
+ ON _smrt_dispatch(target_subscriber);
168
+
169
+ CREATE INDEX IF NOT EXISTS idx_smrt_dispatch_correlation
170
+ ON _smrt_dispatch(correlation_id);
171
+ `;
172
+ const CREATE_SMRT_DISPATCH_SUBSCRIPTIONS_TABLE = `
173
+ CREATE TABLE IF NOT EXISTS _smrt_dispatch_subscriptions (
174
+ id TEXT PRIMARY KEY,
175
+ signal_type TEXT NOT NULL,
176
+ subscriber TEXT NOT NULL,
177
+ handler TEXT NOT NULL DEFAULT 'handleDispatch',
178
+ delivery TEXT NOT NULL DEFAULT 'compete',
179
+ enabled INTEGER DEFAULT 1,
180
+ tenant_id TEXT,
181
+ created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
182
+ updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
183
+ );
184
+
185
+ -- Subscription identity is tenant-scoped (S5 #1398): the same
186
+ -- (signal_type, subscriber) pair may exist independently in different tenants,
187
+ -- so tenant B can no longer overwrite/delete/enable tenant A's subscription.
188
+ -- A named UNIQUE index (rather than an inline UNIQUE constraint) is used so the
189
+ -- compatibility migration can additively reshape existing tables. NULL tenant_id
190
+ -- (global subscriptions) is deduped at the application layer by the NULL-aware
191
+ -- upsert in @happyvertical/sql.
192
+ CREATE UNIQUE INDEX IF NOT EXISTS uq_smrt_dispatch_subs_tenant_signal_subscriber
193
+ ON _smrt_dispatch_subscriptions(tenant_id, signal_type, subscriber);
194
+
195
+ CREATE INDEX IF NOT EXISTS idx_smrt_dispatch_subs_subscriber
196
+ ON _smrt_dispatch_subscriptions(subscriber);
197
+
198
+ CREATE INDEX IF NOT EXISTS idx_smrt_dispatch_subs_tenant_id
199
+ ON _smrt_dispatch_subscriptions(tenant_id);
200
+
201
+ CREATE INDEX IF NOT EXISTS idx_smrt_dispatch_subs_signal_type
202
+ ON _smrt_dispatch_subscriptions(signal_type);
203
+
204
+ CREATE INDEX IF NOT EXISTS idx_smrt_dispatch_subs_enabled
205
+ ON _smrt_dispatch_subscriptions(enabled);
206
+ `;
207
+ const CREATE_SMRT_AI_USAGE_TABLE = `
208
+ CREATE TABLE IF NOT EXISTS _smrt_ai_usage (
209
+ id TEXT PRIMARY KEY,
210
+ provider TEXT NOT NULL,
211
+ model TEXT NOT NULL,
212
+ operation TEXT NOT NULL,
213
+ prompt_tokens INTEGER,
214
+ completion_tokens INTEGER,
215
+ total_tokens INTEGER,
216
+ estimated_cost REAL,
217
+ duration INTEGER NOT NULL,
218
+ class_name TEXT,
219
+ tenant_id TEXT,
220
+ tags TEXT,
221
+ created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
222
+ );
223
+
224
+ CREATE INDEX IF NOT EXISTS idx_smrt_ai_usage_created
225
+ ON _smrt_ai_usage(created_at);
226
+
227
+ CREATE INDEX IF NOT EXISTS idx_smrt_ai_usage_class
228
+ ON _smrt_ai_usage(class_name);
229
+
230
+ CREATE INDEX IF NOT EXISTS idx_smrt_ai_usage_tenant
231
+ ON _smrt_ai_usage(tenant_id);
232
+
233
+ CREATE INDEX IF NOT EXISTS idx_smrt_ai_usage_provider_model
234
+ ON _smrt_ai_usage(provider, model);
235
+ `;
236
+ const CREATE_SMRT_BACKFILLS_TABLE = `
237
+ CREATE TABLE IF NOT EXISTS _smrt_backfills (
238
+ name TEXT PRIMARY KEY,
239
+ applied_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
240
+ description TEXT,
241
+ package_name TEXT
242
+ );
243
+ `;
244
+ const ALL_SYSTEM_TABLES = [
245
+ CREATE_SMRT_CONTEXTS_TABLE,
246
+ CREATE_SMRT_MIGRATIONS_TABLE,
247
+ CREATE_SMRT_SCHEMA_MIGRATIONS_TABLE,
248
+ CREATE_SMRT_BACKFILLS_TABLE,
249
+ CREATE_SMRT_REGISTRY_TABLE,
250
+ CREATE_SMRT_SIGNALS_TABLE,
251
+ CREATE_SMRT_EMBEDDINGS_TABLE,
252
+ CREATE_SMRT_DISPATCH_TABLE,
253
+ CREATE_SMRT_DISPATCH_SUBSCRIPTIONS_TABLE,
254
+ CREATE_SMRT_AI_USAGE_TABLE
255
+ ];
256
+ const SMRT_SCHEMA_VERSION = "1.6.1";
257
+ export {
258
+ ALL_SYSTEM_TABLES,
259
+ CREATE_SMRT_AI_USAGE_TABLE,
260
+ CREATE_SMRT_BACKFILLS_TABLE,
261
+ CREATE_SMRT_CONTEXTS_TABLE,
262
+ CREATE_SMRT_DISPATCH_SUBSCRIPTIONS_TABLE,
263
+ CREATE_SMRT_DISPATCH_TABLE,
264
+ CREATE_SMRT_EMBEDDINGS_TABLE,
265
+ CREATE_SMRT_MIGRATIONS_TABLE,
266
+ CREATE_SMRT_REGISTRY_TABLE,
267
+ CREATE_SMRT_SCHEMA_MIGRATIONS_TABLE,
268
+ CREATE_SMRT_SIGNALS_TABLE,
269
+ SMRT_SCHEMA_VERSION
270
+ };
271
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sources":["../../src/system/schema.ts"],"sourcesContent":["/**\n * SMRT System Tables Schema\n *\n * System tables use _smrt_ prefix to avoid conflicts with user tables.\n * All system tables are created in the same database as user data.\n */\n\n/**\n * Context memory storage\n * Stores remembered context (learned strategies, patterns, selectors) for reuse\n */\nexport const CREATE_SMRT_CONTEXTS_TABLE = `\nCREATE TABLE IF NOT EXISTS _smrt_contexts (\n id TEXT PRIMARY KEY,\n owner_class TEXT NOT NULL,\n owner_id TEXT NOT NULL,\n scope TEXT NOT NULL,\n key TEXT NOT NULL,\n value TEXT,\n metadata TEXT,\n version INTEGER DEFAULT 1,\n confidence REAL DEFAULT 1.0,\n success_count INTEGER DEFAULT 0,\n failure_count INTEGER DEFAULT 0,\n created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n last_used_at TIMESTAMP,\n expires_at TIMESTAMP,\n UNIQUE(owner_class, owner_id, scope, key, version)\n);\n\nCREATE INDEX IF NOT EXISTS idx_smrt_contexts_owner\n ON _smrt_contexts(owner_class, owner_id);\n\nCREATE INDEX IF NOT EXISTS idx_smrt_contexts_scope\n ON _smrt_contexts(scope);\n\nCREATE INDEX IF NOT EXISTS idx_smrt_contexts_confidence\n ON _smrt_contexts(confidence);\n\nCREATE INDEX IF NOT EXISTS idx_smrt_contexts_last_used\n ON _smrt_contexts(last_used_at);\n`;\n\n/**\n * Schema version tracking\n * Records which SMRT framework versions have been applied\n */\nexport const CREATE_SMRT_MIGRATIONS_TABLE = `\nCREATE TABLE IF NOT EXISTS _smrt_migrations (\n id TEXT PRIMARY KEY,\n version TEXT NOT NULL UNIQUE,\n applied_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n description TEXT,\n checksum TEXT\n);\n`;\n\n/**\n * Schema migration tracking\n * Tracks applied schema migrations for idempotency, audit, and rollback\n */\nexport const CREATE_SMRT_SCHEMA_MIGRATIONS_TABLE = `\nCREATE TABLE IF NOT EXISTS _smrt_schema_migrations (\n id TEXT PRIMARY KEY,\n name TEXT NOT NULL UNIQUE,\n version TEXT NOT NULL,\n checksum TEXT NOT NULL,\n applied_checksum TEXT,\n applied_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n execution_time_ms INTEGER,\n package_name TEXT,\n source_file TEXT,\n status TEXT NOT NULL DEFAULT 'pending',\n error_message TEXT,\n attempts INTEGER DEFAULT 0,\n is_reversible INTEGER DEFAULT 1,\n rolled_back_at TIMESTAMP,\n applied_by TEXT,\n batch INTEGER\n);\n\nCREATE INDEX IF NOT EXISTS idx_smrt_schema_migrations_status\n ON _smrt_schema_migrations(status);\n\nCREATE INDEX IF NOT EXISTS idx_smrt_schema_migrations_applied_at\n ON _smrt_schema_migrations(applied_at);\n\nCREATE INDEX IF NOT EXISTS idx_smrt_schema_migrations_batch\n ON _smrt_schema_migrations(batch);\n`;\n\n/**\n * Runtime object registry persistence\n * Stores metadata about registered SMRT objects for introspection\n */\nexport const CREATE_SMRT_REGISTRY_TABLE = `\nCREATE TABLE IF NOT EXISTS _smrt_registry (\n class_name TEXT PRIMARY KEY,\n schema_version TEXT,\n fields TEXT,\n relationships TEXT,\n config TEXT,\n manifest TEXT,\n last_updated TIMESTAMP DEFAULT CURRENT_TIMESTAMP\n);\n`;\n\n/**\n * Signal history/audit log\n * Optional persistence of signals for debugging and auditing\n */\nexport const CREATE_SMRT_SIGNALS_TABLE = `\nCREATE TABLE IF NOT EXISTS _smrt_signals (\n id TEXT PRIMARY KEY,\n type TEXT NOT NULL,\n source_class TEXT,\n source_id TEXT,\n target_class TEXT,\n target_id TEXT,\n payload TEXT,\n timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP\n);\n\nCREATE INDEX IF NOT EXISTS idx_smrt_signals_source\n ON _smrt_signals(source_class, source_id);\n\nCREATE INDEX IF NOT EXISTS idx_smrt_signals_type\n ON _smrt_signals(type);\n\nCREATE INDEX IF NOT EXISTS idx_smrt_signals_timestamp\n ON _smrt_signals(timestamp);\n`;\n\n/**\n * Embedding storage for semantic search\n * Stores embedding vectors for SMRT objects to enable vector similarity search\n */\nexport const CREATE_SMRT_EMBEDDINGS_TABLE = `\nCREATE TABLE IF NOT EXISTS _smrt_embeddings (\n id TEXT PRIMARY KEY,\n object_class TEXT NOT NULL,\n object_id TEXT NOT NULL,\n field_name TEXT NOT NULL,\n content_hash TEXT NOT NULL,\n embedding TEXT NOT NULL,\n model TEXT NOT NULL,\n dimensions INTEGER NOT NULL,\n provider TEXT,\n created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n UNIQUE(object_class, object_id, field_name, model)\n);\n\nCREATE INDEX IF NOT EXISTS idx_smrt_embeddings_object\n ON _smrt_embeddings(object_class, object_id);\n\nCREATE INDEX IF NOT EXISTS idx_smrt_embeddings_class\n ON _smrt_embeddings(object_class);\n\nCREATE INDEX IF NOT EXISTS idx_smrt_embeddings_hash\n ON _smrt_embeddings(content_hash);\n\nCREATE INDEX IF NOT EXISTS idx_smrt_embeddings_model\n ON _smrt_embeddings(model);\n`;\n\n/**\n * Dispatch queue for inter-agent communication\n * Stores dispatch messages for asynchronous agent-to-agent signaling\n */\nexport const CREATE_SMRT_DISPATCH_TABLE = `\nCREATE TABLE IF NOT EXISTS _smrt_dispatch (\n id TEXT PRIMARY KEY,\n type TEXT NOT NULL,\n source TEXT NOT NULL,\n source_id TEXT,\n payload TEXT,\n status TEXT NOT NULL DEFAULT 'pending',\n attempts INTEGER DEFAULT 0,\n last_error TEXT,\n processed_at TIMESTAMP,\n processed_by TEXT,\n target_subscriber TEXT,\n correlation_id TEXT,\n tenant_id TEXT,\n metadata TEXT,\n created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP\n);\n\nCREATE INDEX IF NOT EXISTS idx_smrt_dispatch_status\n ON _smrt_dispatch(status);\n\nCREATE INDEX IF NOT EXISTS idx_smrt_dispatch_tenant_id\n ON _smrt_dispatch(tenant_id);\n\nCREATE INDEX IF NOT EXISTS idx_smrt_dispatch_type\n ON _smrt_dispatch(type);\n\nCREATE INDEX IF NOT EXISTS idx_smrt_dispatch_source\n ON _smrt_dispatch(source);\n\nCREATE INDEX IF NOT EXISTS idx_smrt_dispatch_created\n ON _smrt_dispatch(created_at);\n\nCREATE INDEX IF NOT EXISTS idx_smrt_dispatch_target\n ON _smrt_dispatch(target_subscriber);\n\nCREATE INDEX IF NOT EXISTS idx_smrt_dispatch_correlation\n ON _smrt_dispatch(correlation_id);\n`;\n\n/**\n * Dispatch subscriptions for persistent handlers\n * Stores subscriptions to dispatch types for agent processing\n */\nexport const CREATE_SMRT_DISPATCH_SUBSCRIPTIONS_TABLE = `\nCREATE TABLE IF NOT EXISTS _smrt_dispatch_subscriptions (\n id TEXT PRIMARY KEY,\n signal_type TEXT NOT NULL,\n subscriber TEXT NOT NULL,\n handler TEXT NOT NULL DEFAULT 'handleDispatch',\n delivery TEXT NOT NULL DEFAULT 'compete',\n enabled INTEGER DEFAULT 1,\n tenant_id TEXT,\n created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP\n);\n\n-- Subscription identity is tenant-scoped (S5 #1398): the same\n-- (signal_type, subscriber) pair may exist independently in different tenants,\n-- so tenant B can no longer overwrite/delete/enable tenant A's subscription.\n-- A named UNIQUE index (rather than an inline UNIQUE constraint) is used so the\n-- compatibility migration can additively reshape existing tables. NULL tenant_id\n-- (global subscriptions) is deduped at the application layer by the NULL-aware\n-- upsert in @happyvertical/sql.\nCREATE UNIQUE INDEX IF NOT EXISTS uq_smrt_dispatch_subs_tenant_signal_subscriber\n ON _smrt_dispatch_subscriptions(tenant_id, signal_type, subscriber);\n\nCREATE INDEX IF NOT EXISTS idx_smrt_dispatch_subs_subscriber\n ON _smrt_dispatch_subscriptions(subscriber);\n\nCREATE INDEX IF NOT EXISTS idx_smrt_dispatch_subs_tenant_id\n ON _smrt_dispatch_subscriptions(tenant_id);\n\nCREATE INDEX IF NOT EXISTS idx_smrt_dispatch_subs_signal_type\n ON _smrt_dispatch_subscriptions(signal_type);\n\nCREATE INDEX IF NOT EXISTS idx_smrt_dispatch_subs_enabled\n ON _smrt_dispatch_subscriptions(enabled);\n`;\n\n/**\n * AI usage telemetry storage\n * Stores normalized AI usage records for reporting and billing hooks\n */\nexport const CREATE_SMRT_AI_USAGE_TABLE = `\nCREATE TABLE IF NOT EXISTS _smrt_ai_usage (\n id TEXT PRIMARY KEY,\n provider TEXT NOT NULL,\n model TEXT NOT NULL,\n operation TEXT NOT NULL,\n prompt_tokens INTEGER,\n completion_tokens INTEGER,\n total_tokens INTEGER,\n estimated_cost REAL,\n duration INTEGER NOT NULL,\n class_name TEXT,\n tenant_id TEXT,\n tags TEXT,\n created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP\n);\n\nCREATE INDEX IF NOT EXISTS idx_smrt_ai_usage_created\n ON _smrt_ai_usage(created_at);\n\nCREATE INDEX IF NOT EXISTS idx_smrt_ai_usage_class\n ON _smrt_ai_usage(class_name);\n\nCREATE INDEX IF NOT EXISTS idx_smrt_ai_usage_tenant\n ON _smrt_ai_usage(tenant_id);\n\nCREATE INDEX IF NOT EXISTS idx_smrt_ai_usage_provider_model\n ON _smrt_ai_usage(provider, model);\n`;\n\n/**\n * Data backfill tracking\n *\n * Distinct from `_smrt_schema_migrations` — backfills are app-specific\n * data corrections (slug rewrites, model splits, lookup-table seeds) that\n * don't have schema diffs or rollback semantics. Apps register backfills\n * by name and the tracker handles idempotency.\n */\nexport const CREATE_SMRT_BACKFILLS_TABLE = `\nCREATE TABLE IF NOT EXISTS _smrt_backfills (\n name TEXT PRIMARY KEY,\n applied_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n description TEXT,\n package_name TEXT\n);\n`;\n\n/**\n * All system table creation statements\n */\nexport const ALL_SYSTEM_TABLES = [\n CREATE_SMRT_CONTEXTS_TABLE,\n CREATE_SMRT_MIGRATIONS_TABLE,\n CREATE_SMRT_SCHEMA_MIGRATIONS_TABLE,\n CREATE_SMRT_BACKFILLS_TABLE,\n CREATE_SMRT_REGISTRY_TABLE,\n CREATE_SMRT_SIGNALS_TABLE,\n CREATE_SMRT_EMBEDDINGS_TABLE,\n CREATE_SMRT_DISPATCH_TABLE,\n CREATE_SMRT_DISPATCH_SUBSCRIPTIONS_TABLE,\n CREATE_SMRT_AI_USAGE_TABLE,\n];\n\n/**\n * Current SMRT system schema version\n */\nexport const SMRT_SCHEMA_VERSION = '1.6.1';\n"],"names":[],"mappings":"AAWO,MAAM,6BAA6B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAqCnC,MAAM,+BAA+B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAcrC,MAAM,sCAAsC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAkC5C,MAAM,6BAA6B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgBnC,MAAM,4BAA4B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA0BlC,MAAM,+BAA+B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAiCrC,MAAM,6BAA6B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA8CnC,MAAM,2CAA2C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAwCjD,MAAM,6BAA6B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAsCnC,MAAM,8BAA8B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAYpC,MAAM,oBAAoB;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAKO,MAAM,sBAAsB;"}
@@ -0,0 +1,135 @@
1
+ /**
2
+ * Type definitions for SMRT system tables
3
+ */
4
+ /**
5
+ * Options for storing a note
6
+ */
7
+ export interface NoteOptions {
8
+ /** Hierarchical scope (e.g., 'discovery/parser/domain.com') */
9
+ scope: string;
10
+ /** Normalized identifier (e.g., URL, entity ID) */
11
+ key: string;
12
+ /** Strategy data (regex patterns, selectors, etc.) */
13
+ value: any;
14
+ /** Additional metadata */
15
+ metadata?: NoteMetadata;
16
+ /** Confidence score (0.0 to 1.0) */
17
+ confidence?: number;
18
+ /** Strategy version number */
19
+ version?: number;
20
+ /** Expiration date */
21
+ expiresAt?: Date;
22
+ }
23
+ /**
24
+ * Note metadata structure
25
+ * Optimized for storing AI-learned strategies
26
+ */
27
+ export interface NoteMetadata {
28
+ /** AI provider used for learning */
29
+ aiProvider?: string;
30
+ /** AI model used */
31
+ aiModel?: string;
32
+ /** Original AI confidence */
33
+ aiConfidence?: number;
34
+ /** Regex patterns */
35
+ patterns?: string[];
36
+ /** CSS selectors */
37
+ selectors?: string[];
38
+ /** Expected result count */
39
+ expectedCount?: number;
40
+ /** Hash of page HTML for change detection */
41
+ pageHash?: string;
42
+ /** Tags for categorization */
43
+ tags?: string[];
44
+ /** Importance score */
45
+ importance?: number;
46
+ /** Source of the strategy */
47
+ source?: string;
48
+ /** Version this replaces */
49
+ replacesVersion?: number;
50
+ /** Whether human reviewed */
51
+ humanReviewed?: boolean;
52
+ /** Reviewer identifier */
53
+ reviewedBy?: string;
54
+ /** Review notes */
55
+ reviewNotes?: string;
56
+ /** Allow any other properties */
57
+ [key: string]: any;
58
+ }
59
+ /**
60
+ * Options for recalling notes
61
+ */
62
+ export interface RecallOptions {
63
+ /** Scope to search in */
64
+ scope: string;
65
+ /** Key to search for */
66
+ key: string;
67
+ /** Search parent scopes if not found */
68
+ includeAncestors?: boolean;
69
+ /** Search child scopes */
70
+ includeDescendants?: boolean;
71
+ /** Minimum confidence threshold */
72
+ minConfidence?: number;
73
+ /** Only return highest version */
74
+ latestVersionOnly?: boolean;
75
+ }
76
+ /**
77
+ * Options for recalling multiple notes
78
+ */
79
+ export interface RecallAllOptions {
80
+ /** Scope to search in (optional) */
81
+ scope?: string;
82
+ /** Search child scopes */
83
+ includeDescendants?: boolean;
84
+ /** Minimum confidence threshold */
85
+ minConfidence?: number;
86
+ /** Only return highest versions */
87
+ latestVersionOnly?: boolean;
88
+ }
89
+ /**
90
+ * Options for forgetting notes
91
+ */
92
+ export interface ForgetOptions {
93
+ /** Scope to delete from */
94
+ scope: string;
95
+ /** Key to delete */
96
+ key: string;
97
+ }
98
+ /**
99
+ * Options for forgetting a scope
100
+ */
101
+ export interface ForgetScopeOptions {
102
+ /** Scope to delete */
103
+ scope: string;
104
+ /** Delete child scopes too */
105
+ includeDescendants?: boolean;
106
+ }
107
+ /**
108
+ * Discovery strategy structure (common use case)
109
+ */
110
+ export interface DiscoveryStrategy {
111
+ /** Regex patterns */
112
+ patterns: string[];
113
+ /** CSS selectors */
114
+ selectors?: string[];
115
+ /** Expected result count */
116
+ expectedCount: number;
117
+ /** Strategy version */
118
+ version: number;
119
+ /** Confidence score */
120
+ confidence: number;
121
+ }
122
+ /**
123
+ * System table configuration
124
+ */
125
+ export interface SystemTableConfig {
126
+ /** Enable signal history persistence */
127
+ persistSignalHistory?: boolean;
128
+ /** Note retention in days */
129
+ noteRetentionDays?: number;
130
+ /** Cleanup interval */
131
+ cleanupInterval?: 'hourly' | 'daily' | 'weekly' | 'never';
132
+ /** Archive confidence threshold */
133
+ archiveThreshold?: number;
134
+ }
135
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/system/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,+DAA+D;IAC/D,KAAK,EAAE,MAAM,CAAC;IACd,mDAAmD;IACnD,GAAG,EAAE,MAAM,CAAC;IACZ,sDAAsD;IACtD,KAAK,EAAE,GAAG,CAAC;IACX,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,oCAAoC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8BAA8B;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sBAAsB;IACtB,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,oCAAoC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oBAAoB;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6BAA6B;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,oBAAoB;IACpB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,4BAA4B;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,uBAAuB;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6BAA6B;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4BAA4B;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,6BAA6B;IAC7B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,0BAA0B;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mBAAmB;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iCAAiC;IACjC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,yBAAyB;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,wBAAwB;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,wCAAwC;IACxC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,0BAA0B;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,mCAAmC;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kCAAkC;IAClC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,oCAAoC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0BAA0B;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,mCAAmC;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mCAAmC;IACnC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,sBAAsB;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,8BAA8B;IAC9B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,qBAAqB;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,oBAAoB;IACpB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,4BAA4B;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,uBAAuB;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,uBAAuB;IACvB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,wCAAwC;IACxC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,6BAA6B;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uBAAuB;IACvB,eAAe,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC1D,mCAAmC;IACnC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Canonical SMRT system fields inherited from `SmrtObject`.
3
+ *
4
+ * These fields exist on every persistent object at runtime even when they are
5
+ * not declared in a child class manifest. Keep this definition lightweight:
6
+ * presence matters for metadata consumers, while schema generation still owns
7
+ * the exact SQL defaults and constraints for these columns.
8
+ */
9
+ export declare const SMRT_SYSTEM_FIELDS: Readonly<{
10
+ id: Readonly<{
11
+ type: "text";
12
+ _meta: Readonly<{
13
+ __smrtSystemField: true;
14
+ }>;
15
+ }>;
16
+ slug: Readonly<{
17
+ type: "text";
18
+ _meta: Readonly<{
19
+ __smrtSystemField: true;
20
+ }>;
21
+ }>;
22
+ context: Readonly<{
23
+ type: "text";
24
+ _meta: Readonly<{
25
+ __smrtSystemField: true;
26
+ }>;
27
+ }>;
28
+ created_at: Readonly<{
29
+ type: "datetime";
30
+ _meta: Readonly<{
31
+ __smrtSystemField: true;
32
+ }>;
33
+ }>;
34
+ updated_at: Readonly<{
35
+ type: "datetime";
36
+ _meta: Readonly<{
37
+ __smrtSystemField: true;
38
+ }>;
39
+ }>;
40
+ }>;
41
+ export declare function isInjectedSmrtSystemField(field: any): boolean;
42
+ export declare function cloneSmrtSystemFields(): Record<string, any>;
43
+ export declare function prependSmrtSystemFields(fields: Map<string, any>): Map<string, any>;
44
+ //# sourceMappingURL=system-fields.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system-fields.d.ts","sourceRoot":"","sources":["../src/system-fields.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqB7B,CAAC;AAEH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAE7D;AAED,wBAAgB,qBAAqB,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAW3D;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,GACvB,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAelB"}
@@ -0,0 +1,55 @@
1
+ const SMRT_SYSTEM_FIELDS = Object.freeze({
2
+ id: Object.freeze({
3
+ type: "text",
4
+ _meta: Object.freeze({ __smrtSystemField: true })
5
+ }),
6
+ slug: Object.freeze({
7
+ type: "text",
8
+ _meta: Object.freeze({ __smrtSystemField: true })
9
+ }),
10
+ context: Object.freeze({
11
+ type: "text",
12
+ _meta: Object.freeze({ __smrtSystemField: true })
13
+ }),
14
+ created_at: Object.freeze({
15
+ type: "datetime",
16
+ _meta: Object.freeze({ __smrtSystemField: true })
17
+ }),
18
+ updated_at: Object.freeze({
19
+ type: "datetime",
20
+ _meta: Object.freeze({ __smrtSystemField: true })
21
+ })
22
+ });
23
+ function isInjectedSmrtSystemField(field) {
24
+ return Boolean(field?._meta?.__smrtSystemField);
25
+ }
26
+ function cloneSmrtSystemFields() {
27
+ const fields = {};
28
+ for (const [fieldName, fieldDef] of Object.entries(SMRT_SYSTEM_FIELDS)) {
29
+ fields[fieldName] = {
30
+ ...fieldDef,
31
+ _meta: { ...fieldDef._meta || {} }
32
+ };
33
+ }
34
+ return fields;
35
+ }
36
+ function prependSmrtSystemFields(fields) {
37
+ const merged = /* @__PURE__ */ new Map();
38
+ for (const [fieldName, fieldDef] of Object.entries(cloneSmrtSystemFields())) {
39
+ merged.set(fieldName, fieldDef);
40
+ }
41
+ for (const [fieldName, fieldDef] of fields.entries()) {
42
+ if (isInjectedSmrtSystemField(fieldDef) && merged.has(fieldName)) {
43
+ continue;
44
+ }
45
+ merged.set(fieldName, fieldDef);
46
+ }
47
+ return merged;
48
+ }
49
+ export {
50
+ SMRT_SYSTEM_FIELDS,
51
+ cloneSmrtSystemFields,
52
+ isInjectedSmrtSystemField,
53
+ prependSmrtSystemFields
54
+ };
55
+ //# sourceMappingURL=system-fields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system-fields.js","sources":["../src/system-fields.ts"],"sourcesContent":["/**\n * Canonical SMRT system fields inherited from `SmrtObject`.\n *\n * These fields exist on every persistent object at runtime even when they are\n * not declared in a child class manifest. Keep this definition lightweight:\n * presence matters for metadata consumers, while schema generation still owns\n * the exact SQL defaults and constraints for these columns.\n */\n\nexport const SMRT_SYSTEM_FIELDS = Object.freeze({\n id: Object.freeze({\n type: 'text',\n _meta: Object.freeze({ __smrtSystemField: true }),\n }),\n slug: Object.freeze({\n type: 'text',\n _meta: Object.freeze({ __smrtSystemField: true }),\n }),\n context: Object.freeze({\n type: 'text',\n _meta: Object.freeze({ __smrtSystemField: true }),\n }),\n created_at: Object.freeze({\n type: 'datetime',\n _meta: Object.freeze({ __smrtSystemField: true }),\n }),\n updated_at: Object.freeze({\n type: 'datetime',\n _meta: Object.freeze({ __smrtSystemField: true }),\n }),\n});\n\nexport function isInjectedSmrtSystemField(field: any): boolean {\n return Boolean(field?._meta?.__smrtSystemField);\n}\n\nexport function cloneSmrtSystemFields(): Record<string, any> {\n const fields: Record<string, any> = {};\n\n for (const [fieldName, fieldDef] of Object.entries(SMRT_SYSTEM_FIELDS)) {\n fields[fieldName] = {\n ...fieldDef,\n _meta: { ...(fieldDef._meta || {}) },\n };\n }\n\n return fields;\n}\n\nexport function prependSmrtSystemFields(\n fields: Map<string, any>,\n): Map<string, any> {\n const merged = new Map<string, any>();\n\n for (const [fieldName, fieldDef] of Object.entries(cloneSmrtSystemFields())) {\n merged.set(fieldName, fieldDef);\n }\n\n for (const [fieldName, fieldDef] of fields.entries()) {\n if (isInjectedSmrtSystemField(fieldDef) && merged.has(fieldName)) {\n continue;\n }\n merged.set(fieldName, fieldDef);\n }\n\n return merged;\n}\n"],"names":[],"mappings":"AASO,MAAM,qBAAqB,OAAO,OAAO;AAAA,EAC9C,IAAI,OAAO,OAAO;AAAA,IAChB,MAAM;AAAA,IACN,OAAO,OAAO,OAAO,EAAE,mBAAmB,MAAM;AAAA,EAAA,CACjD;AAAA,EACD,MAAM,OAAO,OAAO;AAAA,IAClB,MAAM;AAAA,IACN,OAAO,OAAO,OAAO,EAAE,mBAAmB,MAAM;AAAA,EAAA,CACjD;AAAA,EACD,SAAS,OAAO,OAAO;AAAA,IACrB,MAAM;AAAA,IACN,OAAO,OAAO,OAAO,EAAE,mBAAmB,MAAM;AAAA,EAAA,CACjD;AAAA,EACD,YAAY,OAAO,OAAO;AAAA,IACxB,MAAM;AAAA,IACN,OAAO,OAAO,OAAO,EAAE,mBAAmB,MAAM;AAAA,EAAA,CACjD;AAAA,EACD,YAAY,OAAO,OAAO;AAAA,IACxB,MAAM;AAAA,IACN,OAAO,OAAO,OAAO,EAAE,mBAAmB,MAAM;AAAA,EAAA,CACjD;AACH,CAAC;AAEM,SAAS,0BAA0B,OAAqB;AAC7D,SAAO,QAAQ,OAAO,OAAO,iBAAiB;AAChD;AAEO,SAAS,wBAA6C;AAC3D,QAAM,SAA8B,CAAA;AAEpC,aAAW,CAAC,WAAW,QAAQ,KAAK,OAAO,QAAQ,kBAAkB,GAAG;AACtE,WAAO,SAAS,IAAI;AAAA,MAClB,GAAG;AAAA,MACH,OAAO,EAAE,GAAI,SAAS,SAAS,CAAA,EAAC;AAAA,IAAG;AAAA,EAEvC;AAEA,SAAO;AACT;AAEO,SAAS,wBACd,QACkB;AAClB,QAAM,6BAAa,IAAA;AAEnB,aAAW,CAAC,WAAW,QAAQ,KAAK,OAAO,QAAQ,sBAAA,CAAuB,GAAG;AAC3E,WAAO,IAAI,WAAW,QAAQ;AAAA,EAChC;AAEA,aAAW,CAAC,WAAW,QAAQ,KAAK,OAAO,WAAW;AACpD,QAAI,0BAA0B,QAAQ,KAAK,OAAO,IAAI,SAAS,GAAG;AAChE;AAAA,IACF;AACA,WAAO,IAAI,WAAW,QAAQ;AAAA,EAChC;AAEA,SAAO;AACT;"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Cache for verified table existence checks.
3
+ *
4
+ * Prevents redundant `tableExists()` round-trips in `Collection.create()` and
5
+ * `SmrtObject.save()`. On high-latency connections (e.g. Postgres over Tailscale),
6
+ * each check adds ~100ms — this eliminates all but the first check per table per DB.
7
+ *
8
+ * Scoped per database URL to prevent cross-database contamination in multi-DB
9
+ * scenarios. For :memory: and JSON databases (which share URLs), the cache can
10
+ * be cleared via `resetVerifiedTables()` in test setup.
11
+ *
12
+ * @see https://github.com/happyvertical/smrt/issues/970
13
+ * @packageDocumentation
14
+ */
15
+ /**
16
+ * Check if a table has been verified for a given database.
17
+ */
18
+ export declare function isTableVerified(dbUrl: string, tableName: string): boolean;
19
+ /**
20
+ * Mark a table as verified for a given database.
21
+ */
22
+ export declare function markTableVerified(dbUrl: string, tableName: string): void;
23
+ /**
24
+ * Clear all verified table caches.
25
+ * Call this in test setup to ensure isolation between test files.
26
+ */
27
+ export declare function resetVerifiedTables(): void;
28
+ //# sourceMappingURL=table-cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-cache.d.ts","sourceRoot":"","sources":["../src/table-cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAQH;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAEzE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAOxE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C"}
@@ -0,0 +1,21 @@
1
+ const verifiedTablesByUrl = /* @__PURE__ */ new Map();
2
+ function isTableVerified(dbUrl, tableName) {
3
+ return verifiedTablesByUrl.get(dbUrl)?.has(tableName) ?? false;
4
+ }
5
+ function markTableVerified(dbUrl, tableName) {
6
+ let tables = verifiedTablesByUrl.get(dbUrl);
7
+ if (!tables) {
8
+ tables = /* @__PURE__ */ new Set();
9
+ verifiedTablesByUrl.set(dbUrl, tables);
10
+ }
11
+ tables.add(tableName);
12
+ }
13
+ function resetVerifiedTables() {
14
+ verifiedTablesByUrl.clear();
15
+ }
16
+ export {
17
+ isTableVerified,
18
+ markTableVerified,
19
+ resetVerifiedTables
20
+ };
21
+ //# sourceMappingURL=table-cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-cache.js","sources":["../src/table-cache.ts"],"sourcesContent":["/**\n * Cache for verified table existence checks.\n *\n * Prevents redundant `tableExists()` round-trips in `Collection.create()` and\n * `SmrtObject.save()`. On high-latency connections (e.g. Postgres over Tailscale),\n * each check adds ~100ms — this eliminates all but the first check per table per DB.\n *\n * Scoped per database URL to prevent cross-database contamination in multi-DB\n * scenarios. For :memory: and JSON databases (which share URLs), the cache can\n * be cleared via `resetVerifiedTables()` in test setup.\n *\n * @see https://github.com/happyvertical/smrt/issues/970\n * @packageDocumentation\n */\n\n/**\n * Map of dbUrl → Set<tableName>.\n * Keyed by table name (not class name) so STI classes sharing a table only check once.\n */\nconst verifiedTablesByUrl = new Map<string, Set<string>>();\n\n/**\n * Check if a table has been verified for a given database.\n */\nexport function isTableVerified(dbUrl: string, tableName: string): boolean {\n return verifiedTablesByUrl.get(dbUrl)?.has(tableName) ?? false;\n}\n\n/**\n * Mark a table as verified for a given database.\n */\nexport function markTableVerified(dbUrl: string, tableName: string): void {\n let tables = verifiedTablesByUrl.get(dbUrl);\n if (!tables) {\n tables = new Set();\n verifiedTablesByUrl.set(dbUrl, tables);\n }\n tables.add(tableName);\n}\n\n/**\n * Clear all verified table caches.\n * Call this in test setup to ensure isolation between test files.\n */\nexport function resetVerifiedTables(): void {\n verifiedTablesByUrl.clear();\n}\n"],"names":[],"mappings":"AAmBA,MAAM,0CAA0B,IAAA;AAKzB,SAAS,gBAAgB,OAAe,WAA4B;AACzE,SAAO,oBAAoB,IAAI,KAAK,GAAG,IAAI,SAAS,KAAK;AAC3D;AAKO,SAAS,kBAAkB,OAAe,WAAyB;AACxE,MAAI,SAAS,oBAAoB,IAAI,KAAK;AAC1C,MAAI,CAAC,QAAQ;AACX,iCAAa,IAAA;AACb,wBAAoB,IAAI,OAAO,MAAM;AAAA,EACvC;AACA,SAAO,IAAI,SAAS;AACtB;AAMO,SAAS,sBAA4B;AAC1C,sBAAoB,MAAA;AACtB;"}