@syntrologie/runtime-sdk 1.0.1-canary.3 → 2.0.0-canary.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 (122) hide show
  1. package/CAPABILITIES.md +630 -463
  2. package/README.md +285 -62
  3. package/dist/RuntimeProvider.d.ts +51 -0
  4. package/dist/RuntimeProvider.js +114 -0
  5. package/dist/RuntimeProvider.js.map +1 -0
  6. package/dist/SmartCanvasApp.d.ts +9 -3
  7. package/dist/SmartCanvasApp.js +36 -38
  8. package/dist/SmartCanvasApp.js.map +1 -1
  9. package/dist/actions/ActionEngine.d.ts +11 -0
  10. package/dist/actions/ActionEngine.js +274 -0
  11. package/dist/actions/ActionEngine.js.map +1 -0
  12. package/dist/actions/executors/index.d.ts +118 -0
  13. package/dist/actions/executors/index.js +242 -0
  14. package/dist/actions/executors/index.js.map +1 -0
  15. package/dist/actions/executors/tour.d.ts +18 -0
  16. package/dist/actions/executors/tour.js +332 -0
  17. package/dist/actions/executors/tour.js.map +1 -0
  18. package/dist/actions/index.d.ts +10 -0
  19. package/dist/actions/index.js +12 -0
  20. package/dist/actions/index.js.map +1 -0
  21. package/dist/actions/types.d.ts +399 -0
  22. package/dist/actions/types.js +8 -0
  23. package/dist/actions/types.js.map +1 -0
  24. package/dist/actions/validation.d.ts +14 -0
  25. package/dist/actions/validation.js +603 -0
  26. package/dist/actions/validation.js.map +1 -0
  27. package/dist/api.d.ts +32 -18
  28. package/dist/api.js +56 -39
  29. package/dist/api.js.map +1 -1
  30. package/dist/apps/AppContext.d.ts +31 -0
  31. package/dist/apps/AppContext.js +93 -0
  32. package/dist/apps/AppContext.js.map +1 -0
  33. package/dist/apps/AppLoader.d.ts +84 -0
  34. package/dist/apps/AppLoader.js +250 -0
  35. package/dist/apps/AppLoader.js.map +1 -0
  36. package/dist/apps/AppRegistry.d.ts +102 -0
  37. package/dist/apps/AppRegistry.js +317 -0
  38. package/dist/apps/AppRegistry.js.map +1 -0
  39. package/dist/apps/examples/gamification-app.example.d.ts +305 -0
  40. package/dist/apps/examples/gamification-app.example.js +329 -0
  41. package/dist/apps/examples/gamification-app.example.js.map +1 -0
  42. package/dist/apps/index.d.ts +18 -0
  43. package/dist/apps/index.js +26 -0
  44. package/dist/apps/index.js.map +1 -0
  45. package/dist/apps/types.d.ts +231 -0
  46. package/dist/apps/types.js +8 -0
  47. package/dist/apps/types.js.map +1 -0
  48. package/dist/bootstrap.d.ts +24 -0
  49. package/dist/bootstrap.js +133 -33
  50. package/dist/bootstrap.js.map +1 -1
  51. package/dist/components/ShadowCanvasOverlay.js +36 -9
  52. package/dist/components/ShadowCanvasOverlay.js.map +1 -1
  53. package/dist/components/TileCard.js +37 -18
  54. package/dist/components/TileCard.js.map +1 -1
  55. package/dist/context/schema.d.ts +16 -16
  56. package/dist/decisions/schema.d.ts +96 -96
  57. package/dist/earlyPatcher.d.ts +8 -20
  58. package/dist/earlyPatcher.js +13 -62
  59. package/dist/earlyPatcher.js.map +1 -1
  60. package/dist/editorLoader.d.ts +2 -0
  61. package/dist/editorLoader.js +46 -7
  62. package/dist/editorLoader.js.map +1 -1
  63. package/dist/events/normalizers/posthog.d.ts +24 -0
  64. package/dist/events/normalizers/posthog.js.map +1 -1
  65. package/dist/events/schema.d.ts +8 -8
  66. package/dist/events/types.d.ts +6 -0
  67. package/dist/events/types.js +8 -0
  68. package/dist/events/types.js.map +1 -1
  69. package/dist/hooks/useCanvasOverlays.d.ts +4 -1
  70. package/dist/hooks/useCanvasOverlays.js +53 -6
  71. package/dist/hooks/useCanvasOverlays.js.map +1 -1
  72. package/dist/hooks/useShadowCanvasConfig.d.ts +3 -7
  73. package/dist/hooks/useShadowCanvasConfig.js +2 -3
  74. package/dist/hooks/useShadowCanvasConfig.js.map +1 -1
  75. package/dist/index.d.ts +5 -0
  76. package/dist/index.js +10 -0
  77. package/dist/index.js.map +1 -1
  78. package/dist/overlays/schema.d.ts +153 -153
  79. package/dist/runtime.d.ts +24 -0
  80. package/dist/runtime.js +75 -1
  81. package/dist/runtime.js.map +1 -1
  82. package/dist/smart-canvas.esm.js +162 -55
  83. package/dist/smart-canvas.esm.js.map +4 -4
  84. package/dist/smart-canvas.js +21133 -17957
  85. package/dist/smart-canvas.js.map +4 -4
  86. package/dist/smart-canvas.min.js +162 -55
  87. package/dist/smart-canvas.min.js.map +4 -4
  88. package/dist/store/example.d.ts +1 -0
  89. package/dist/store/example.js +43 -0
  90. package/dist/store/example.js.map +1 -0
  91. package/dist/store/mini-effector.d.ts +46 -0
  92. package/dist/store/mini-effector.js +90 -0
  93. package/dist/store/mini-effector.js.map +1 -0
  94. package/dist/surfaces/Surfaces.d.ts +11 -0
  95. package/dist/surfaces/Surfaces.js +361 -0
  96. package/dist/surfaces/Surfaces.js.map +1 -0
  97. package/dist/surfaces/index.d.ts +9 -0
  98. package/dist/surfaces/index.js +12 -0
  99. package/dist/surfaces/index.js.map +1 -0
  100. package/dist/surfaces/positioning.d.ts +50 -0
  101. package/dist/surfaces/positioning.js +231 -0
  102. package/dist/surfaces/positioning.js.map +1 -0
  103. package/dist/surfaces/types.d.ts +167 -0
  104. package/dist/surfaces/types.js +23 -0
  105. package/dist/surfaces/types.js.map +1 -0
  106. package/dist/telemetry/adapters/posthog.d.ts +6 -0
  107. package/dist/telemetry/adapters/posthog.js +9 -0
  108. package/dist/telemetry/adapters/posthog.js.map +1 -1
  109. package/dist/types-only.d.ts +32 -0
  110. package/dist/types-only.js +11 -0
  111. package/dist/types-only.js.map +1 -0
  112. package/dist/types.d.ts +26 -14
  113. package/dist/types.js +1 -1
  114. package/dist/types.js.map +1 -1
  115. package/dist/widgets/WidgetRegistry.d.ts +139 -0
  116. package/dist/widgets/WidgetRegistry.js +182 -0
  117. package/dist/widgets/WidgetRegistry.js.map +1 -0
  118. package/dist/widgets/index.d.ts +7 -0
  119. package/dist/widgets/index.js +7 -0
  120. package/dist/widgets/index.js.map +1 -0
  121. package/package.json +13 -3
  122. package/schema/canvas-config.schema.json +444 -254
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Apps Module
3
+ *
4
+ * SynOS app system for extensible runtime and editor modules.
5
+ */
6
+ export { AppRegistry, appRegistry } from "./AppRegistry";
7
+ export type { AppRegistryEventCallback } from "./AppRegistry";
8
+ export { createAppContext, cleanupAppContext } from "./AppContext";
9
+ export type { CreateAppContextOptions } from "./AppContext";
10
+ export { createAppLoader, isCoreActionKind, getAppIdFromActionKind, getAppIdFromWidgetId, } from "./AppLoader";
11
+ export type { AppLoader, AppLoaderOptions, AppLoadResult, CanvasConfigForLoader, } from "./AppLoader";
12
+ export { runtime as contentRuntime } from "@syntrologie/app-content/runtime";
13
+ export { runtime as overlaysRuntime } from "@syntrologie/app-overlays/runtime";
14
+ export { runtime as navigationRuntime } from "@syntrologie/app-navigation/runtime";
15
+ export { runtime as gamificationRuntime } from "@syntrologie/app-gamification/runtime";
16
+ export { runtime as navRuntime } from "@syntrologie/app-nav/runtime";
17
+ export { runtime as faqRuntime } from "@syntrologie/app-faq/runtime";
18
+ export type { AppManifest, AppRegistration, AppLifecycleState, AppContext, AppRuntimeExtensions, AppActionDefinition, AppWidgetDefinition, AppEventHandler, AppEventContext, EditorPanelProps, EditorPanelConfig, AppEditorModule, AppRegistryEvent, } from "./types";
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Apps Module
3
+ *
4
+ * SynOS app system for extensible runtime and editor modules.
5
+ */
6
+ // App Registry
7
+ export { AppRegistry, appRegistry } from "./AppRegistry";
8
+ // App Context
9
+ export { createAppContext, cleanupAppContext } from "./AppContext";
10
+ // App Loader
11
+ export { createAppLoader, isCoreActionKind, getAppIdFromActionKind, getAppIdFromWidgetId, } from "./AppLoader";
12
+ // Core app runtime modules (executors bundled with runtime)
13
+ // Schemas and editors should be imported from individual packages:
14
+ // - @syntrologie/app-content/schema
15
+ // - @syntrologie/app-overlays/schema
16
+ // - @syntrologie/app-gamification/schema
17
+ // - @syntrologie/app-navigation/schema
18
+ // - @syntrologie/app-nav/schema
19
+ // - @syntrologie/app-faq/schema
20
+ export { runtime as contentRuntime } from "@syntrologie/app-content/runtime";
21
+ export { runtime as overlaysRuntime } from "@syntrologie/app-overlays/runtime";
22
+ export { runtime as navigationRuntime } from "@syntrologie/app-navigation/runtime";
23
+ export { runtime as gamificationRuntime } from "@syntrologie/app-gamification/runtime";
24
+ export { runtime as navRuntime } from "@syntrologie/app-nav/runtime";
25
+ export { runtime as faqRuntime } from "@syntrologie/app-faq/runtime";
26
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/apps/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAGzD,cAAc;AACd,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAGnE,aAAa;AACb,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,aAAa,CAAC;AAQrB,4DAA4D;AAC5D,mEAAmE;AACnE,oCAAoC;AACpC,qCAAqC;AACrC,yCAAyC;AACzC,uCAAuC;AACvC,gCAAgC;AAChC,gCAAgC;AAChC,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACnF,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AACvF,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,8BAA8B,CAAC"}
@@ -0,0 +1,231 @@
1
+ /**
2
+ * App Types
3
+ *
4
+ * Defines the types for the SynOS app system.
5
+ * Apps provide runtime extensions (actions, widgets, events) and editor modules.
6
+ */
7
+ import type { ZodSchema } from "zod";
8
+ import type { ActionExecutor } from "../actions/types";
9
+ import type { MountableWidget } from "../widgets/WidgetRegistry";
10
+ import type { NormalizedEvent } from "../events/types";
11
+ /**
12
+ * Action definition provided by an app.
13
+ */
14
+ export interface AppActionDefinition {
15
+ /** Action kind (e.g., "gamification:awardBadge") */
16
+ kind: string;
17
+ /** Zod schema for validation */
18
+ schema?: ZodSchema;
19
+ /** Executor function */
20
+ executor: ActionExecutor<any>;
21
+ }
22
+ /**
23
+ * Widget definition provided by an app.
24
+ */
25
+ export interface AppWidgetDefinition {
26
+ /** Widget ID (e.g., "gamification:leaderboard") */
27
+ id: string;
28
+ /** The widget component */
29
+ component: MountableWidget;
30
+ /** Optional metadata */
31
+ metadata?: {
32
+ name?: string;
33
+ description?: string;
34
+ icon?: string;
35
+ };
36
+ }
37
+ /**
38
+ * Context passed to app event handlers.
39
+ */
40
+ export interface AppEventContext {
41
+ /** The app ID */
42
+ appId: string;
43
+ /** Access to state store */
44
+ state: {
45
+ get: (key: string) => unknown;
46
+ set: (key: string, value: unknown) => void;
47
+ };
48
+ /** Emit telemetry events */
49
+ telemetry?: {
50
+ emit: (eventName: string, props?: Record<string, unknown>) => void;
51
+ };
52
+ /** Access to surfaces */
53
+ surfaces?: {
54
+ mount: (slot: string, content: unknown, opts?: unknown) => {
55
+ unmount: () => void;
56
+ };
57
+ };
58
+ }
59
+ /**
60
+ * Event handler definition provided by an app.
61
+ */
62
+ export interface AppEventHandler {
63
+ /** Event names to listen for */
64
+ names: string[];
65
+ /** Handler function */
66
+ handler: (event: NormalizedEvent, ctx: AppEventContext) => void | Promise<void>;
67
+ }
68
+ /**
69
+ * Runtime extensions provided by an app.
70
+ */
71
+ export interface AppRuntimeExtensions {
72
+ /** Custom action kinds */
73
+ actions?: AppActionDefinition[];
74
+ /** Widget components */
75
+ widgets?: AppWidgetDefinition[];
76
+ /** Event handlers */
77
+ events?: AppEventHandler[];
78
+ }
79
+ /**
80
+ * Props passed to editor panel components.
81
+ */
82
+ export interface EditorPanelProps {
83
+ /** The current config for this app's portion */
84
+ config: Record<string, unknown>;
85
+ /** Callback when config changes */
86
+ onChange: (config: Record<string, unknown>) => void;
87
+ /** Editor utilities */
88
+ editor: {
89
+ /** Mark the editor as dirty (has unsaved changes) */
90
+ setDirty: (dirty: boolean) => void;
91
+ /** Navigate back to home */
92
+ navigateHome: () => Promise<boolean>;
93
+ /** Save the current config */
94
+ save: () => Promise<void>;
95
+ /** Publish the current config */
96
+ publish: (captureScreenshot?: boolean) => Promise<void>;
97
+ };
98
+ /** Platform client for API calls (optional) */
99
+ platformClient?: unknown;
100
+ }
101
+ /**
102
+ * Editor panel configuration.
103
+ */
104
+ export interface EditorPanelConfig {
105
+ /** Panel title */
106
+ title: string;
107
+ /** Panel icon (emoji or icon key) */
108
+ icon: string;
109
+ /** Panel description */
110
+ description: string;
111
+ }
112
+ /**
113
+ * Editor module provided by an app.
114
+ */
115
+ export interface AppEditorModule {
116
+ /** React component for the editor panel */
117
+ component: React.ComponentType<EditorPanelProps>;
118
+ /** Panel configuration */
119
+ panel: EditorPanelConfig;
120
+ }
121
+ /**
122
+ * App manifest - the complete definition of a SynOS app.
123
+ */
124
+ export interface AppManifest {
125
+ /** Unique app identifier (e.g., "adaptive-gamification") */
126
+ id: string;
127
+ /** App version (semver) */
128
+ version: string;
129
+ /** Human-readable app name */
130
+ name: string;
131
+ /** App description */
132
+ description?: string;
133
+ /** Runtime extensions */
134
+ runtime?: AppRuntimeExtensions;
135
+ /** Zod schema for this app's config portion */
136
+ configSchema?: ZodSchema;
137
+ /** Editor module (optional - apps without editors are runtime-only) */
138
+ editor?: AppEditorModule;
139
+ /** App dependencies (other app IDs that must be loaded first) */
140
+ dependencies?: string[];
141
+ /** App metadata */
142
+ metadata?: {
143
+ /** Author name or organization */
144
+ author?: string;
145
+ /** Homepage URL */
146
+ homepage?: string;
147
+ /** License identifier */
148
+ license?: string;
149
+ /** Tags for categorization */
150
+ tags?: string[];
151
+ /** Whether this is a built-in app (bundled with runtime) */
152
+ isBuiltIn?: boolean;
153
+ };
154
+ }
155
+ /**
156
+ * App lifecycle state.
157
+ */
158
+ export type AppLifecycleState = "registered" | "activating" | "active" | "deactivating" | "inactive" | "error";
159
+ /**
160
+ * App registration - tracked state for a registered app.
161
+ */
162
+ export interface AppRegistration {
163
+ /** The app manifest */
164
+ manifest: AppManifest;
165
+ /** Current lifecycle state */
166
+ state: AppLifecycleState;
167
+ /** When the app was registered */
168
+ registeredAt: number;
169
+ /** When the app was last activated */
170
+ activatedAt?: number;
171
+ /** Error message if state is "error" */
172
+ error?: string;
173
+ /** Cleanup function to deactivate the app */
174
+ cleanup?: () => void | Promise<void>;
175
+ }
176
+ /**
177
+ * Sandboxed runtime context provided to apps.
178
+ */
179
+ export interface AppContext {
180
+ /** The app ID */
181
+ appId: string;
182
+ /** State store (scoped to app namespace) */
183
+ state: {
184
+ get: (key: string) => unknown;
185
+ set: (key: string, value: unknown) => void;
186
+ remove: (key: string) => void;
187
+ };
188
+ /** Telemetry (if available) */
189
+ telemetry?: {
190
+ emit: (eventName: string, props?: Record<string, unknown>) => void;
191
+ getSessionId: () => string | undefined;
192
+ };
193
+ /** Surfaces access */
194
+ surfaces: {
195
+ mount: (slot: string, content: unknown, opts?: unknown) => {
196
+ unmount: () => void;
197
+ update: (content: unknown) => void;
198
+ };
199
+ canMount: (slot: string, priority?: number) => boolean;
200
+ };
201
+ /** Event subscription */
202
+ events: {
203
+ subscribe: (callback: (event: NormalizedEvent) => void) => () => void;
204
+ publish: (name: string, props?: Record<string, unknown>) => void;
205
+ };
206
+ /** Register app-provided actions */
207
+ registerAction: (definition: AppActionDefinition) => void;
208
+ /** Register app-provided widgets */
209
+ registerWidget: (definition: AppWidgetDefinition) => void;
210
+ }
211
+ /**
212
+ * Events emitted by the app registry.
213
+ */
214
+ export type AppRegistryEvent = {
215
+ type: "app:registered";
216
+ appId: string;
217
+ manifest: AppManifest;
218
+ } | {
219
+ type: "app:activated";
220
+ appId: string;
221
+ } | {
222
+ type: "app:deactivated";
223
+ appId: string;
224
+ } | {
225
+ type: "app:error";
226
+ appId: string;
227
+ error: string;
228
+ } | {
229
+ type: "app:unregistered";
230
+ appId: string;
231
+ };
@@ -0,0 +1,8 @@
1
+ /**
2
+ * App Types
3
+ *
4
+ * Defines the types for the SynOS app system.
5
+ * Apps provide runtime extensions (actions, widgets, events) and editor modules.
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/apps/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -20,6 +20,8 @@ import { decodeToken, encodeToken } from "./token";
20
20
  import { SmartCanvasConfig, SmartCanvasHandle } from "./api";
21
21
  import { SessionMetricTracker } from "./metrics";
22
22
  import { SmartCanvasRuntime } from "./runtime";
23
+ import { appRegistry } from "./apps";
24
+ import { type AppLoader } from "./apps/AppLoader";
23
25
  import type { ExperimentClient } from "./experiments/types";
24
26
  import type { TelemetryClient } from "./telemetry/types";
25
27
  import type { CanvasConfigFetcher } from "./types";
@@ -51,6 +53,18 @@ export interface SyntroInitOptions {
51
53
  * @default false
52
54
  */
