@syntrologie/runtime-sdk 2.1.0 → 2.2.0-canary.2

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 (356) hide show
  1. package/CAPABILITIES.md +50 -43
  2. package/README.md +7 -7
  3. package/dist/RuntimeProvider.d.ts +1 -1
  4. package/dist/ShadowRootContext.d.ts +19 -0
  5. package/dist/SmartCanvasApp.d.ts +3 -3
  6. package/dist/SmartCanvasElement.d.ts +7 -2
  7. package/dist/SmartCanvasPortal.d.ts +1 -1
  8. package/dist/actions/executors/index.d.ts +3 -3
  9. package/dist/actions/executors/tour.d.ts +1 -1
  10. package/dist/actions/index.d.ts +4 -3
  11. package/dist/actions/schema.d.ts +1229 -0
  12. package/dist/actions/schema.js +67 -0
  13. package/dist/actions/schema.js.map +7 -0
  14. package/dist/adaptives/adaptive-chatbot/index.js +4 -4
  15. package/dist/adaptives/adaptive-chatbot/index.js.map +4 -4
  16. package/dist/adaptives/adaptive-content/index.js +2 -2
  17. package/dist/adaptives/adaptive-content/index.js.map +4 -4
  18. package/dist/adaptives/adaptive-faq/index.js +23 -6
  19. package/dist/adaptives/adaptive-faq/index.js.map +4 -4
  20. package/dist/adaptives/adaptive-gamification/index.js.map +1 -1
  21. package/dist/adaptives/adaptive-nav/index.js +22 -7
  22. package/dist/adaptives/adaptive-nav/index.js.map +4 -4
  23. package/dist/adaptives/adaptive-overlays/index.js +13 -13
  24. package/dist/adaptives/adaptive-overlays/index.js.map +4 -4
  25. package/dist/api.d.ts +2 -2
  26. package/dist/apps/examples/gamification-app.example.d.ts +4 -4
  27. package/dist/apps/index.d.ts +7 -7
  28. package/dist/blocks/data/index.d.ts +1 -1
  29. package/dist/blocks/index.d.ts +2 -2
  30. package/dist/blocks/interactive/index.d.ts +1 -1
  31. package/dist/blocks/notification/NotificationBlock.d.ts +1 -1
  32. package/dist/blocks/notification/index.d.ts +1 -1
  33. package/dist/bootstrap.d.ts +4 -4
  34. package/dist/chunk-AYTRRBR5.js +251 -0
  35. package/dist/chunk-AYTRRBR5.js.map +7 -0
  36. package/dist/chunk-CU354JTM.js +7921 -0
  37. package/dist/chunk-CU354JTM.js.map +7 -0
  38. package/dist/components/ShadowCanvasOverlay.d.ts +2 -2
  39. package/dist/components/TileCard.d.ts +1 -1
  40. package/dist/context/ContextManager.d.ts +1 -1
  41. package/dist/context/index.d.ts +3 -3
  42. package/dist/decisions/engine.d.ts +1 -1
  43. package/dist/decisions/index.d.ts +3 -3
  44. package/dist/decisions/schema.d.ts +24 -24
  45. package/dist/decisions/strategies/rules.d.ts +1 -1
  46. package/dist/decisions/strategies/score.d.ts +1 -1
  47. package/dist/editorLoader.d.ts +4 -4
  48. package/dist/events/EventAccumulator.d.ts +1 -1
  49. package/dist/events/EventBus.d.ts +1 -1
  50. package/dist/events/index.d.ts +7 -6
  51. package/dist/events/registerConfigPredicates.d.ts +19 -0
  52. package/dist/experiments/adapters/growthbook.d.ts +1 -1
  53. package/dist/experiments/index.d.ts +2 -2
  54. package/dist/experiments/registry.d.ts +1 -1
  55. package/dist/fetchers/index.d.ts +2 -2
  56. package/dist/hooks/useShadowCanvasConfig.d.ts +1 -1
  57. package/dist/hostPatcher/index.d.ts +2 -2
  58. package/dist/index.d.ts +24 -21
  59. package/dist/index.js +816 -75
  60. package/dist/index.js.map +7 -1
  61. package/dist/metrics/index.d.ts +1 -1
  62. package/dist/notifications/index.d.ts +6 -6
  63. package/dist/overlays/runtime/index.d.ts +3 -3
  64. package/dist/overlays/runtime/overlay/root.d.ts +17 -1
  65. package/dist/overlays/runtime/overlay/tooltip.d.ts +1 -1
  66. package/dist/react.js +90 -134
  67. package/dist/react.js.map +7 -1
  68. package/dist/render/RenderContext.d.ts +2 -2
  69. package/dist/render/index.d.ts +2 -2
  70. package/dist/render/types.d.ts +2 -2
  71. package/dist/runtime.d.ts +8 -8
  72. package/dist/smart-canvas.esm.js +127 -124
  73. package/dist/smart-canvas.esm.js.map +4 -4
  74. package/dist/smart-canvas.js +17160 -16782
  75. package/dist/smart-canvas.js.map +4 -4
  76. package/dist/smart-canvas.min.js +127 -124
  77. package/dist/smart-canvas.min.js.map +4 -4
  78. package/dist/state/StateStore.d.ts +1 -1
  79. package/dist/state/helpers/cooldowns.d.ts +1 -1
  80. package/dist/state/helpers/dismissals.d.ts +1 -1
  81. package/dist/state/helpers/frequency.d.ts +1 -1
  82. package/dist/state/index.d.ts +3 -3
  83. package/dist/surfaces/index.d.ts +3 -3
  84. package/dist/surfaces/positioning.d.ts +1 -1
  85. package/dist/telemetry/adapters/posthog.d.ts +2 -2
  86. package/dist/telemetry/index.d.ts +3 -3
  87. package/dist/telemetry/registry.d.ts +1 -1
  88. package/dist/theme/ThemeProvider.d.ts +1 -1
  89. package/dist/theme/extractHostTheme.d.ts +1 -1
  90. package/dist/theme/index.d.ts +4 -4
  91. package/dist/types-only.d.ts +1 -1
  92. package/dist/types-only.js +1 -11
  93. package/dist/types-only.js.map +7 -1
  94. package/dist/types.d.ts +1 -1
  95. package/dist/version.d.ts +1 -1
  96. package/dist/widgets/index.d.ts +1 -1
  97. package/package.json +24 -17
  98. package/schema/canvas-config.base.schema.json +351 -0
  99. package/schema/canvas-config.schema.json +3202 -440
  100. package/scripts/validate-config.mjs +54 -58
  101. package/dist/RuntimeProvider.js +0 -113
  102. package/dist/RuntimeProvider.js.map +0 -1
  103. package/dist/SmartCanvasApp.js +0 -143
  104. package/dist/SmartCanvasApp.js.map +0 -1
  105. package/dist/SmartCanvasElement.js +0 -138
  106. package/dist/SmartCanvasElement.js.map +0 -1
  107. package/dist/SmartCanvasPortal.js +0 -17
  108. package/dist/SmartCanvasPortal.js.map +0 -1
  109. package/dist/actions/ActionEngine.js +0 -272
  110. package/dist/actions/ActionEngine.js.map +0 -1
  111. package/dist/actions/executors/index.js +0 -240
  112. package/dist/actions/executors/index.js.map +0 -1
  113. package/dist/actions/executors/tour.js +0 -332
  114. package/dist/actions/executors/tour.js.map +0 -1
  115. package/dist/actions/index.js +0 -12
  116. package/dist/actions/index.js.map +0 -1
  117. package/dist/actions/types.js +0 -8
  118. package/dist/actions/types.js.map +0 -1
  119. package/dist/actions/validation.js +0 -577
  120. package/dist/actions/validation.js.map +0 -1
  121. package/dist/antiFlicker.js +0 -39
  122. package/dist/antiFlicker.js.map +0 -1
  123. package/dist/api.js +0 -205
  124. package/dist/api.js.map +0 -1
  125. package/dist/apps/AppContext.js +0 -91
  126. package/dist/apps/AppContext.js.map +0 -1
  127. package/dist/apps/AppLoader.js +0 -293
  128. package/dist/apps/AppLoader.js.map +0 -1
  129. package/dist/apps/AppRegistry.js +0 -317
  130. package/dist/apps/AppRegistry.js.map +0 -1
  131. package/dist/apps/examples/gamification-app.example.js +0 -329
  132. package/dist/apps/examples/gamification-app.example.js.map +0 -1
  133. package/dist/apps/index.js +0 -16
  134. package/dist/apps/index.js.map +0 -1
  135. package/dist/apps/types.js +0 -8
  136. package/dist/apps/types.js.map +0 -1
  137. package/dist/blocks/data/ComparisonBlock.js +0 -95
  138. package/dist/blocks/data/ComparisonBlock.js.map +0 -1
  139. package/dist/blocks/data/StatsBlock.js +0 -102
  140. package/dist/blocks/data/StatsBlock.js.map +0 -1
  141. package/dist/blocks/data/index.js +0 -3
  142. package/dist/blocks/data/index.js.map +0 -1
  143. package/dist/blocks/index.js +0 -93
  144. package/dist/blocks/index.js.map +0 -1
  145. package/dist/blocks/interactive/ChecklistBlock.js +0 -111
  146. package/dist/blocks/interactive/ChecklistBlock.js.map +0 -1
  147. package/dist/blocks/interactive/RatingBlock.js +0 -147
  148. package/dist/blocks/interactive/RatingBlock.js.map +0 -1
  149. package/dist/blocks/interactive/index.js +0 -3
  150. package/dist/blocks/interactive/index.js.map +0 -1
  151. package/dist/blocks/notification/NotificationBlock.js +0 -171
  152. package/dist/blocks/notification/NotificationBlock.js.map +0 -1
  153. package/dist/blocks/notification/index.js +0 -2
  154. package/dist/blocks/notification/index.js.map +0 -1
  155. package/dist/blocks/theme-tokens.js +0 -25
  156. package/dist/blocks/theme-tokens.js.map +0 -1
  157. package/dist/bootstrap.js +0 -448
  158. package/dist/bootstrap.js.map +0 -1
  159. package/dist/bundle-entry.js +0 -9
  160. package/dist/bundle-entry.js.map +0 -1
  161. package/dist/components/ShadowCanvasOverlay.js +0 -327
  162. package/dist/components/ShadowCanvasOverlay.js.map +0 -1
  163. package/dist/components/TileCard.js +0 -103
  164. package/dist/components/TileCard.js.map +0 -1
  165. package/dist/components/TileWheel.js +0 -50
  166. package/dist/components/TileWheel.js.map +0 -1
  167. package/dist/config-validator.js +0 -173
  168. package/dist/config-validator.js.map +0 -1
  169. package/dist/configFetcher.js +0 -131
  170. package/dist/configFetcher.js.map +0 -1
  171. package/dist/context/ContextManager.js +0 -269
  172. package/dist/context/ContextManager.js.map +0 -1
  173. package/dist/context/index.js +0 -7
  174. package/dist/context/index.js.map +0 -1
  175. package/dist/context/schema.js +0 -50
  176. package/dist/context/schema.js.map +0 -1
  177. package/dist/context/types.js +0 -8
  178. package/dist/context/types.js.map +0 -1
  179. package/dist/controller.js +0 -34
  180. package/dist/controller.js.map +0 -1
  181. package/dist/decisions/engine.js +0 -117
  182. package/dist/decisions/engine.js.map +0 -1
  183. package/dist/decisions/index.js +0 -10
  184. package/dist/decisions/index.js.map +0 -1
  185. package/dist/decisions/schema.js +0 -151
  186. package/dist/decisions/schema.js.map +0 -1
  187. package/dist/decisions/strategies/rules.js +0 -166
  188. package/dist/decisions/strategies/rules.js.map +0 -1
  189. package/dist/decisions/strategies/score.js +0 -29
  190. package/dist/decisions/strategies/score.js.map +0 -1
  191. package/dist/decisions/types.js +0 -2
  192. package/dist/decisions/types.js.map +0 -1
  193. package/dist/earlyPatcher.js +0 -20
  194. package/dist/earlyPatcher.js.map +0 -1
  195. package/dist/editorLoader.js +0 -254
  196. package/dist/editorLoader.js.map +0 -1
  197. package/dist/events/EventAccumulator.js +0 -101
  198. package/dist/events/EventAccumulator.js.map +0 -1
  199. package/dist/events/EventBus.js +0 -152
  200. package/dist/events/EventBus.js.map +0 -1
  201. package/dist/events/index.js +0 -11
  202. package/dist/events/index.js.map +0 -1
  203. package/dist/events/normalizers/canvas.js +0 -116
  204. package/dist/events/normalizers/canvas.js.map +0 -1
  205. package/dist/events/normalizers/posthog.js +0 -171
  206. package/dist/events/normalizers/posthog.js.map +0 -1
  207. package/dist/events/schema.js +0 -30
  208. package/dist/events/schema.js.map +0 -1
  209. package/dist/events/types.js +0 -54
  210. package/dist/events/types.js.map +0 -1
  211. package/dist/experiments/adapters/growthbook.js +0 -81
  212. package/dist/experiments/adapters/growthbook.js.map +0 -1
  213. package/dist/experiments/index.js +0 -4
  214. package/dist/experiments/index.js.map +0 -1
  215. package/dist/experiments/registry.js +0 -30
  216. package/dist/experiments/registry.js.map +0 -1
  217. package/dist/experiments/types.js +0 -2
  218. package/dist/experiments/types.js.map +0 -1
  219. package/dist/fetchers/cdnFetcher.js +0 -96
  220. package/dist/fetchers/cdnFetcher.js.map +0 -1
  221. package/dist/fetchers/experimentsFetcher.js +0 -109
  222. package/dist/fetchers/experimentsFetcher.js.map +0 -1
  223. package/dist/fetchers/index.js +0 -5
  224. package/dist/fetchers/index.js.map +0 -1
  225. package/dist/fetchers/mergeConfigs.js +0 -38
  226. package/dist/fetchers/mergeConfigs.js.map +0 -1
  227. package/dist/fetchers/registry.js +0 -58
  228. package/dist/fetchers/registry.js.map +0 -1
  229. package/dist/fetchers/types.js +0 -2
  230. package/dist/fetchers/types.js.map +0 -1
  231. package/dist/hooks/useCanvasOverlays.js +0 -128
  232. package/dist/hooks/useCanvasOverlays.js.map +0 -1
  233. package/dist/hooks/useHostPatches.js +0 -40
  234. package/dist/hooks/useHostPatches.js.map +0 -1
  235. package/dist/hooks/useShadowCanvasConfig.js +0 -63
  236. package/dist/hooks/useShadowCanvasConfig.js.map +0 -1
  237. package/dist/hostPatcher/core/patcher.js +0 -181
  238. package/dist/hostPatcher/core/patcher.js.map +0 -1
  239. package/dist/hostPatcher/core/sanitizer.js +0 -66
  240. package/dist/hostPatcher/core/sanitizer.js.map +0 -1
  241. package/dist/hostPatcher/core/types.js +0 -2
  242. package/dist/hostPatcher/core/types.js.map +0 -1
  243. package/dist/hostPatcher/index.js +0 -7
  244. package/dist/hostPatcher/index.js.map +0 -1
  245. package/dist/hostPatcher/policy/defaultPolicy.js +0 -23
  246. package/dist/hostPatcher/policy/defaultPolicy.js.map +0 -1
  247. package/dist/hostPatcher/utils/anchors.js +0 -105
  248. package/dist/hostPatcher/utils/anchors.js.map +0 -1
  249. package/dist/hostPatcher/utils/observer.js +0 -11
  250. package/dist/hostPatcher/utils/observer.js.map +0 -1
  251. package/dist/logger.js +0 -81
  252. package/dist/logger.js.map +0 -1
  253. package/dist/metrics/index.js +0 -5
  254. package/dist/metrics/index.js.map +0 -1
  255. package/dist/metrics/sessionMetrics.js +0 -178
  256. package/dist/metrics/sessionMetrics.js.map +0 -1
  257. package/dist/notifications/NotificationToastStack.js +0 -118
  258. package/dist/notifications/NotificationToastStack.js.map +0 -1
  259. package/dist/notifications/index.js +0 -6
  260. package/dist/notifications/index.js.map +0 -1
  261. package/dist/notifications/matcher.js +0 -66
  262. package/dist/notifications/matcher.js.map +0 -1
  263. package/dist/notifications/types.js +0 -13
  264. package/dist/notifications/types.js.map +0 -1
  265. package/dist/notifications/useNotifications.js +0 -104
  266. package/dist/notifications/useNotifications.js.map +0 -1
  267. package/dist/notifications/useNotifyWatcher.js +0 -62
  268. package/dist/notifications/useNotifyWatcher.js.map +0 -1
  269. package/dist/overlays/fetcher.js +0 -15
  270. package/dist/overlays/fetcher.js.map +0 -1
  271. package/dist/overlays/recipeRegistry.js +0 -32
  272. package/dist/overlays/recipeRegistry.js.map +0 -1
  273. package/dist/overlays/runtime/anchor/resolve.js +0 -87
  274. package/dist/overlays/runtime/anchor/resolve.js.map +0 -1
  275. package/dist/overlays/runtime/index.js +0 -8
  276. package/dist/overlays/runtime/index.js.map +0 -1
  277. package/dist/overlays/runtime/overlay/highlight.js +0 -160
  278. package/dist/overlays/runtime/overlay/highlight.js.map +0 -1
  279. package/dist/overlays/runtime/overlay/modal.js +0 -78
  280. package/dist/overlays/runtime/overlay/modal.js.map +0 -1
  281. package/dist/overlays/runtime/overlay/root.js +0 -297
  282. package/dist/overlays/runtime/overlay/root.js.map +0 -1
  283. package/dist/overlays/runtime/overlay/runner.js +0 -602
  284. package/dist/overlays/runtime/overlay/runner.js.map +0 -1
  285. package/dist/overlays/runtime/overlay/tooltip.js +0 -232
  286. package/dist/overlays/runtime/overlay/tooltip.js.map +0 -1
  287. package/dist/overlays/runtime/utils/dom.js +0 -12
  288. package/dist/overlays/runtime/utils/dom.js.map +0 -1
  289. package/dist/overlays/schema.js +0 -52
  290. package/dist/overlays/schema.js.map +0 -1
  291. package/dist/overlays/types.js +0 -2
  292. package/dist/overlays/types.js.map +0 -1
  293. package/dist/render/RenderContext.js +0 -69
  294. package/dist/render/RenderContext.js.map +0 -1
  295. package/dist/render/index.js +0 -3
  296. package/dist/render/index.js.map +0 -1
  297. package/dist/render/types.js +0 -2
  298. package/dist/render/types.js.map +0 -1
  299. package/dist/runtime.js +0 -237
  300. package/dist/runtime.js.map +0 -1
  301. package/dist/state/StateStore.js +0 -176
  302. package/dist/state/StateStore.js.map +0 -1
  303. package/dist/state/helpers/cooldowns.js +0 -31
  304. package/dist/state/helpers/cooldowns.js.map +0 -1
  305. package/dist/state/helpers/dismissals.js +0 -34
  306. package/dist/state/helpers/dismissals.js.map +0 -1
  307. package/dist/state/helpers/frequency.js +0 -43
  308. package/dist/state/helpers/frequency.js.map +0 -1
  309. package/dist/state/index.js +0 -7
  310. package/dist/state/index.js.map +0 -1
  311. package/dist/state/schema.js +0 -25
  312. package/dist/state/schema.js.map +0 -1
  313. package/dist/state/types.js +0 -9
  314. package/dist/state/types.js.map +0 -1
  315. package/dist/store/example.js +0 -43
  316. package/dist/store/example.js.map +0 -1
  317. package/dist/store/mini-effector.js +0 -88
  318. package/dist/store/mini-effector.js.map +0 -1
  319. package/dist/surfaces/Surfaces.js +0 -361
  320. package/dist/surfaces/Surfaces.js.map +0 -1
  321. package/dist/surfaces/index.js +0 -12
  322. package/dist/surfaces/index.js.map +0 -1
  323. package/dist/surfaces/positioning.js +0 -228
  324. package/dist/surfaces/positioning.js.map +0 -1
  325. package/dist/surfaces/types.js +0 -23
  326. package/dist/surfaces/types.js.map +0 -1
  327. package/dist/telemetry/adapters/noop.js +0 -42
  328. package/dist/telemetry/adapters/noop.js.map +0 -1
  329. package/dist/telemetry/adapters/posthog.js +0 -180
  330. package/dist/telemetry/adapters/posthog.js.map +0 -1
  331. package/dist/telemetry/index.js +0 -4
  332. package/dist/telemetry/index.js.map +0 -1
  333. package/dist/telemetry/registry.js +0 -29
  334. package/dist/telemetry/registry.js.map +0 -1
  335. package/dist/telemetry/types.js +0 -2
  336. package/dist/telemetry/types.js.map +0 -1
  337. package/dist/theme/ThemeProvider.js +0 -109
  338. package/dist/theme/ThemeProvider.js.map +0 -1
  339. package/dist/theme/defaultTheme.js +0 -190
  340. package/dist/theme/defaultTheme.js.map +0 -1
  341. package/dist/theme/extractHostTheme.js +0 -259
  342. package/dist/theme/extractHostTheme.js.map +0 -1
  343. package/dist/theme/index.js +0 -7
  344. package/dist/theme/index.js.map +0 -1
  345. package/dist/theme/types.js +0 -6
  346. package/dist/theme/types.js.map +0 -1
  347. package/dist/token.js +0 -44
  348. package/dist/token.js.map +0 -1
  349. package/dist/types.js +0 -17
  350. package/dist/types.js.map +0 -1
  351. package/dist/version.js +0 -14
  352. package/dist/version.js.map +0 -1
  353. package/dist/widgets/WidgetRegistry.js +0 -190
  354. package/dist/widgets/WidgetRegistry.js.map +0 -1
  355. package/dist/widgets/index.js +0 -7
  356. package/dist/widgets/index.js.map +0 -1
