@syntrologie/runtime-sdk 2.0.1-canary.4 → 2.0.1

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 (173) hide show
  1. package/CAPABILITIES.md +286 -43
  2. package/README.md +87 -0
  3. package/dist/RuntimeProvider.d.ts +1 -1
  4. package/dist/RuntimeProvider.js.map +1 -1
  5. package/dist/SmartCanvasApp.d.ts +4 -4
  6. package/dist/SmartCanvasApp.js +4 -4
  7. package/dist/SmartCanvasApp.js.map +1 -1
  8. package/dist/SmartCanvasElement.d.ts +2 -2
  9. package/dist/SmartCanvasElement.js +1 -1
  10. package/dist/SmartCanvasElement.js.map +1 -1
  11. package/dist/SmartCanvasPortal.js.map +1 -1
  12. package/dist/actions/ActionEngine.js +2 -4
  13. package/dist/actions/ActionEngine.js.map +1 -1
  14. package/dist/actions/executors/index.d.ts +3 -4
  15. package/dist/actions/executors/index.js +9 -11
  16. package/dist/actions/executors/index.js.map +1 -1
  17. package/dist/actions/executors/tour.js +3 -3
  18. package/dist/actions/executors/tour.js.map +1 -1
  19. package/dist/actions/validation.js +6 -31
  20. package/dist/actions/validation.js.map +1 -1
  21. package/dist/adaptives/adaptive-chatbot/index.js +9 -0
  22. package/dist/adaptives/adaptive-chatbot/index.js.map +7 -0
  23. package/dist/adaptives/adaptive-content/index.js +2 -0
  24. package/dist/adaptives/adaptive-content/index.js.map +7 -0
  25. package/dist/adaptives/adaptive-faq/index.js +11 -0
  26. package/dist/adaptives/adaptive-faq/index.js.map +7 -0
  27. package/dist/adaptives/adaptive-gamification/index.js +2 -0
  28. package/dist/adaptives/adaptive-gamification/index.js.map +7 -0
  29. package/dist/adaptives/adaptive-nav/index.js +11 -0
  30. package/dist/adaptives/adaptive-nav/index.js.map +7 -0
  31. package/dist/adaptives/adaptive-overlays/index.js +91 -0
  32. package/dist/adaptives/adaptive-overlays/index.js.map +7 -0
  33. package/dist/api.d.ts +5 -5
  34. package/dist/api.js +4 -7
  35. package/dist/api.js.map +1 -1
  36. package/dist/apps/AppContext.js +3 -5
  37. package/dist/apps/AppContext.js.map +1 -1
  38. package/dist/apps/AppLoader.d.ts +2 -1
  39. package/dist/apps/AppLoader.js +37 -11
  40. package/dist/apps/AppLoader.js.map +1 -1
  41. package/dist/apps/AppRegistry.js.map +1 -1
  42. package/dist/apps/examples/gamification-app.example.d.ts +8 -8
  43. package/dist/apps/examples/gamification-app.example.js.map +1 -1
  44. package/dist/apps/index.d.ts +2 -3
  45. package/dist/apps/index.js +2 -3
  46. package/dist/apps/index.js.map +1 -1
  47. package/dist/apps/types.d.ts +1 -1
  48. package/dist/blocks/data/ComparisonBlock.js +9 -9
  49. package/dist/blocks/data/ComparisonBlock.js.map +1 -1
  50. package/dist/blocks/data/StatsBlock.js +12 -14
  51. package/dist/blocks/data/StatsBlock.js.map +1 -1
  52. package/dist/blocks/index.d.ts +2 -2
  53. package/dist/blocks/index.js +3 -4
  54. package/dist/blocks/index.js.map +1 -1
  55. package/dist/blocks/interactive/ChecklistBlock.js +12 -12
  56. package/dist/blocks/interactive/ChecklistBlock.js.map +1 -1
  57. package/dist/blocks/interactive/RatingBlock.js +12 -14
  58. package/dist/blocks/interactive/RatingBlock.js.map +1 -1
  59. package/dist/blocks/notification/NotificationBlock.js +24 -24
  60. package/dist/blocks/notification/NotificationBlock.js.map +1 -1
  61. package/dist/bootstrap.d.ts +6 -6
  62. package/dist/bootstrap.js +31 -34
  63. package/dist/bootstrap.js.map +1 -1
  64. package/dist/components/ShadowCanvasOverlay.d.ts +2 -2
  65. package/dist/components/ShadowCanvasOverlay.js +25 -24
  66. package/dist/components/ShadowCanvasOverlay.js.map +1 -1
  67. package/dist/components/TileCard.d.ts +2 -2
  68. package/dist/components/TileCard.js +24 -23
  69. package/dist/components/TileCard.js.map +1 -1
  70. package/dist/components/TileWheel.d.ts +1 -1
  71. package/dist/components/TileWheel.js +23 -1
  72. package/dist/components/TileWheel.js.map +1 -1
  73. package/dist/config-validator.d.ts +49 -0
  74. package/dist/config-validator.js +173 -0
  75. package/dist/config-validator.js.map +1 -0
  76. package/dist/configFetcher.d.ts +6 -2
  77. package/dist/configFetcher.js +66 -29
  78. package/dist/configFetcher.js.map +1 -1
  79. package/dist/context/ContextManager.d.ts +1 -1
  80. package/dist/context/ContextManager.js +4 -3
  81. package/dist/context/ContextManager.js.map +1 -1
  82. package/dist/context/schema.d.ts +8 -8
  83. package/dist/context/schema.js +1 -1
  84. package/dist/context/schema.js.map +1 -1
  85. package/dist/decisions/engine.d.ts +2 -2
  86. package/dist/decisions/engine.js.map +1 -1
  87. package/dist/decisions/schema.d.ts +34 -34
  88. package/dist/decisions/schema.js +1 -1
  89. package/dist/decisions/schema.js.map +1 -1
  90. package/dist/editorLoader.d.ts +19 -9
  91. package/dist/editorLoader.js +107 -96
  92. package/dist/editorLoader.js.map +1 -1
  93. package/dist/events/normalizers/canvas.d.ts +1 -1
  94. package/dist/events/normalizers/canvas.js.map +1 -1
  95. package/dist/events/schema.d.ts +8 -8
  96. package/dist/events/schema.js +1 -1
  97. package/dist/events/schema.js.map +1 -1
  98. package/dist/experiments/adapters/growthbook.d.ts +2 -1
  99. package/dist/experiments/adapters/growthbook.js +9 -1
  100. package/dist/experiments/adapters/growthbook.js.map +1 -1
  101. package/dist/experiments/types.d.ts +5 -0
  102. package/dist/fetchers/cdnFetcher.js.map +1 -1
  103. package/dist/fetchers/experimentsFetcher.d.ts +24 -2
  104. package/dist/fetchers/experimentsFetcher.js +48 -1
  105. package/dist/fetchers/experimentsFetcher.js.map +1 -1
  106. package/dist/fetchers/mergeConfigs.d.ts +29 -0
  107. package/dist/fetchers/mergeConfigs.js +38 -0
  108. package/dist/fetchers/mergeConfigs.js.map +1 -0
  109. package/dist/hooks/useCanvasOverlays.d.ts +1 -1
  110. package/dist/hooks/useCanvasOverlays.js +2 -2
  111. package/dist/hooks/useCanvasOverlays.js.map +1 -1
  112. package/dist/hooks/useHostPatches.js.map +1 -1
  113. package/dist/hooks/useShadowCanvasConfig.d.ts +1 -1
  114. package/dist/hooks/useShadowCanvasConfig.js.map +1 -1
  115. package/dist/hostPatcher/core/patcher.js.map +1 -1
  116. package/dist/hostPatcher/policy/defaultPolicy.js.map +1 -1
  117. package/dist/index.d.ts +2 -0
  118. package/dist/index.js +17 -0
  119. package/dist/index.js.map +1 -1
  120. package/dist/overlays/fetcher.d.ts +1 -1
  121. package/dist/overlays/fetcher.js +12 -14
  122. package/dist/overlays/fetcher.js.map +1 -1
  123. package/dist/overlays/runtime/overlay/runner.js +18 -5
  124. package/dist/overlays/runtime/overlay/runner.js.map +1 -1
  125. package/dist/overlays/runtime/overlay/tooltip.js +3 -5
  126. package/dist/overlays/runtime/overlay/tooltip.js.map +1 -1
  127. package/dist/react.d.ts +1 -1
  128. package/dist/react.js.map +1 -1
  129. package/dist/render/RenderContext.js.map +1 -1
  130. package/dist/runtime.d.ts +6 -6
  131. package/dist/runtime.js +38 -16
  132. package/dist/runtime.js.map +1 -1
  133. package/dist/smart-canvas.esm.js +97 -85
  134. package/dist/smart-canvas.esm.js.map +4 -4
  135. package/dist/smart-canvas.js +41592 -44370
  136. package/dist/smart-canvas.js.map +4 -4
  137. package/dist/smart-canvas.min.js +97 -85
  138. package/dist/smart-canvas.min.js.map +4 -4
  139. package/dist/state/StateStore.d.ts +0 -6
  140. package/dist/state/StateStore.js +7 -1
  141. package/dist/state/StateStore.js.map +1 -1
  142. package/dist/surfaces/Surfaces.js +1 -1
  143. package/dist/surfaces/Surfaces.js.map +1 -1
  144. package/dist/surfaces/positioning.js.map +1 -1
  145. package/dist/telemetry/adapters/posthog.js +1 -1
  146. package/dist/telemetry/adapters/posthog.js.map +1 -1
  147. package/dist/telemetry/registry.d.ts +0 -7
  148. package/dist/telemetry/registry.js +1 -1
  149. package/dist/telemetry/registry.js.map +1 -1
  150. package/dist/theme/ThemeProvider.js.map +1 -1
  151. package/dist/theme/defaultTheme.d.ts +2 -3
  152. package/dist/theme/defaultTheme.js +60 -51
  153. package/dist/theme/defaultTheme.js.map +1 -1
  154. package/dist/theme/extractHostTheme.js +1 -1
  155. package/dist/theme/extractHostTheme.js.map +1 -1
  156. package/dist/types.d.ts +22 -1
  157. package/dist/types.js +14 -2
  158. package/dist/types.js.map +1 -1
  159. package/dist/version.d.ts +13 -0
  160. package/dist/version.js +14 -0
  161. package/dist/version.js.map +1 -0
  162. package/dist/widgets/WidgetRegistry.d.ts +6 -0
  163. package/dist/widgets/WidgetRegistry.js +12 -3
  164. package/dist/widgets/WidgetRegistry.js.map +1 -1
  165. package/package.json +19 -11
  166. package/dist/apps/adaptive-chatbot/index.js +0 -7
  167. package/dist/apps/adaptive-chatbot/index.js.map +0 -7
  168. package/dist/apps/faq/index.js +0 -11
  169. package/dist/apps/faq/index.js.map +0 -7
  170. package/dist/apps/gamification/index.js +0 -2
  171. package/dist/apps/gamification/index.js.map +0 -7
  172. package/dist/apps/nav/index.js +0 -11
  173. package/dist/apps/nav/index.js.map +0 -7
