@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.
- package/CAPABILITIES.md +50 -43
- package/README.md +7 -7
- package/dist/RuntimeProvider.d.ts +1 -1
- package/dist/ShadowRootContext.d.ts +19 -0
- package/dist/SmartCanvasApp.d.ts +3 -3
- package/dist/SmartCanvasElement.d.ts +7 -2
- package/dist/SmartCanvasPortal.d.ts +1 -1
- package/dist/actions/executors/index.d.ts +3 -3
- package/dist/actions/executors/tour.d.ts +1 -1
- package/dist/actions/index.d.ts +4 -3
- package/dist/actions/schema.d.ts +1229 -0
- package/dist/actions/schema.js +67 -0
- package/dist/actions/schema.js.map +7 -0
- package/dist/adaptives/adaptive-chatbot/index.js +4 -4
- package/dist/adaptives/adaptive-chatbot/index.js.map +4 -4
- package/dist/adaptives/adaptive-content/index.js +2 -2
- package/dist/adaptives/adaptive-content/index.js.map +4 -4
- package/dist/adaptives/adaptive-faq/index.js +23 -6
- package/dist/adaptives/adaptive-faq/index.js.map +4 -4
- package/dist/adaptives/adaptive-gamification/index.js.map +1 -1
- package/dist/adaptives/adaptive-nav/index.js +22 -7
- package/dist/adaptives/adaptive-nav/index.js.map +4 -4
- package/dist/adaptives/adaptive-overlays/index.js +13 -13
- package/dist/adaptives/adaptive-overlays/index.js.map +4 -4
- package/dist/api.d.ts +2 -2
- package/dist/apps/examples/gamification-app.example.d.ts +4 -4
- package/dist/apps/index.d.ts +7 -7
- package/dist/blocks/data/index.d.ts +1 -1
- package/dist/blocks/index.d.ts +2 -2
- package/dist/blocks/interactive/index.d.ts +1 -1
- package/dist/blocks/notification/NotificationBlock.d.ts +1 -1
- package/dist/blocks/notification/index.d.ts +1 -1
- package/dist/bootstrap.d.ts +4 -4
- package/dist/chunk-AYTRRBR5.js +251 -0
- package/dist/chunk-AYTRRBR5.js.map +7 -0
- package/dist/chunk-CU354JTM.js +7921 -0
- package/dist/chunk-CU354JTM.js.map +7 -0
- package/dist/components/ShadowCanvasOverlay.d.ts +2 -2
- package/dist/components/TileCard.d.ts +1 -1
- package/dist/context/ContextManager.d.ts +1 -1
- package/dist/context/index.d.ts +3 -3
- package/dist/decisions/engine.d.ts +1 -1
- package/dist/decisions/index.d.ts +3 -3
- package/dist/decisions/schema.d.ts +24 -24
- package/dist/decisions/strategies/rules.d.ts +1 -1
- package/dist/decisions/strategies/score.d.ts +1 -1
- package/dist/editorLoader.d.ts +4 -4
- package/dist/events/EventAccumulator.d.ts +1 -1
- package/dist/events/EventBus.d.ts +1 -1
- package/dist/events/index.d.ts +7 -6
- package/dist/events/registerConfigPredicates.d.ts +19 -0
- package/dist/experiments/adapters/growthbook.d.ts +1 -1
- package/dist/experiments/index.d.ts +2 -2
- package/dist/experiments/registry.d.ts +1 -1
- package/dist/fetchers/index.d.ts +2 -2
- package/dist/hooks/useShadowCanvasConfig.d.ts +1 -1
- package/dist/hostPatcher/index.d.ts +2 -2
- package/dist/index.d.ts +24 -21
- package/dist/index.js +816 -75
- package/dist/index.js.map +7 -1
- package/dist/metrics/index.d.ts +1 -1
- package/dist/notifications/index.d.ts +6 -6
- package/dist/overlays/runtime/index.d.ts +3 -3
- package/dist/overlays/runtime/overlay/root.d.ts +17 -1
- package/dist/overlays/runtime/overlay/tooltip.d.ts +1 -1
- package/dist/react.js +90 -134
- package/dist/react.js.map +7 -1
- package/dist/render/RenderContext.d.ts +2 -2
- package/dist/render/index.d.ts +2 -2
- package/dist/render/types.d.ts +2 -2
- package/dist/runtime.d.ts +8 -8
- package/dist/smart-canvas.esm.js +127 -124
- package/dist/smart-canvas.esm.js.map +4 -4
- package/dist/smart-canvas.js +17160 -16782
- package/dist/smart-canvas.js.map +4 -4
- package/dist/smart-canvas.min.js +127 -124
- package/dist/smart-canvas.min.js.map +4 -4
- package/dist/state/StateStore.d.ts +1 -1
- package/dist/state/helpers/cooldowns.d.ts +1 -1
- package/dist/state/helpers/dismissals.d.ts +1 -1
- package/dist/state/helpers/frequency.d.ts +1 -1
- package/dist/state/index.d.ts +3 -3
- package/dist/surfaces/index.d.ts +3 -3
- package/dist/surfaces/positioning.d.ts +1 -1
- package/dist/telemetry/adapters/posthog.d.ts +2 -2
- package/dist/telemetry/index.d.ts +3 -3
- package/dist/telemetry/registry.d.ts +1 -1
- package/dist/theme/ThemeProvider.d.ts +1 -1
- package/dist/theme/extractHostTheme.d.ts +1 -1
- package/dist/theme/index.d.ts +4 -4
- package/dist/types-only.d.ts +1 -1
- package/dist/types-only.js +1 -11
- package/dist/types-only.js.map +7 -1
- package/dist/types.d.ts +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/widgets/index.d.ts +1 -1
- package/package.json +24 -17
- package/schema/canvas-config.base.schema.json +351 -0
- package/schema/canvas-config.schema.json +3202 -440
- package/scripts/validate-config.mjs +54 -58
- package/dist/RuntimeProvider.js +0 -113
- package/dist/RuntimeProvider.js.map +0 -1
- package/dist/SmartCanvasApp.js +0 -143
- package/dist/SmartCanvasApp.js.map +0 -1
- package/dist/SmartCanvasElement.js +0 -138
- package/dist/SmartCanvasElement.js.map +0 -1
- package/dist/SmartCanvasPortal.js +0 -17
- package/dist/SmartCanvasPortal.js.map +0 -1
- package/dist/actions/ActionEngine.js +0 -272
- package/dist/actions/ActionEngine.js.map +0 -1
- package/dist/actions/executors/index.js +0 -240
- package/dist/actions/executors/index.js.map +0 -1
- package/dist/actions/executors/tour.js +0 -332
- package/dist/actions/executors/tour.js.map +0 -1
- package/dist/actions/index.js +0 -12
- package/dist/actions/index.js.map +0 -1
- package/dist/actions/types.js +0 -8
- package/dist/actions/types.js.map +0 -1
- package/dist/actions/validation.js +0 -577
- package/dist/actions/validation.js.map +0 -1
- package/dist/antiFlicker.js +0 -39
- package/dist/antiFlicker.js.map +0 -1
- package/dist/api.js +0 -205
- package/dist/api.js.map +0 -1
- package/dist/apps/AppContext.js +0 -91
- package/dist/apps/AppContext.js.map +0 -1
- package/dist/apps/AppLoader.js +0 -293
- package/dist/apps/AppLoader.js.map +0 -1
- package/dist/apps/AppRegistry.js +0 -317
- package/dist/apps/AppRegistry.js.map +0 -1
- package/dist/apps/examples/gamification-app.example.js +0 -329
- package/dist/apps/examples/gamification-app.example.js.map +0 -1
- package/dist/apps/index.js +0 -16
- package/dist/apps/index.js.map +0 -1
- package/dist/apps/types.js +0 -8
- package/dist/apps/types.js.map +0 -1
- package/dist/blocks/data/ComparisonBlock.js +0 -95
- package/dist/blocks/data/ComparisonBlock.js.map +0 -1
- package/dist/blocks/data/StatsBlock.js +0 -102
- package/dist/blocks/data/StatsBlock.js.map +0 -1
- package/dist/blocks/data/index.js +0 -3
- package/dist/blocks/data/index.js.map +0 -1
- package/dist/blocks/index.js +0 -93
- package/dist/blocks/index.js.map +0 -1
- package/dist/blocks/interactive/ChecklistBlock.js +0 -111
- package/dist/blocks/interactive/ChecklistBlock.js.map +0 -1
- package/dist/blocks/interactive/RatingBlock.js +0 -147
- package/dist/blocks/interactive/RatingBlock.js.map +0 -1
- package/dist/blocks/interactive/index.js +0 -3
- package/dist/blocks/interactive/index.js.map +0 -1
- package/dist/blocks/notification/NotificationBlock.js +0 -171
- package/dist/blocks/notification/NotificationBlock.js.map +0 -1
- package/dist/blocks/notification/index.js +0 -2
- package/dist/blocks/notification/index.js.map +0 -1
- package/dist/blocks/theme-tokens.js +0 -25
- package/dist/blocks/theme-tokens.js.map +0 -1
- package/dist/bootstrap.js +0 -448
- package/dist/bootstrap.js.map +0 -1
- package/dist/bundle-entry.js +0 -9
- package/dist/bundle-entry.js.map +0 -1
- package/dist/components/ShadowCanvasOverlay.js +0 -327
- package/dist/components/ShadowCanvasOverlay.js.map +0 -1
- package/dist/components/TileCard.js +0 -103
- package/dist/components/TileCard.js.map +0 -1
- package/dist/components/TileWheel.js +0 -50
- package/dist/components/TileWheel.js.map +0 -1
- package/dist/config-validator.js +0 -173
- package/dist/config-validator.js.map +0 -1
- package/dist/configFetcher.js +0 -131
- package/dist/configFetcher.js.map +0 -1
- package/dist/context/ContextManager.js +0 -269
- package/dist/context/ContextManager.js.map +0 -1
- package/dist/context/index.js +0 -7
- package/dist/context/index.js.map +0 -1
- package/dist/context/schema.js +0 -50
- package/dist/context/schema.js.map +0 -1
- package/dist/context/types.js +0 -8
- package/dist/context/types.js.map +0 -1
- package/dist/controller.js +0 -34
- package/dist/controller.js.map +0 -1
- package/dist/decisions/engine.js +0 -117
- package/dist/decisions/engine.js.map +0 -1
- package/dist/decisions/index.js +0 -10
- package/dist/decisions/index.js.map +0 -1
- package/dist/decisions/schema.js +0 -151
- package/dist/decisions/schema.js.map +0 -1
- package/dist/decisions/strategies/rules.js +0 -166
- package/dist/decisions/strategies/rules.js.map +0 -1
- package/dist/decisions/strategies/score.js +0 -29
- package/dist/decisions/strategies/score.js.map +0 -1
- package/dist/decisions/types.js +0 -2
- package/dist/decisions/types.js.map +0 -1
- package/dist/earlyPatcher.js +0 -20
- package/dist/earlyPatcher.js.map +0 -1
- package/dist/editorLoader.js +0 -254
- package/dist/editorLoader.js.map +0 -1
- package/dist/events/EventAccumulator.js +0 -101
- package/dist/events/EventAccumulator.js.map +0 -1
- package/dist/events/EventBus.js +0 -152
- package/dist/events/EventBus.js.map +0 -1
- package/dist/events/index.js +0 -11
- package/dist/events/index.js.map +0 -1
- package/dist/events/normalizers/canvas.js +0 -116
- package/dist/events/normalizers/canvas.js.map +0 -1
- package/dist/events/normalizers/posthog.js +0 -171
- package/dist/events/normalizers/posthog.js.map +0 -1
- package/dist/events/schema.js +0 -30
- package/dist/events/schema.js.map +0 -1
- package/dist/events/types.js +0 -54
- package/dist/events/types.js.map +0 -1
- package/dist/experiments/adapters/growthbook.js +0 -81
- package/dist/experiments/adapters/growthbook.js.map +0 -1
- package/dist/experiments/index.js +0 -4
- package/dist/experiments/index.js.map +0 -1
- package/dist/experiments/registry.js +0 -30
- package/dist/experiments/registry.js.map +0 -1
- package/dist/experiments/types.js +0 -2
- package/dist/experiments/types.js.map +0 -1
- package/dist/fetchers/cdnFetcher.js +0 -96
- package/dist/fetchers/cdnFetcher.js.map +0 -1
- package/dist/fetchers/experimentsFetcher.js +0 -109
- package/dist/fetchers/experimentsFetcher.js.map +0 -1
- package/dist/fetchers/index.js +0 -5
- package/dist/fetchers/index.js.map +0 -1
- package/dist/fetchers/mergeConfigs.js +0 -38
- package/dist/fetchers/mergeConfigs.js.map +0 -1
- package/dist/fetchers/registry.js +0 -58
- package/dist/fetchers/registry.js.map +0 -1
- package/dist/fetchers/types.js +0 -2
- package/dist/fetchers/types.js.map +0 -1
- package/dist/hooks/useCanvasOverlays.js +0 -128
- package/dist/hooks/useCanvasOverlays.js.map +0 -1
- package/dist/hooks/useHostPatches.js +0 -40
- package/dist/hooks/useHostPatches.js.map +0 -1
- package/dist/hooks/useShadowCanvasConfig.js +0 -63
- package/dist/hooks/useShadowCanvasConfig.js.map +0 -1
- package/dist/hostPatcher/core/patcher.js +0 -181
- package/dist/hostPatcher/core/patcher.js.map +0 -1
- package/dist/hostPatcher/core/sanitizer.js +0 -66
- package/dist/hostPatcher/core/sanitizer.js.map +0 -1
- package/dist/hostPatcher/core/types.js +0 -2
- package/dist/hostPatcher/core/types.js.map +0 -1
- package/dist/hostPatcher/index.js +0 -7
- package/dist/hostPatcher/index.js.map +0 -1
- package/dist/hostPatcher/policy/defaultPolicy.js +0 -23
- package/dist/hostPatcher/policy/defaultPolicy.js.map +0 -1
- package/dist/hostPatcher/utils/anchors.js +0 -105
- package/dist/hostPatcher/utils/anchors.js.map +0 -1
- package/dist/hostPatcher/utils/observer.js +0 -11
- package/dist/hostPatcher/utils/observer.js.map +0 -1
- package/dist/logger.js +0 -81
- package/dist/logger.js.map +0 -1
- package/dist/metrics/index.js +0 -5
- package/dist/metrics/index.js.map +0 -1
- package/dist/metrics/sessionMetrics.js +0 -178
- package/dist/metrics/sessionMetrics.js.map +0 -1
- package/dist/notifications/NotificationToastStack.js +0 -118
- package/dist/notifications/NotificationToastStack.js.map +0 -1
- package/dist/notifications/index.js +0 -6
- package/dist/notifications/index.js.map +0 -1
- package/dist/notifications/matcher.js +0 -66
- package/dist/notifications/matcher.js.map +0 -1
- package/dist/notifications/types.js +0 -13
- package/dist/notifications/types.js.map +0 -1
- package/dist/notifications/useNotifications.js +0 -104
- package/dist/notifications/useNotifications.js.map +0 -1
- package/dist/notifications/useNotifyWatcher.js +0 -62
- package/dist/notifications/useNotifyWatcher.js.map +0 -1
- package/dist/overlays/fetcher.js +0 -15
- package/dist/overlays/fetcher.js.map +0 -1
- package/dist/overlays/recipeRegistry.js +0 -32
- package/dist/overlays/recipeRegistry.js.map +0 -1
- package/dist/overlays/runtime/anchor/resolve.js +0 -87
- package/dist/overlays/runtime/anchor/resolve.js.map +0 -1
- package/dist/overlays/runtime/index.js +0 -8
- package/dist/overlays/runtime/index.js.map +0 -1
- package/dist/overlays/runtime/overlay/highlight.js +0 -160
- package/dist/overlays/runtime/overlay/highlight.js.map +0 -1
- package/dist/overlays/runtime/overlay/modal.js +0 -78
- package/dist/overlays/runtime/overlay/modal.js.map +0 -1
- package/dist/overlays/runtime/overlay/root.js +0 -297
- package/dist/overlays/runtime/overlay/root.js.map +0 -1
- package/dist/overlays/runtime/overlay/runner.js +0 -602
- package/dist/overlays/runtime/overlay/runner.js.map +0 -1
- package/dist/overlays/runtime/overlay/tooltip.js +0 -232
- package/dist/overlays/runtime/overlay/tooltip.js.map +0 -1
- package/dist/overlays/runtime/utils/dom.js +0 -12
- package/dist/overlays/runtime/utils/dom.js.map +0 -1
- package/dist/overlays/schema.js +0 -52
- package/dist/overlays/schema.js.map +0 -1
- package/dist/overlays/types.js +0 -2
- package/dist/overlays/types.js.map +0 -1
- package/dist/render/RenderContext.js +0 -69
- package/dist/render/RenderContext.js.map +0 -1
- package/dist/render/index.js +0 -3
- package/dist/render/index.js.map +0 -1
- package/dist/render/types.js +0 -2
- package/dist/render/types.js.map +0 -1
- package/dist/runtime.js +0 -237
- package/dist/runtime.js.map +0 -1
- package/dist/state/StateStore.js +0 -176
- package/dist/state/StateStore.js.map +0 -1
- package/dist/state/helpers/cooldowns.js +0 -31
- package/dist/state/helpers/cooldowns.js.map +0 -1
- package/dist/state/helpers/dismissals.js +0 -34
- package/dist/state/helpers/dismissals.js.map +0 -1
- package/dist/state/helpers/frequency.js +0 -43
- package/dist/state/helpers/frequency.js.map +0 -1
- package/dist/state/index.js +0 -7
- package/dist/state/index.js.map +0 -1
- package/dist/state/schema.js +0 -25
- package/dist/state/schema.js.map +0 -1
- package/dist/state/types.js +0 -9
- package/dist/state/types.js.map +0 -1
- package/dist/store/example.js +0 -43
- package/dist/store/example.js.map +0 -1
- package/dist/store/mini-effector.js +0 -88
- package/dist/store/mini-effector.js.map +0 -1
- package/dist/surfaces/Surfaces.js +0 -361
- package/dist/surfaces/Surfaces.js.map +0 -1
- package/dist/surfaces/index.js +0 -12
- package/dist/surfaces/index.js.map +0 -1
- package/dist/surfaces/positioning.js +0 -228
- package/dist/surfaces/positioning.js.map +0 -1
- package/dist/surfaces/types.js +0 -23
- package/dist/surfaces/types.js.map +0 -1
- package/dist/telemetry/adapters/noop.js +0 -42
- package/dist/telemetry/adapters/noop.js.map +0 -1
- package/dist/telemetry/adapters/posthog.js +0 -180
- package/dist/telemetry/adapters/posthog.js.map +0 -1
- package/dist/telemetry/index.js +0 -4
- package/dist/telemetry/index.js.map +0 -1
- package/dist/telemetry/registry.js +0 -29
- package/dist/telemetry/registry.js.map +0 -1
- package/dist/telemetry/types.js +0 -2
- package/dist/telemetry/types.js.map +0 -1
- package/dist/theme/ThemeProvider.js +0 -109
- package/dist/theme/ThemeProvider.js.map +0 -1
- package/dist/theme/defaultTheme.js +0 -190
- package/dist/theme/defaultTheme.js.map +0 -1
- package/dist/theme/extractHostTheme.js +0 -259
- package/dist/theme/extractHostTheme.js.map +0 -1
- package/dist/theme/index.js +0 -7
- package/dist/theme/index.js.map +0 -1
- package/dist/theme/types.js +0 -6
- package/dist/theme/types.js.map +0 -1
- package/dist/token.js +0 -44
- package/dist/token.js.map +0 -1
- package/dist/types.js +0 -17
- package/dist/types.js.map +0 -1
- package/dist/version.js +0 -14
- package/dist/version.js.map +0 -1
- package/dist/widgets/WidgetRegistry.js +0 -190
- package/dist/widgets/WidgetRegistry.js.map +0 -1
- package/dist/widgets/index.js +0 -7
- package/dist/widgets/index.js.map +0 -1
package/dist/context/types.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/context/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
package/dist/controller.js
DELETED
|
@@ -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
|
package/dist/controller.js.map
DELETED
|
@@ -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"}
|
package/dist/decisions/engine.js
DELETED
|
@@ -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":"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"}
|
package/dist/decisions/index.js
DELETED
|
@@ -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"}
|
package/dist/decisions/schema.js
DELETED
|
@@ -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"}
|
package/dist/decisions/types.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/decisions/types.ts"],"names":[],"mappings":""}
|
package/dist/earlyPatcher.js
DELETED
|
@@ -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
|
package/dist/earlyPatcher.js.map
DELETED
|
@@ -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"}
|