53
55
  enableSessionMetrics?: boolean;
56
+ /**
57
+ * CDN base URL for loading external SynOS apps.
58
+ * Apps are loaded from: {cdnBase}/apps/{appId}/index.js
59
+ *
60
+ * @default "https://cdn.syntro.io"
61
+ */
62
+ cdnBase?: string;
63
+ /**
64
+ * @deprecated Core app executors are now registered synchronously.
65
+ * This option has no effect and will be removed in a future version.
66
+ */
67
+ registerBuiltInApps?: boolean;
54
68
  }
55
69
  export interface SyntroInitResult {
56
70
  /**
@@ -77,6 +91,11 @@ export interface SyntroInitResult {
77
91
  * @deprecated Access via runtime.sessionMetrics instead
78
92
  */
79
93
  sessionMetrics?: SessionMetricTracker;
94
+ /**
95
+ * App loader for loading external apps from CDN.
96
+ * Exposed for manual app loading if needed.
97
+ */
98
+ appLoader: AppLoader;
80
99
  }
81
100
  /**
82
101
  * Initialize the Syntro SDK with a single token.
@@ -103,6 +122,11 @@ export declare const Syntro: {
103
122
  declare global {
104
123
  interface Window {
105
124
  Syntro?: typeof Syntro;
125
+ SynOS?: {
126
+ appRegistry: typeof appRegistry;
127
+ runtime: SmartCanvasRuntime;
128
+ version: string;
129
+ };
106
130
  }
107
131
  }
108
132
  export {};
package/dist/bootstrap.js CHANGED
@@ -25,6 +25,9 @@ import { createSmartCanvas } from "./api";
25
25
  import { createSessionMetricTracker } from "./metrics";
26
26
  import { createSmartCanvasRuntime } from "./runtime";
27
27
  import { initLogger, debug, warn, error as logError } from "./logger";
28
+ import { createEventBus } from "./events/EventBus";
29
+ import { createPostHogNormalizer } from "./events/normalizers/posthog";
30
+ import { createAppLoader } from "./apps/AppLoader";
28
31
  /**
29
32
  * Get environment variable, supporting both Vite and Next.js patterns.
30
33
  */