@@ -0,0 +1,173 @@
1
+ /**
2
+ * Config validation and migration for SDK versioning.
3
+ *
4
+ * This module handles:
5
+ * - Validating configs against the current SDK schema version
6
+ * - Migrating old config formats to current version
7
+ * - Providing warnings for version mismatches
8
+ */
9
+ import { SDK_SCHEMA_VERSION } from './types';
10
+ /**
11
+ * Parse a schema version string into major and minor numbers.
12
+ */
13
+ export function parseVersion(version) {
14
+ const parts = version.split('.');
15
+ return {
16
+ major: parseInt(parts[0] || '0', 10),
17
+ minor: parseInt(parts[1] || '0', 10),
18
+ };
19
+ }
20
+ /**
21
+ * Validate and normalize a config, handling version mismatches.
22
+ *
23
+ * This function:
24
+ * 1. Checks if config is valid object
25
+ * 2. Compares config schema version with SDK version
26
+ * 3. Migrates old configs to current version
27
+ * 4. Returns validation result with warnings/errors
28
+ *
29
+ * @param config - Raw config from backend or fetcher
30
+ * @returns Validation result with any migrations applied
31
+ */
32
+ export function validateConfig(config) {
33
+ const warnings = [];
34
+ const errors = [];
35
+ // Type check
36
+ if (!config || typeof config !== 'object') {
37
+ return {
38
+ valid: false,
39
+ errors: ['Config must be an object'],
40
+ warnings,
41
+ };
42
+ }
43
+ const typedConfig = config;
44
+ // Check required fields
45
+ if (!typedConfig.tiles) {
46
+ errors.push('Config missing required field: tiles');
47
+ }
48
+ if (!typedConfig.actions) {
49
+ errors.push('Config missing required field: actions');
50
+ }
51
+ if (!typedConfig.fetchedAt) {
52
+ errors.push('Config missing required field: fetchedAt');
53
+ }
54
+ if (errors.length > 0) {
55
+ return { valid: false, errors, warnings };
56
+ }
57
+ // Check schema version
58
+ const configVersion = typedConfig.schemaVersion || '1.0';
59
+ const configVer = parseVersion(configVersion);
60
+ const sdkVer = parseVersion(SDK_SCHEMA_VERSION);
61
+ // Future schema version (newer backend)
62
+ if (configVer.major > sdkVer.major) {
63
+ warnings.push(`Config schema v${configVersion} is newer than SDK v${SDK_SCHEMA_VERSION}. ` +
64
+ `Some features may not work. Update SDK to latest version.`);
65
+ }
66
+ // Old schema version (older backend or missing version)
67
+ if (configVer.major < sdkVer.major || !typedConfig.schemaVersion) {
68
+ warnings.push(`Config schema v${configVersion} is older than SDK v${SDK_SCHEMA_VERSION}. ` +
69
+ `Migrating config to current version.`);
70
+ return {
71
+ valid: true,
72
+ warnings,
73
+ errors,
74
+ migratedConfig: migrateConfig(typedConfig, configVersion),
75
+ };
76
+ }
77
+ // Compatible version (same major version)
78
+ return {
79
+ valid: true,
80
+ warnings,
81
+ errors,
82
+ };
83
+ }
84
+ /**
85
+ * Migrate old config format to current SDK version.
86
+ *
87
+ * This function applies all necessary transformations to bring
88
+ * an old config up to the current schema version.
89
+ *
90
+ * @param config - Config to migrate
91
+ * @param fromVersion - Version to migrate from
92
+ * @returns Migrated config at current SDK version
93
+ */
94
+ function migrateConfig(config, fromVersion) {
95
+ let migrated = { ...config };
96
+ const fromVer = parseVersion(fromVersion);
97
+ // v1.x -> v2.x migration
98
+ if (fromVer.major === 1) {
99
+ migrated = migrateV1ToV2(migrated);
100
+ }
101
+ // Update schema version to current
102
+ migrated.schemaVersion = SDK_SCHEMA_VERSION;
103
+ return migrated;
104
+ }
105
+ /**
106
+ * Migrate v1.x config to v2.0 format.
107
+ *
108
+ * Changes in v2.0:
109
+ * - Introduced ActivationConfig to replace experiment field
110
+ * - Unified ActionStep format
111
+ * - Added schemaVersion field
112
+ */
113
+ function migrateV1ToV2(config) {
114
+ const migrated = {
115
+ schemaVersion: '2.0',
116
+ tiles: [],
117
+ actions: config.actions || [],
118
+ fetchedAt: config.fetchedAt || new Date().toISOString(),
119
+ };
120
+ // Migrate tiles
121
+ if (config.tiles && Array.isArray(config.tiles)) {
122
+ migrated.tiles = config.tiles.map((tile) => {
123
+ const migratedTile = { ...tile };
124
+ // Migrate deprecated experiment field to activation
125
+ if (tile.experiment && !tile.activation) {
126
+ const exp = tile.experiment;
127
+ // Convert old experiment format to new activation format
128
+ if (exp.featureKey) {
129
+ migratedTile.activation = {
130
+ strategy: {
131
+ type: 'external',
132
+ provider: 'growthbook',
133
+ featureKey: exp.featureKey,
134
+ fallback: false,
135
+ },
136
+ };
137
+ }
138
+ // Remove deprecated field
139
+ delete migratedTile.experiment;
140
+ }
141
+ return migratedTile;
142
+ });
143
+ }
144
+ // Copy optional fields
145
+ if (config.configVersion)
146
+ migrated.configVersion = config.configVersion;
147
+ if (config.canvasTitle)
148
+ migrated.canvasTitle = config.canvasTitle;
149
+ if (config.theme)
150
+ migrated.theme = config.theme;
151
+ if (config.launcher)
152
+ migrated.launcher = config.launcher;
153
+ if (config.routes)
154
+ migrated.routes = config.routes;
155
+ return migrated;
156
+ }
157
+ /**
158
+ * Check if a config needs migration.
159
+ *
160
+ * @param config - Config to check
161
+ * @returns True if migration is needed
162
+ */
163
+ export function needsMigration(config) {
164
+ if (!config || typeof config !== 'object') {
165
+ return false;
166
+ }
167
+ const typedConfig = config;
168
+ const configVersion = typedConfig.schemaVersion || '1.0';
169
+ const configVer = parseVersion(configVersion);
170
+ const sdkVer = parseVersion(SDK_SCHEMA_VERSION);
171
+ return configVer.major < sdkVer.major || !typedConfig.schemaVersion;
172
+ }
173
+ //# sourceMappingURL=config-validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-validator.js","sourceRoot":"","sources":["../src/config-validator.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,19 @@
1
- import type { CanvasConfigFetcher } from './types';
2
1
  import type { ExperimentClient } from './experiments/types';