@@ -1,8 +0,0 @@
1
- /**
2
- * Runtime Context Types
3
- *
4
- * The RuntimeContext represents the current state of the page, session, viewport,
5
- * and other environmental factors that can be used for adaptive decision-making.
6
- */
7
- export {};
8
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/context/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -1,34 +0,0 @@
1
- export class SmartCanvasController {
2
- constructor(initial) {
3
- var _a;
4
- this.listeners = new Set();
5
- this.state = {
6
- open: (_a = initial === null || initial === void 0 ? void 0 : initial.open) !== null && _a !== void 0 ? _a : false,
7
- };
8
- }
9
- getState() {
10
- return this.state;
11
- }
12
- subscribe(listener) {
13
- this.listeners.add(listener);
14
- return () => {
15
- this.listeners.delete(listener);
16
- };
17
- }
18
- setOpen(open) {
19
- if (this.state.open === open)
20
- return;
21
- this.state = { ...this.state, open };
22
- this.emit();
23
- }
24
- toggle() {
25
- this.setOpen(!this.state.open);
26
- }
27
- emit() {
28
- for (const listener of this.listeners) {
29
- listener(this.state);
30
- }
31
- }
32
- }
33
- export const createSmartCanvasController = (initial) => new SmartCanvasController(initial);
34
- //# sourceMappingURL=controller.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"controller.js","sourceRoot":"","sources":["../src/controller.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,qBAAqB;IAIhC,YAAY,OAAmC;;QAFvC,cAAS,GAAG,IAAI,GAAG,EAAuB,CAAC;QAGjD,IAAI,CAAC,KAAK,GAAG;YACX,IAAI,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,mCAAI,KAAK;SAC7B,CAAC;IACJ,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,SAAS,CAAC,QAA6B;QACrC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7B,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,IAAa;QACnB,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI;YAAE,OAAO;QACrC,IAAI,CAAC,KAAK,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;QACrC,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAEO,IAAI;QACV,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;CACF;AAED,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,OAAmC,EAAE,EAAE,CACjF,IAAI,qBAAqB,CAAC,OAAO,CAAC,CAAC"}
@@ -1,117 +0,0 @@
1
- import { evaluateRuleStrategy } from './strategies/rules';
2
- import { evaluateScoreStrategy } from './strategies/score';
3
- /**
4
- * Create an EvaluationContext from runtime components.
5
- */
6
- function createEvaluationContext(context, options) {
7
- const { state, events, sessionMetrics, accumulator } = options;
8
- return {
9
- context,
10
- state: state
11
- ? {
12
- isDismissed: (key) => state.dismissals.isDismissed(key),
13
- isCooldownActive: (key) => state.cooldowns.isActive(key),
14
- getFrequencyCount: (key) => state.frequency.count(key),
15
- getSessionMetric: (key) => { var _a; return (_a = sessionMetrics === null || sessionMetrics === void 0 ? void 0 : sessionMetrics.get(key)) !== null && _a !== void 0 ? _a : 0; },
16
- }
17
- : undefined,
18
- events: events
19
- ? {
20
- hasRecentEvent: (eventName, withinMs) => events.hasRecentEvent(eventName, withinMs),
21
- }
22
- : undefined,
23
- accumulator: accumulator
24
- ? {
25
- getCount: (key, withinMs) => accumulator.getCount(key, withinMs),
26
- }
27
- : undefined,
28
- };
29
- }
30
- /**
31
- * Evaluate a DecisionStrategy against the current context.
32
- *
33
- * @param strategy - The decision strategy to evaluate
34
- * @param context - The runtime context
35
- * @param options - Additional evaluation options
36
- * @returns The decision result
37
- */
38
- export async function evaluate(strategy, context, options = {}) {
39
- const evalContext = createEvaluationContext(context, options);
40
- switch (strategy.type) {
41
- case 'rules':
42
- return evaluateRuleStrategy(strategy, evalContext);
43
- case 'score':
44
- return evaluateScoreStrategy(strategy, evalContext);
45
- case 'model':
46
- // Phase 3: Model-based strategy
47
- // For now, return default
48
- return {
49
- value: strategy.default,
50
- isFallback: true,
51
- matchInfo: {
52
- strategyType: 'model',
53
- },
54
- };
55
- case 'external':
56
- // Phase 3: External strategy
57
- // For now, return default
58
- return {
59
- value: strategy.default,
60
- isFallback: true,
61
- matchInfo: {
62
- strategyType: 'external',
63
- },
64
- };
65
- default:
66
- // Unknown strategy type
67
- console.warn('[DecisionEngine] Unknown strategy type:', strategy.type);
68
- return {
69
- value: undefined,
70
- isFallback: true,
71
- matchInfo: {
72
- strategyType: strategy.type,
73
- },
74
- };
75
- }
76
- }
77
- /**
78
- * Synchronous version of evaluate for simple strategies.
79
- * Use this when you know the strategy doesn't require async operations.
80
- */
81
- export function evaluateSync(strategy, context, options = {}) {
82
- const evalContext = createEvaluationContext(context, options);
83
- switch (strategy.type) {
84
- case 'rules':
85
- return evaluateRuleStrategy(strategy, evalContext);
86
- case 'score':
87
- return evaluateScoreStrategy(strategy, evalContext);
88
- case 'model':
89
- case 'external':
90
- // These require async, return default
91
- return {
92
- value: strategy.default,
93
- isFallback: true,
94
- matchInfo: {
95
- strategyType: strategy.type,
96
- },
97
- };
98
- default:
99
- return {
100
- value: undefined,
101
- isFallback: true,
102
- matchInfo: {
103
- strategyType: strategy.type,
104
- },
105
- };
106
- }
107
- }
108
- /**
109
- * Create a decision engine with pre-bound options.
110
- */
111
- export function createDecisionEngine(options) {
112
- return {
113
- evaluate: (strategy, context) => evaluate(strategy, context, options),
114
- evaluateSync: (strategy, context) => evaluateSync(strategy, context, options),
115
- };
116
- }
117
- //# sourceMappingURL=engine.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/decisions/engine.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAyB3D;;GAEG;AACH,SAAS,uBAAuB,CAC9B,OAAuB,EACvB,OAAwB;IAExB,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAE/D,OAAO;QACL,OAAO;QACP,KAAK,EAAE,KAAK;YACV,CAAC,CAAC;gBACE,WAAW,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC;gBAC/D,gBAAgB,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAChE,iBAAiB,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC;gBAC9D,gBAAgB,EAAE,CAAC,GAAW,EAAE,EAAE,WAAC,OAAA,MAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,GAAG,CAAC,GAAG,CAAC,mCAAI,CAAC,CAAA,EAAA;aACjE;YACH,CAAC,CAAC,SAAS;QACb,MAAM,EAAE,MAAM;YACZ,CAAC,CAAC;gBACE,cAAc,EAAE,CAAC,SAAiB,EAAE,QAAgB,EAAE,EAAE,CACtD,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,QAAQ,CAAC;aAC7C;YACH,CAAC,CAAC,SAAS;QACb,WAAW,EAAE,WAAW;YACtB,CAAC,CAAC;gBACE,QAAQ,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;aACjE;YACH,CAAC,CAAC,SAAS;KACd,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,QAA6B,EAC7B,OAAuB,EACvB,UAA2B,EAAE;IAE7B,MAAM,WAAW,GAAG,uBAAuB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAE9D,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtB,KAAK,OAAO;YACV,OAAO,oBAAoB,CAAC,QAA2B,EAAE,WAAW,CAAC,CAAC;QAExE,KAAK,OAAO;YACV,OAAO,qBAAqB,CAAC,QAA4B,EAAE,WAAW,CAAC,CAAC;QAE1E,KAAK,OAAO;YACV,gCAAgC;YAChC,0BAA0B;YAC1B,OAAO;gBACL,KAAK,EAAG,QAA6B,CAAC,OAAY;gBAClD,UAAU,EAAE,IAAI;gBAChB,SAAS,EAAE;oBACT,YAAY,EAAE,OAAO;iBACtB;aACF,CAAC;QAEJ,KAAK,UAAU;YACb,6BAA6B;YAC7B,0BAA0B;YAC1B,OAAO;gBACL,KAAK,EAAG,QAAgC,CAAC,OAAY;gBACrD,UAAU,EAAE,IAAI;gBAChB,SAAS,EAAE;oBACT,YAAY,EAAE,UAAU;iBACzB;aACF,CAAC;QAEJ;YACE,wBAAwB;YACxB,OAAO,CAAC,IAAI,CAAC,yCAAyC,EAAG,QAAgB,CAAC,IAAI,CAAC,CAAC;YAChF,OAAO;gBACL,KAAK,EAAE,SAAc;gBACrB,UAAU,EAAE,IAAI;gBAChB,SAAS,EAAE;oBACT,YAAY,EAAG,QAAgB,CAAC,IAAI;iBACrC;aACF,CAAC;IACN,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAC1B,QAA6B,EAC7B,OAAuB,EACvB,UAA2B,EAAE;IAE7B,MAAM,WAAW,GAAG,uBAAuB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAE9D,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtB,KAAK,OAAO;YACV,OAAO,oBAAoB,CAAC,QAA2B,EAAE,WAAW,CAAC,CAAC;QAExE,KAAK,OAAO;YACV,OAAO,qBAAqB,CAAC,QAA4B,EAAE,WAAW,CAAC,CAAC;QAE1E,KAAK,OAAO,CAAC;QACb,KAAK,UAAU;YACb,sCAAsC;YACtC,OAAO;gBACL,KAAK,EAAG,QAAmD,CAAC,OAAY;gBACxE,UAAU,EAAE,IAAI;gBAChB,SAAS,EAAE;oBACT,YAAY,EAAE,QAAQ,CAAC,IAAI;iBAC5B;aACF,CAAC;QAEJ;YACE,OAAO;gBACL,KAAK,EAAE,SAAc;gBACrB,UAAU,EAAE,IAAI;gBAChB,SAAS,EAAE;oBACT,YAAY,EAAG,QAAgB,CAAC,IAAI;iBACrC;aACF,CAAC;IACN,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAwB;IAC3D,OAAO;QACL,QAAQ,EAAE,CAAI,QAA6B,EAAE,OAAuB,EAAE,EAAE,CACtE,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC;QACtC,YAAY,EAAE,CAAI,QAA6B,EAAE,OAAuB,EAAE,EAAE,CAC1E,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC;KAC3C,CAAC;AACJ,CAAC"}
@@ -1,10 +0,0 @@
1
- /**
2
- * Decisions module exports.
3
- */
4
- export * from './types';
5
- export * from './schema';
6
- export { evaluate, evaluateSync, createDecisionEngine } from './engine';
7
- // Strategy evaluators (for advanced use)
8
- export { evaluateCondition, evaluateRule, evaluateRuleStrategy } from './strategies/rules';
9
- export { evaluateScoreStrategy } from './strategies/score';
10
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/decisions/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAGxE,yCAAyC;AACzC,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC3F,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -1,151 +0,0 @@
1
- /**
2
- * Zod schemas for decision strategy validation.
3
- */
4
- import { z } from 'zod';
5
- // =============================================================================
6
- // CONDITION SCHEMAS
7
- // =============================================================================
8
- export const PageUrlConditionZ = z.object({
9
- type: z.literal('page_url'),
10
- url: z.string(),
11
- });
12
- export const RouteConditionZ = z.object({
13
- type: z.literal('route'),
14
- routeId: z.string(),
15
- });
16
- export const AnchorVisibleConditionZ = z.object({
17
- type: z.literal('anchor_visible'),
18
- anchorId: z.string(),
19
- state: z.enum(['visible', 'present', 'absent']),
20
- });
21
- export const EventOccurredConditionZ = z.object({
22
- type: z.literal('event_occurred'),
23
- eventName: z.string(),
24
- withinMs: z.number().optional(),
25
- });
26
- export const StateEqualsConditionZ = z.object({
27
- type: z.literal('state_equals'),
28
- key: z.string(),
29
- value: z.unknown(),
30
- });
31
- export const ViewportConditionZ = z.object({
32
- type: z.literal('viewport'),
33
- minWidth: z.number().optional(),
34
- maxWidth: z.number().optional(),
35
- minHeight: z.number().optional(),
36
- maxHeight: z.number().optional(),
37
- });
38
- export const SessionMetricConditionZ = z.object({
39
- type: z.literal('session_metric'),
40
- key: z.string(),
41
- operator: z.enum(['gte', 'lte', 'eq', 'gt', 'lt']),
42
- threshold: z.number(),
43
- });
44
- export const DismissedConditionZ = z.object({
45
- type: z.literal('dismissed'),
46
- key: z.string(),
47
- inverted: z.boolean().optional(),
48
- });
49
- export const CooldownActiveConditionZ = z.object({
50
- type: z.literal('cooldown_active'),
51
- key: z.string(),
52
- inverted: z.boolean().optional(),
53
- });
54
- export const FrequencyLimitConditionZ = z.object({
55
- type: z.literal('frequency_limit'),
56
- key: z.string(),
57
- limit: z.number(),
58
- inverted: z.boolean().optional(),
59
- });
60
- export const EventCountConditionZ = z.object({
61
- type: z.literal('event_count'),
62
- key: z.string(),
63
- operator: z.enum(['gte', 'lte', 'eq', 'gt', 'lt']),
64
- count: z.number().int().min(0),
65
- withinMs: z.number().positive().optional(),
66
- });
67
- export const ConditionZ = z.discriminatedUnion('type', [
68
- PageUrlConditionZ,
69
- RouteConditionZ,
70
- AnchorVisibleConditionZ,
71
- EventOccurredConditionZ,
72
- StateEqualsConditionZ,
73
- ViewportConditionZ,
74
- SessionMetricConditionZ,
75
- DismissedConditionZ,
76
- CooldownActiveConditionZ,
77
- FrequencyLimitConditionZ,
78
- EventCountConditionZ,
79
- ]);
80
- // =============================================================================
81
- // STRATEGY SCHEMAS
82
- // =============================================================================
83
- export const RuleZ = z.object({
84
- conditions: z.array(ConditionZ),
85
- value: z.unknown(),
86
- });
87
- export const RuleStrategyZ = z.object({
88
- type: z.literal('rules'),
89
- rules: z.array(RuleZ),
90
- default: z.unknown(),
91
- });
92
- export const ScoreStrategyZ = z.object({
93
- type: z.literal('score'),
94
- field: z.string(),
95
- threshold: z.number(),
96
- above: z.unknown(),
97
- below: z.unknown(),
98
- });
99
- export const ModelStrategyZ = z.object({
100
- type: z.literal('model'),
101
- modelId: z.string(),
102
- inputs: z.array(z.string()),
103
- outputMapping: z.record(z.string(), z.unknown()),
104
- default: z.unknown(),
105
- });
106
- export const ExternalStrategyZ = z.object({
107
- type: z.literal('external'),
108
- endpoint: z.string(),
109
- method: z.enum(['GET', 'POST']).optional(),
110
- default: z.unknown(),
111
- timeoutMs: z.number().optional(),
112
- });
113
- export const DecisionStrategyZ = z.discriminatedUnion('type', [
114
- RuleStrategyZ,
115
- ScoreStrategyZ,
116
- ModelStrategyZ,
117
- ExternalStrategyZ,
118
- ]);
119
- // =============================================================================
120
- // ACTIVATION CONFIG SCHEMA
121
- // =============================================================================
122
- export const RouteFilterZ = z.object({
123
- include: z.array(z.string()).optional(),
124
- exclude: z.array(z.string()).optional(),
125
- });
126
- export const ActivationConfigZ = z.object({
127
- routes: RouteFilterZ.optional(),
128
- strategy: DecisionStrategyZ.optional(),
129
- });
130
- // =============================================================================
131
- // VALIDATION FUNCTIONS
132
- // =============================================================================
133
- /**
134
- * Validate a Condition object.
135
- */
136
- export function validateCondition(data) {
137
- return ConditionZ.safeParse(data);
138
- }
139
- /**
140
- * Validate a DecisionStrategy object.
141
- */
142
- export function validateStrategy(data) {
143
- return DecisionStrategyZ.safeParse(data);
144
- }
145
- /**
146
- * Validate an ActivationConfig object.
147
- */
148
- export function validateActivationConfig(data) {
149
- return ActivationConfigZ.safeParse(data);
150
- }
151
- //# sourceMappingURL=schema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/decisions/schema.ts"],"names":[],"mappings":"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"}
@@ -1,166 +0,0 @@
1
- /**
2
- * Evaluate a single condition against the evaluation context.
3
- */
4
- export function evaluateCondition(condition, evalContext) {
5
- var _a, _b, _c, _d, _e;
6
- const { context, state, events } = evalContext;
7
- switch (condition.type) {
8
- case 'page_url': {
9
- const { url } = condition;
10
- const currentUrl = context.page.url;
11
- // Simple pattern matching with wildcards
12
- const pattern = url
13
- .replace(/[.+^${}()|[\]\\]/g, '\\$&') // Escape regex chars except * and ?
14
- .replace(/\*\*/g, '.*') // ** matches anything
15
- .replace(/\*/g, '[^/]*'); // * matches within path segment
16
- const regex = new RegExp(`^${pattern}$`);
17
- return regex.test(currentUrl);
18
- }
19
- case 'route': {
20
- return context.page.routeId === condition.routeId;
21
- }
22
- case 'anchor_visible': {
23
- const anchor = (_a = context.anchors) === null || _a === void 0 ? void 0 : _a.find((a) => a.anchorId === condition.anchorId);
24
- switch (condition.state) {
25
- case 'visible':
26
- return (anchor === null || anchor === void 0 ? void 0 : anchor.visible) === true;
27
- case 'present':
28
- return (anchor === null || anchor === void 0 ? void 0 : anchor.present) === true;
29
- case 'absent':
30
- return !(anchor === null || anchor === void 0 ? void 0 : anchor.present);
31
- default:
32
- return false;
33
- }
34
- }
35
- case 'event_occurred': {
36
- if (!events)
37
- return false;
38
- const withinMs = (_b = condition.withinMs) !== null && _b !== void 0 ? _b : 60000; // Default 1 minute
39
- return events.hasRecentEvent(condition.eventName, withinMs);
40
- }
41
- case 'state_equals': {
42
- // This checks arbitrary state values - implementation depends on
43
- // how the state store exposes values. For now, check session storage.
44
- if (!state)
45
- return false;
46
- // The state key format could be "dismissals:xyz" or just "xyz"
47
- // For simplicity, we'll do a basic comparison
48
- return false; // TODO: Implement when state interface is clearer
49
- }
50
- case 'viewport': {
51
- const { width, height } = context.viewport;
52
- if (condition.minWidth !== undefined && width < condition.minWidth)
53
- return false;
54
- if (condition.maxWidth !== undefined && width > condition.maxWidth)
55
- return false;
56
- if (condition.minHeight !== undefined && height < condition.minHeight)
57
- return false;
58
- if (condition.maxHeight !== undefined && height > condition.maxHeight)
59
- return false;
60
- return true;
61
- }
62
- case 'session_metric': {
63
- if (!state)
64
- return false;
65
- const metricValue = state.getSessionMetric(condition.key);
66
- const { operator, threshold } = condition;
67
- switch (operator) {
68
- case 'gte':
69
- return metricValue >= threshold;
70
- case 'lte':
71
- return metricValue <= threshold;
72
- case 'eq':
73
- return metricValue === threshold;
74
- case 'gt':
75
- return metricValue > threshold;
76
- case 'lt':
77
- return metricValue < threshold;
78
- default:
79
- return false;
80
- }
81
- }
82
- case 'dismissed': {
83
- if (!state)
84
- return (_c = condition.inverted) !== null && _c !== void 0 ? _c : false;
85
- const isDismissed = state.isDismissed(condition.key);
86
- return condition.inverted ? !isDismissed : isDismissed;
87
- }
88
- case 'cooldown_active': {
89
- if (!state)
90
- return (_d = condition.inverted) !== null && _d !== void 0 ? _d : false;
91
- const isActive = state.isCooldownActive(condition.key);
92
- return condition.inverted ? !isActive : isActive;
93
- }
94
- case 'frequency_limit': {
95
- if (!state)
96
- return (_e = condition.inverted) !== null && _e !== void 0 ? _e : false;
97
- const count = state.getFrequencyCount(condition.key);
98
- const limitReached = count >= condition.limit;
99
- return condition.inverted ? !limitReached : limitReached;
100
- }
101
- case 'event_count': {
102
- if (!evalContext.accumulator)
103
- return false;
104
- const ec = condition;
105
- const count = evalContext.accumulator.getCount(ec.key, ec.withinMs);
106
- switch (ec.operator) {
107
- case 'gte': return count >= ec.count;
108
- case 'lte': return count <= ec.count;
109
- case 'eq': return count === ec.count;
110
- case 'gt': return count > ec.count;
111
- case 'lt': return count < ec.count;
112
- default: return false;
113
- }
114
- }
115
- default:
116
- // Unknown condition type - fail closed (return false)
117
- console.warn('[RuleStrategy] Unknown condition type:', condition.type);
118
- return false;
119
- }
120
- }
121
- /**
122
- * Evaluate a single rule (all conditions must be true).
123
- */
124
- export function evaluateRule(rule, evalContext) {
125
- const conditionResults = [];
126
- for (const condition of rule.conditions) {
127
- const result = evaluateCondition(condition, evalContext);
128
- conditionResults.push({ condition, result });
129
- // Short-circuit: if any condition fails, rule doesn't match
130
- if (!result) {
131
- return { matched: false, conditionResults };
132
- }
133
- }
134
- // All conditions passed
135
- return { matched: true, conditionResults };
136
- }
137
- /**
138
- * Evaluate a RuleStrategy and return the result.
139
- */
140
- export function evaluateRuleStrategy(strategy, evalContext) {
141
- // Evaluate rules in order
142
- for (let i = 0; i < strategy.rules.length; i++) {
143
- const rule = strategy.rules[i];
144
- const { matched, conditionResults } = evaluateRule(rule, evalContext);
145
- if (matched) {
146
- return {
147
- value: rule.value,
148
- isFallback: false,
149
- matchInfo: {
150
- strategyType: 'rules',
151
- matchedRuleIndex: i,
152
- evaluatedConditions: conditionResults,
153
- },
154
- };
155
- }
156
- }
157
- // No rules matched, return default
158
- return {
159
- value: strategy.default,
160
- isFallback: true,
161
- matchInfo: {
162
- strategyType: 'rules',
163
- },
164
- };
165
- }
166
- //# sourceMappingURL=rules.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rules.js","sourceRoot":"","sources":["../../../src/decisions/strategies/rules.ts"],"names":[],"mappings":"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"}
@@ -1,29 +0,0 @@
1
- /**
2
- * Evaluate a ScoreStrategy and return the result.
3
- */
4
- export function evaluateScoreStrategy(strategy, evalContext) {
5
- var _a;
6
- const { context } = evalContext;
7
- // Get the score from augmented context
8
- const score = (_a = context.augmented) === null || _a === void 0 ? void 0 : _a[strategy.field];
9
- // If no score available, return below value as fallback
10
- if (score === undefined || typeof score !== 'number') {
11
- return {
12
- value: strategy.below,
13
- isFallback: true,
14
- matchInfo: {
15
- strategyType: 'score',
16
- },
17
- };
18
- }
19
- // Compare against threshold
20
- const isAbove = score >= strategy.threshold;
21
- return {
22
- value: isAbove ? strategy.above : strategy.below,
23
- isFallback: false,
24
- matchInfo: {
25
- strategyType: 'score',
26
- },
27
- };
28
- }
29
- //# sourceMappingURL=score.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"score.js","sourceRoot":"","sources":["../../../src/decisions/strategies/score.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,QAA0B,EAC1B,WAA8B;;IAE9B,MAAM,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC;IAEhC,uCAAuC;IACvC,MAAM,KAAK,GAAG,MAAA,OAAO,CAAC,SAAS,0CAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAElD,wDAAwD;IACxD,IAAI,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACrD,OAAO;YACL,KAAK,EAAE,QAAQ,CAAC,KAAU;YAC1B,UAAU,EAAE,IAAI;YAChB,SAAS,EAAE;gBACT,YAAY,EAAE,OAAO;aACtB;SACF,CAAC;IACJ,CAAC;IAED,4BAA4B;IAC5B,MAAM,OAAO,GAAG,KAAK,IAAI,QAAQ,CAAC,SAAS,CAAC;IAE5C,OAAO;QACL,KAAK,EAAE,OAAO,CAAC,CAAC,CAAE,QAAQ,CAAC,KAAW,CAAC,CAAC,CAAE,QAAQ,CAAC,KAAW;QAC9D,UAAU,EAAE,KAAK;QACjB,SAAS,EAAE;YACT,YAAY,EAAE,OAAO;SACtB;KACF,CAAC;AACJ,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/decisions/types.ts"],"names":[],"mappings":""}
@@ -1,20 +0,0 @@
1
- /**
2
- * Early Patcher - DEPRECATED
3
- *
4
- * This module is kept for backward compatibility but all functionality
5
- * has moved to ActionEngine. Actions are now applied through the runtime.
6
- *
7
- * @deprecated Use ActionEngine through SmartCanvasRuntime instead.
8
- */
9
- // Re-export empty functions for any code still importing from here
10
- export function revertAllPatches() {
11
- console.warn('[SmartCanvas] revertAllPatches is deprecated. Use ActionEngine instead.');
12
- }
13
- export function applyPatchesEarly() {
14
- console.warn('[SmartCanvas] applyPatchesEarly is deprecated. Use ActionEngine instead.');
15
- }
16
- export function extractPatchesFromConfig() {
17
- console.warn('[SmartCanvas] extractPatchesFromConfig is deprecated. Config now uses actions[].');
18
- return [];
19
- }
20
- //# sourceMappingURL=earlyPatcher.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"earlyPatcher.js","sourceRoot":"","sources":["../src/earlyPatcher.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,mEAAmE;AACnE,MAAM,UAAU,gBAAgB;IAC9B,OAAO,CAAC,IAAI,CAAC,yEAAyE,CAAC,CAAC;AAC1F,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,OAAO,CAAC,IAAI,CAAC,0EAA0E,CAAC,CAAC;AAC3F,CAAC;AAED,MAAM,UAAU,wBAAwB;IACtC,OAAO,CAAC,IAAI,CAAC,kFAAkF,CAAC,CAAC;IACjG,OAAO,EAAE,CAAC;AACZ,CAAC"}