@@ -209,6 +212,15 @@ async function init(options) {
209
212
  debug('Syntro Bootstrap', 'Phase 1: Using cached segment attributes:', cachedSegmentAttrs);
210
213
  // Will be set when experiments client is created
211
214
  let experiments;
215
+ // ============================================================================
216
+ // Create EventBus early so we can wire PostHog events into it
217
+ // ============================================================================
218
+ const events = createEventBus();
219
+ console.log('[Syntro Bootstrap] EventBus created');
220
+ // Create PostHog normalizer that feeds events into the EventBus
221
+ const postHogNormalizer = createPostHogNormalizer((event) => {
222
+ events.publishEvent(event);
223
+ });
212
224
  // Callback for when PostHog feature flags are loaded (Phase 2)
213
225
  const onFeatureFlagsLoaded = (allFlags) => {
214
226
  var _a, _b, _c;
@@ -228,7 +240,7 @@ async function init(options) {
228
240
  (_c = experiments.setAttributes) === null || _c === void 0 ? void 0 : _c.call(experiments, updatedAttrs);
229
241
  }
230
242
  };
231
- // Initialize telemetry client with feature flags callback
243
+ // Initialize telemetry client with feature flags callback and event capture
232
244
  let telemetry;
233
245
  if (payload === null || payload === void 0 ? void 0 : payload.t) {
234
246
  telemetry = createTelemetryClient("posthog", {
@@ -238,7 +250,10 @@ async function init(options) {
238
250
  enableFeatureFlags: true,
239
251
  // Wire up callback for when flags are loaded (Phase 2)
240
252
  onFeatureFlagsLoaded,
253
+ // Wire up event capture to feed into EventBus
254
+ onCapture: postHogNormalizer,
241
255
  });
256
+ console.log('[Syntro Bootstrap] Telemetry client created with EventBus wiring');
242
257
  }
243
258
  // ============================================================================
244
259
  // Initialize experiment client with CACHED attributes (Phase 1)
@@ -259,29 +274,6 @@ async function init(options) {
259
274
  : undefined,
260
275
  });
261
276
  }