2
+ import type { CanvasConfigFetcher } from './types';
3
3
  export interface CanvasFetcherOptions {
4
4
  configUri?: string;
5
5
  experiments?: ExperimentClient;
6
6
  featureKey?: string;
7
7
  credentials?: RequestCredentials;
8
8
  configFeatureKey?: string;
9
+ /** Manifest feature key for multi-flag mode */
10
+ manifestKey?: string;
11
+ /** Prefix for variant flag discovery */
12
+ variantFlagPrefix?: string;
9
13
  }
10
14
  export declare const resolveConfigUri: ({ configUri, experiments, featureKey, }: {
11
15
  configUri?: string;
12
16
  experiments?: ExperimentClient;
13
17
  featureKey?: string;
14
18
  }) => string | undefined;
15
- export declare const createCanvasConfigFetcher: ({ configUri, experiments, featureKey, credentials, configFeatureKey, }: CanvasFetcherOptions) => CanvasConfigFetcher;
19
+ export declare const createCanvasConfigFetcher: ({ configUri, experiments, featureKey, credentials, configFeatureKey, manifestKey, variantFlagPrefix, }: CanvasFetcherOptions) => CanvasConfigFetcher;
@@ -1,4 +1,7 @@
1
+ import { resolveVariantConfigs } from './fetchers/mergeConfigs';
1
2
  import { debug } from './logger';
3
+ import { SDK_SCHEMA_VERSION } from './types';
4
+ import { SDK_VERSION } from './version';
2
5
  /**
3
6
  * Allowed hosts for fetching config.
4
7
  * Only config from these hosts will be fetched.
@@ -58,37 +61,71 @@ export const resolveConfigUri = ({ configUri, experiments, featureKey = 'smart-c
58
61
  return fromFeature;
59
62
  return undefined;
60
63
  };
61
- export const createCanvasConfigFetcher = ({ configUri, experiments, featureKey, credentials, configFeatureKey = 'smart-canvas-config', }) => {
62
- return async () => {
63
- var _a;
64
- // First check if we have a direct config object from experiment platform
65
- if (experiments && configFeatureKey) {
66
- const directConfig = (_a = experiments.getFeatureValue) === null || _a === void 0 ? void 0 : _a.call(experiments, configFeatureKey, null);
67
- if (directConfig && typeof directConfig === 'object') {
68
- debug('SmartCanvas Config', 'Resolved config directly from feature flag', directConfig);
69
- return directConfig;
70
- }
71
- }
72
- // Fall back to URI-based fetching
73
- const uri = resolveConfigUri({ configUri, experiments, featureKey });
74
- if (!uri) {
75
- debug('SmartCanvas Config', 'No config available — returning empty config');
76
- return { tiles: [], overlays: [] };
64
+ /**
65
+ * Get variant flag keys from manifest or prefix discovery.
66
+ */
67
+ function getVariantFlagKeys(experiments, manifestKey, variantFlagPrefix) {
68
+ var _a;
69
+ if (manifestKey) {
70
+ const manifest = (_a = experiments.getFeatureValue) === null || _a === void 0 ? void 0 : _a.call(experiments, manifestKey, null);
71
+ if (manifest && typeof manifest === 'object') {
72
+ const keys = manifest.variant_flags;
73
+ if (keys && keys.length > 0)
74
+ return keys;
77
75
  }
78
- // Security: Validate URI against allowlist
79
- if (!validateConfigUri(uri)) {
80
- throw new Error(`SmartCanvas: config URI not allowed: ${uri}`);
76
+ }
77
+ if (variantFlagPrefix && experiments.getAllFeatures) {
78
+ const all = experiments.getAllFeatures();
79
+ return Object.keys(all).filter((k) => k.startsWith(variantFlagPrefix));
80
+ }
81
+ return [];
82
+ }
83
+ export const createCanvasConfigFetcher = ({ configUri, experiments, featureKey, credentials, configFeatureKey = 'smart-canvas-config', manifestKey, variantFlagPrefix, }) => async () => {
84
+ var _a;
85
+ // First check if we have a direct config object from experiment platform
86
+ if (experiments && configFeatureKey) {
87
+ const directConfig = (_a = experiments.getFeatureValue) === null || _a === void 0 ? void 0 : _a.call(experiments, configFeatureKey, null);
88
+ if (directConfig && typeof directConfig === 'object') {
89
+ debug('SmartCanvas Config', 'Resolved config directly from feature flag', directConfig);
90
+ return directConfig;
81
91
  }
82
- // Security: Only send credentials to same-origin requests
83
- // This prevents leaking cookies to third-party servers
84
- const effectiveCredentials = credentials !== null && credentials !== void 0 ? credentials : (isSameOrigin(uri) ? 'include' : 'omit');
85
- const response = await fetch(uri, { credentials: effectiveCredentials });
86
- if (!response.ok) {
87
- throw new Error(`SmartCanvas: failed to fetch config (${response.status})`);
92
+ }
93
+ // Try multi-flag mode: manifest or prefix-based discovery
94
+ if (experiments && (manifestKey || variantFlagPrefix)) {
95
+ const variantKeys = getVariantFlagKeys(experiments, manifestKey, variantFlagPrefix);
96
+ if (variantKeys.length > 0) {
97
+ const resolved = resolveVariantConfigs(experiments, variantKeys);
98
+ if (resolved) {
99
+ debug('SmartCanvas Config', 'Resolved config from variant flags', resolved);
100
+ return resolved;
101
+ }
88
102
  }
89
- const config = await response.json();
90
- debug('SmartCanvas Config', 'Fetched config from URI', config);
91
- return config;
92
- };
103
+ }
104
+ // Fall back to URI-based fetching
105
+ const uri = resolveConfigUri({ configUri, experiments, featureKey });
106
+ if (!uri) {
107
+ debug('SmartCanvas Config', 'No config available — returning empty config');
108
+ return { tiles: [], actions: [], fetchedAt: new Date().toISOString() };
109
+ }
110
+ // Security: Validate URI against allowlist
111
+ if (!validateConfigUri(uri)) {
112
+ throw new Error(`SmartCanvas: config URI not allowed: ${uri}`);
113
+ }
114
+ // Security: Only send credentials to same-origin requests
115
+ // This prevents leaking cookies to third-party servers
116
+ const effectiveCredentials = credentials !== null && credentials !== void 0 ? credentials : (isSameOrigin(uri) ? 'include' : 'omit');
117
+ const response = await fetch(uri, {
118
+ credentials: effectiveCredentials,
119
+ headers: {
120
+ 'X-SDK-Version': SDK_VERSION,
121
+ 'X-SDK-Schema-Version': SDK_SCHEMA_VERSION,
122
+ },
123
+ });
124
+ if (!response.ok) {
125
+ throw new Error(`SmartCanvas: failed to fetch config (${response.status})`);
126
+ }
127
+ const config = await response.json();
128
+ debug('SmartCanvas Config', 'Fetched config from URI', config);
129
+ return config;
93
130
  };
94
131
  //# sourceMappingURL=configFetcher.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"configFetcher.js","sourceRoot":"","sources":["../src/configFetcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"configFetcher.js","sourceRoot":"","sources":["../src/configFetcher.ts"],"names":[],"mappings":"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"}
@@ -6,9 +6,9 @@
6
6
  * - Notifying subscribers when context changes
7
7
  * - Providing the current context snapshot
8
8
  */
9
- import type { RuntimeContext, AnchorState, ContextChangeCallback, Unsubscribe, PageHistoryEntry } from './types';
10
9
  import type { TelemetryClient } from '../telemetry/types';
11
10
  import type { RoutesConfig } from '../types';
11
+ import type { RuntimeContext, AnchorState, ContextChangeCallback, Unsubscribe, PageHistoryEntry } from './types';
12
12
  export interface ContextManagerOptions {
13
13
  /** Telemetry client for session ID */
14
14
  telemetry?: TelemetryClient;
@@ -184,11 +184,12 @@ export class ContextManager {
184
184
  const originalReplaceState = history.replaceState.bind(history);
185
185
  history.pushState = (...args) => {
186
186
  originalPushState(...args);
187
- this.updatePage();
187
+ // Defer to avoid setState during React's commit phase (React 19 strict mode)
188
+ queueMicrotask(() => this.updatePage());
188
189
  };
189
190
  history.replaceState = (...args) => {
190
191
  originalReplaceState(...args);
191
- this.updatePage();
192
+ queueMicrotask(() => this.updatePage());
192
193
  };
193
194
  this.cleanupFns.push(() => {
194
195
  history.pushState = originalPushState;
@@ -207,7 +208,7 @@ export class ContextManager {
207
208
  }
208
209
  updatePage() {
209
210
  const url = window.location.href;
210
- const title = document.title;
211
+ const { title } = document;
211
212
  const routeId = matchRoute(url, this.routes);
212
213
  const newPage = {
213
214
  url,
@@ -1 +1 @@
1
- {"version":3,"file":"ContextManager.js","sourceRoot":"","sources":["../../src/context/ContextManager.ts"],"names":[],"mappings":"AA6BA;;GAEG;AACH,SAAS,oBAAoB;IAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,OAAO;QACL,IAAI,EAAE;YACJ,GAAG,EAAE,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YAC9D,KAAK,EAAE,OAAO,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;SACpE;QACD,OAAO,EAAE;YACP,SAAS,EAAE,EAAE;YACb,OAAO,EAAE,GAAG;YACZ,WAAW,EAAE,EAAE;SAChB;QACD,QAAQ,EAAE;YACR,KAAK,EAAE,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC5D,MAAM,EAAE,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;SAC/D;KACF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,UAAU,CAAC,GAAW,EAAE,MAAqB;IACpD,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAE9B,4BAA4B;IAC5B,IAAI,QAAgB,CAAC;IACrB,IAAI,CAAC;QACH,QAAQ,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,QAAQ,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,+BAA+B;IAC/B,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACrC,IAAI,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC;gBACpC,OAAO,SAAS,CAAC,CAAC,iBAAiB;YACrC,CAAC;QACH,CAAC;IACH,CAAC;IAED,yBAAyB;IACzB,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACrC,IAAI,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC;gBACpC,OAAO,OAAO,CAAC;YACjB,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC,CAAC,2BAA2B;IAC/C,CAAC;IAED,OAAO,QAAQ,CAAC,CAAC,4CAA4C;AAC/D,CAAC;AAED;;;;;;GAMG;AACH,SAAS,YAAY,CAAC,QAAgB,EAAE,OAAe;IACrD,kBAAkB;IAClB,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC;IAC1D,MAAM,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC;IAE5D,cAAc;IACd,IAAI,cAAc,KAAK,iBAAiB;QAAE,OAAO,IAAI,CAAC;IAEtD,2BAA2B;IAC3B,MAAM,YAAY,GAAG,iBAAiB;SACnC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,kBAAkB;SAC9C,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,UAAU;IAEnC,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,IAAI,YAAY,GAAG,CAAC,CAAC;IAC9C,OAAO,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,cAAc;IAUzB,YAAY,UAAiC,EAAE;;QAPvC,cAAS,GAA+B,IAAI,GAAG,EAAE,CAAC;QAI1D,mCAAmC;QAC3B,eAAU,GAAsB,EAAE,CAAC;QAGzC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAE7B,qBAAqB;QACrB,IAAI,CAAC,OAAO,GAAG,oBAAoB,EAAE,CAAC;QACtC,IAAI,CAAC,eAAe,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAE3C,wCAAwC;QACxC,IAAI,MAAA,OAAO,CAAC,SAAS,0CAAE,YAAY,EAAE,CAAC;YACpC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;YACnD,IAAI,SAAS,EAAE,CAAC;gBACd,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;YAC7C,CAAC;QACH,CAAC;QAED,2BAA2B;QAC3B,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;YAC/B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC;QAChE,CAAC;QAED,uBAAuB;QACvB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAE3E,8BAA8B;QAC9B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE7C,gCAAgC;QAChC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,GAAG;QACD,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACH,SAAS,CAAC,QAA+B;QACvC,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;;OAEG;IACH,SAAS,CAAC,MAAoB;QAC5B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,4BAA4B;QAC5B,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAClE,IAAI,UAAU,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAC7C,IAAI,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,OAAsB;QAC/B,IAAI,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,SAAiB;QAC5B,IAAI,SAAS,KAAK,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YACjD,IAAI,CAAC,aAAa,CAAC;gBACjB,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE;aAChD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;OAEG;IACH,OAAO;QACL,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACtC,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAED,4DAA4D;IAEpD,qBAAqB;QAC3B,uCAAuC;QACvC,IAAI,aAA4C,CAAC;QACjD,MAAM,YAAY,GAAG,GAAG,EAAE;YACxB,YAAY,CAAC,aAAa,CAAC,CAAC;YAC5B,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC9B,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,CAAC,EAAE,GAAG,CAAC,CAAC;QACV,CAAC,CAAC;QACF,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAChD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;QAE/E,kDAAkD;QAClD,MAAM,cAAc,GAAG,GAAG,EAAE;YAC1B,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,CAAC,CAAC;QACF,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QACpD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC;QAEnF,8CAA8C;QAC9C,MAAM,iBAAiB,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1D,MAAM,oBAAoB,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEhE,OAAO,CAAC,SAAS,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE;YAC9B,iBAAiB,CAAC,GAAG,IAAI,CAAC,CAAC;YAC3B,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,CAAC,CAAC;QAEF,OAAO,CAAC,YAAY,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE;YACjC,oBAAoB,CAAC,GAAG,IAAI,CAAC,CAAC;YAC9B,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,CAAC,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE;YACxB,OAAO,CAAC,SAAS,GAAG,iBAAiB,CAAC;YACtC,OAAO,CAAC,YAAY,GAAG,oBAAoB,CAAC;QAC9C,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,cAAc;QACpB,MAAM,WAAW,GAAoB;YACnC,KAAK,EAAE,MAAM,CAAC,UAAU;YACxB,MAAM,EAAE,MAAM,CAAC,WAAW;SAC3B,CAAC;QAEF,IACE,WAAW,CAAC,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK;YACjD,WAAW,CAAC,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EACnD,CAAC;YACD,IAAI,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAEO,UAAU;QAChB,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;QACjC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;QAC7B,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAE7C,MAAM,OAAO,GAAgB;YAC3B,GAAG;YACH,KAAK;YACL,OAAO;SACR,CAAC;QAEF,mCAAmC;QACnC,IACE,OAAO,CAAC,GAAG,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG;YACrC,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK;YACzC,OAAO,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAC7C,CAAC;YACD,qCAAqC;YACrC,IAAI,OAAO,CAAC,GAAG,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC1C,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACrC,CAAC;YAED,IAAI,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAEO,gBAAgB,CAAC,GAAW;QAClC,MAAM,KAAK,GAAqB;YAC9B,GAAG;YACH,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;SACf,CAAC;QAEF,MAAM,WAAW,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QAEzE,gCAAgC;QAChC,IAAI,WAAW,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YAC5B,WAAW,CAAC,KAAK,EAAE,CAAC;QACtB,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,GAAG,WAAW,CAAC;IACjD,CAAC;IAEO,aAAa,CAAC,OAAgC;QACpD,wBAAwB;QACxB,IAAI,CAAC,eAAe,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAE3C,gBAAgB;QAChB,IAAI,CAAC,OAAO,GAAG;YACb,GAAG,IAAI,CAAC,OAAO;YACf,GAAG,OAAO;SACX,CAAC;QAEF,mBAAmB;QACnB,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAEO,eAAe;QACrB,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,IAAI,CAAC;gBACH,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;YAC/C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,GAAG,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,UAAiC,EAAE;IACtE,OAAO,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC;AACrC,CAAC"}
1
+ {"version":3,"file":"ContextManager.js","sourceRoot":"","sources":["../../src/context/ContextManager.ts"],"names":[],"mappings":"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"}
@@ -9,13 +9,13 @@ export declare const PageContextZ: z.ZodObject<{
9
9
  locale: z.ZodOptional<z.ZodString>;
10
10
  }, "strip", z.ZodTypeAny, {
11
11
  url: string;
12
- routeId?: string | undefined;
13
12
  title?: string | undefined;
13
+ routeId?: string | undefined;
14
14
  locale?: string | undefined;
15
15
  }, {
16
16
  url: string;
17
- routeId?: string | undefined;
18
17
  title?: string | undefined;
18
+ routeId?: string | undefined;
19
19
  locale?: string | undefined;
20
20
  }>;
21
21
  export declare const PageHistoryEntryZ: z.ZodObject<{
@@ -132,13 +132,13 @@ export declare const RuntimeContextZ: z.ZodObject<{
132
132
  locale: z.ZodOptional<z.ZodString>;
133
133
  }, "strip", z.ZodTypeAny, {
134
134
  url: string;
135
- routeId?: string | undefined;
136
135
  title?: string | undefined;
136
+ routeId?: string | undefined;
137
137
  locale?: string | undefined;
138
138
  }, {
139
139
  url: string;
140
- routeId?: string | undefined;
141
140
  title?: string | undefined;
141
+ routeId?: string | undefined;
142
142
  locale?: string | undefined;
143
143
  }>;
144
144
  session: z.ZodObject<{
@@ -228,8 +228,8 @@ export declare const RuntimeContextZ: z.ZodObject<{
228
228
  };
229
229
  page: {
230
230
  url: string;
231
- routeId?: string | undefined;
232
231
  title?: string | undefined;
232
+ routeId?: string | undefined;
233
233
  locale?: string | undefined;
234
234
  };
235
235
  session: {
@@ -259,8 +259,8 @@ export declare const RuntimeContextZ: z.ZodObject<{
259
259
  };
260
260
  page: {
261
261
  url: string;
262
- routeId?: string | undefined;
263
262
  title?: string | undefined;
263
+ routeId?: string | undefined;
264
264
  locale?: string | undefined;
265
265
  };
266
266
  session: {
@@ -294,8 +294,8 @@ export declare function validateRuntimeContext(data: unknown): z.SafeParseReturn
294
294
  };
295
295
  page: {
296
296
  url: string;
297
- routeId?: string | undefined;
298
297
  title?: string | undefined;
298
+ routeId?: string | undefined;
299
299
  locale?: string | undefined;
300
300
  };
301
301
  session: {
@@ -325,8 +325,8 @@ export declare function validateRuntimeContext(data: unknown): z.SafeParseReturn
325
325
  };
326
326
  page: {
327
327
  url: string;
328
- routeId?: string | undefined;
329
328
  title?: string | undefined;
329
+ routeId?: string | undefined;
330
330
  locale?: string | undefined;
331
331
  };
332
332
  session: {
@@ -33,7 +33,7 @@ export const AnchorStateZ = z.object({
33
33
  visible: z.boolean().optional(),
34
34
  boundingBox: BoundingBoxZ.optional(),
35
35
  });
36
- export const AugmentationZ = z.record(z.union([z.number(), z.string(), z.boolean(), z.undefined()]));
36
+ export const AugmentationZ = z.record(z.string(), z.union([z.number(), z.string(), z.boolean(), z.undefined()]));
37
37
  export const RuntimeContextZ = z.object({
38
38
  page: PageContextZ,
39
39
  session: SessionContextZ,
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/context/schema.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;CACf,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE;CACnD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;CACnB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;IACb,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;IACb,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;IACb,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;CACd,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/B,WAAW,EAAE,YAAY,CAAC,QAAQ,EAAE;CACrC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CACnC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAC9D,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,IAAI,EAAE,YAAY;IAClB,OAAO,EAAE,eAAe;IACxB,QAAQ,EAAE,gBAAgB;IAC1B,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE;IACzC,SAAS,EAAE,aAAa,CAAC,QAAQ,EAAE;CACpC,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAa;IAClD,OAAO,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/context/schema.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;CACf,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE;CACnD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;CACnB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;IACb,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;IACb,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;IACb,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;CACd,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/B,WAAW,EAAE,YAAY,CAAC,QAAQ,EAAE;CACrC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CACnC,CAAC,CAAC,MAAM,EAAE,EACV,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAC9D,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,IAAI,EAAE,YAAY;IAClB,OAAO,EAAE,eAAe;IACxB,QAAQ,EAAE,gBAAgB;IAC1B,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE;IACzC,SAAS,EAAE,aAAa,CAAC,QAAQ,EAAE;CACpC,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAa;IAClD,OAAO,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC"}
@@ -4,11 +4,11 @@
4
4
  * The central evaluation engine for DecisionStrategy objects.
5
5
  * Routes strategies to their appropriate evaluators.
6
6
  */
7
- import type { DecisionStrategy, DecisionResult } from './types';
8
7
  import type { RuntimeContext } from '../context/types';
9
- import type { StateStore } from '../state/StateStore';
10
8
  import type { EventBus } from '../events/EventBus';
11
9
  import type { SessionMetricTracker } from '../metrics/sessionMetrics';
10
+ import type { StateStore } from '../state/StateStore';
11
+ import type { DecisionStrategy, DecisionResult } from './types';
12
12
  /**
13
13
  * Options for the decision engine evaluate function.
14
14
  */
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/decisions/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/decisions/engine.ts"],"names":[],"mappings":"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"}