262
- // Create config fetcher
263
- // Priority: custom fetcher > token-specified fetcher > experiments-based
264
- let fetcher;
265
- if (options.fetcher) {
266
- // Custom fetcher provided - use it directly (for local dev / bypassing experiments)
267
- fetcher = options.fetcher;
268
- }
269
- else if (payload === null || payload === void 0 ? void 0 : payload.f) {
270
- // Explicit fetcher type specified in token
271
- const configFetcher = createConfigFetcher(payload.f, (_c = payload.o) !== null && _c !== void 0 ? _c : {});
272
- fetcher = async () => {
273
- var _a;
274
- const result = await configFetcher.fetch();
275
- return {
276
- ...result.config,
277
- tiles: (_a = result.config.tiles) !== null && _a !== void 0 ? _a : [],
278
- };
279
- };
280
- }
281
- else if (experiments) {
282
- // Default: use experiments-based fetcher (GrowthBook config or URI)
283
- fetcher = createCanvasConfigFetcher({ experiments });
284
- }
285
277
  // Create session metric tracker if enabled
286
278
  if (options.enableSessionMetrics) {
287
279
  sessionMetrics = createSessionMetricTracker({
@@ -292,13 +284,6 @@ async function init(options) {
292
284
  });
293
285
  debug('Syntro Bootstrap', 'SessionMetricTracker created');
294
286
  }
295
- // Create canvas with integrations
296
- const canvas = await createSmartCanvas({
297
- ...options.canvas,
298
- fetcher,
299
- integrations: { experiments, telemetry },
300
- editorUrl,
301
- });
302
287
  // Determine runtime mode
303
288
  let runtimeMode = 'production';
304
289
  if (editorMode)
@@ -307,11 +292,14 @@ async function init(options) {
307
292
  runtimeMode = 'audit';
308
293
  else if (getEnvVar('NODE_ENV') === 'development')
309
294
  runtimeMode = 'development';
310
- // Create the unified v2 runtime
295
+ // ============================================================================
296
+ // Create runtime FIRST (before canvas, so we can wire up app loading)
297
+ // ============================================================================
311
298
  const runtime = createSmartCanvasRuntime({
312
299
  telemetry,
313
300
  sessionMetrics,
314
301
  mode: runtimeMode,
302
+ events, // Use the EventBus we created earlier (already wired to PostHog)
315
303
  });
316
304
  debug('Syntro Bootstrap', 'Runtime created:', {
317
305
  version: runtime.version,
@@ -320,7 +308,119 @@ async function init(options) {
320
308
  hasEvents: !!runtime.events,
321
309
  hasState: !!runtime.state,
322
310
  });
323
- return { canvas, runtime, experiments, telemetry, sessionMetrics };
311
+ // ============================================================================
312
+ // Core app executors are registered synchronously in ExecutorRegistry
313
+ // No async registration needed - they're available immediately
314
+ // ============================================================================
315
+ debug('Syntro Bootstrap', 'Core app executors already registered');
316
+ // ============================================================================
317
+ // Create app loader for external apps from CDN
318
+ // ============================================================================
319
+ const cdnBase = options.cdnBase
320
+ || getEnvVar("NEXT_PUBLIC_SYNTRO_CDN_BASE")
321
+ || getEnvVar("VITE_SYNTRO_CDN_BASE")
322
+ || "https://cdn.syntro.io";
323
+ const appLoader = createAppLoader({
324
+ cdnBase,
325
+ registry: runtime.apps,
326
+ onLoadStart: (appId) => {
327
+ debug('Syntro Bootstrap', `Loading app from CDN: ${appId}`);
328
+ },
329
+ onLoadEnd: (appId, success, error) => {
330
+ if (success) {
331
+ debug('Syntro Bootstrap', `App loaded successfully: ${appId}`);
332
+ }
333
+ else {
334
+ warn('Syntro Bootstrap', `Failed to load app: ${appId}`, error);
335
+ }
336
+ },
337
+ });
338
+ // ============================================================================
339
+ // Expose global SynOS object for UMD app self-registration
340
+ // ============================================================================
341
+ if (typeof window !== "undefined") {
342
+ window.SynOS = {
343
+ appRegistry: runtime.apps,
344
+ runtime,
345
+ version: runtime.version,
346
+ };
347
+ debug('Syntro Bootstrap', 'Global SynOS object exposed');
348
+ }
349
+ // ============================================================================
350
+ // Create base config fetcher
351
+ // Priority: custom fetcher > token-specified fetcher > experiments-based
352
+ // ============================================================================
353
+ let baseFetcher;
354
+ if (options.fetcher) {
355
+ // Custom fetcher provided - use it directly (for local dev / bypassing experiments)
356
+ baseFetcher = options.fetcher;
357
+ }
358
+ else if (payload === null || payload === void 0 ? void 0 : payload.f) {
359
+ // Explicit fetcher type specified in token
360
+ const configFetcher = createConfigFetcher(payload.f, (_c = payload.o) !== null && _c !== void 0 ? _c : {});
361
+ baseFetcher = async () => {
362
+ var _a;
363
+ const result = await configFetcher.fetch();
364
+ return {
365
+ ...result.config,
366
+ tiles: (_a = result.config.tiles) !== null && _a !== void 0 ? _a : [],
367
+ };
368
+ };
369
+ }
370
+ else if (experiments) {
371
+ // Default: use experiments-based fetcher (GrowthBook config or URI)
372
+ baseFetcher = createCanvasConfigFetcher({ experiments });
373
+ }
374
+ // ============================================================================
375
+ // Wrap fetcher to automatically load required apps when config is fetched
376
+ // ============================================================================
377
+ const appLoadingFetcher = baseFetcher
378
+ ? async () => {
379
+ const config = await baseFetcher();
380
+ // Analyze config for required apps
381
+ // Cast to CanvasConfigForLoader - the loader only looks at action kinds
382
+ const configForLoader = config;
383
+ const requiredApps = appLoader.getRequiredApps(configForLoader);
384
+ debug('Syntro Bootstrap', 'Config fetched, required apps:', requiredApps);
385
+ if (requiredApps.length > 0) {
386
+ // Load external apps from CDN (built-in apps are already registered)
387
+ // This runs in parallel - we don't block on it
388
+ const loadPromise = appLoader.loadAppsForConfig(configForLoader)
389
+ .then(async (results) => {
390
+ const failedApps = results.filter((r) => !r.success);
391
+ if (failedApps.length > 0) {
392
+ warn('Syntro Bootstrap', 'Some apps failed to load:', failedApps);
393
+ }
394
+ // Activate required apps after loading
395
+ for (const appId of requiredApps) {
396
+ if (runtime.apps.has(appId)) {
397
+ try {
398
+ await runtime.apps.activate(appId);
399
+ }
400
+ catch (err) {
401
+ warn('Syntro Bootstrap', `Failed to activate app: ${appId}`, err);
402
+ }
403
+ }
404
+ }
405
+ });
406
+ // For actions that need external apps, we need to wait
407
+ // But for core app actions, they can execute immediately
408
+ await loadPromise;
409
+ }
410
+ return config;
411
+ }
412
+ : undefined;
413
+ // ============================================================================
414
+ // Create canvas with runtime and app-loading fetcher
415
+ // ============================================================================
416
+ const canvas = await createSmartCanvas({
417
+ ...options.canvas,
418
+ fetcher: appLoadingFetcher,
419
+ integrations: { experiments, telemetry },
420
+ editorUrl,
421
+ runtime, // Pass runtime so actions can be applied
422
+ });
423
+ return { canvas, runtime, experiments, telemetry, sessionMetrics, appLoader };
324
424
  }
325
425
  /**
326
426
  * The Syntro namespace for single-token initialization.
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"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"}