@od-oneapp/analytics 2026.2.2701-canary → 2026.2.2899-canary

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/README.md CHANGED
@@ -28,6 +28,39 @@
28
28
  - Zod-validated event catalogs (ecommerce, AI)
29
29
  - Universal (client/server environments)
30
30
  - Next.js App Router integration (hooks, components, provider)
31
+ - **Opt-in external providers** — only install what you use
32
+
33
+ ---
34
+
35
+ ## Installation
36
+
37
+ ```bash
38
+ pnpm add @od-oneapp/analytics
39
+ ```
40
+
41
+ ### External Providers (opt-in)
42
+
43
+ External analytics providers are **not bundled** with this package. Install only the ones you need:
44
+
45
+ ```bash
46
+ # PostHog
47
+ pnpm add @od-oneapp/integration-posthog
48
+
49
+ # Segment
50
+ pnpm add @od-oneapp/integration-segment
51
+
52
+ # Vercel Analytics
53
+ pnpm add @od-oneapp/integration-vercel
54
+ ```
55
+
56
+ Built-in providers (`console`, `http`) are always available with no additional installation.
57
+
58
+ If you configure a provider without installing its package, you'll get a clear error:
59
+
60
+ ```
61
+ Analytics provider "posthog" is configured but its package is not installed.
62
+ Run: pnpm add @od-oneapp/integration-posthog
63
+ ```
31
64
 
32
65
  ---
33
66
 
@@ -103,6 +136,21 @@ const analytics = await createServerAnalytics({
103
136
  await analytics.track("Order Completed", { orderId: "ord-123", total: 99.99 });
104
137
  ```
105
138
 
139
+ ### Console + HTTP Only (no external deps needed)
140
+
141
+ ```typescript
142
+ import { createClientAnalytics } from "@od-oneapp/analytics/client";
143
+
144
+ const analytics = await createClientAnalytics({
145
+ providers: {
146
+ console: { enabled: true },
147
+ http: { options: { endpoint: "/api/v1/ingest" } },
148
+ },
149
+ });
150
+
151
+ await analytics.track("Page Loaded", { path: window.location.pathname });
152
+ ```
153
+
106
154
  ### Event Catalogs (Zod-validated)
107
155
 
108
156
  ```typescript
@@ -130,11 +178,11 @@ const aiEvent = aiCatalog.track("Chat Message Sent", {
130
178
 
131
179
  ```
132
180
  @od-oneapp/analytics
133
- ├── /client → Browser-only (static provider registry)
134
- ├── /server → Node.js server (static provider registry)
181
+ ├── /client → Browser-only (built-in registry + dynamic external loader)
182
+ ├── /server → Node.js server (built-in registry + dynamic external loader)
135
183
  ├── /client/next → Next.js client (hooks, provider, components, dynamic imports)
136
184
  ├── /server/next → Next.js server (re-exports from /server)
137
- ├── /types → TypeScript types
185
+ ├── /types → TypeScript types + MissingProviderPackageError
138
186
  ├── /catalogs → Zod-validated event catalogs
139
187
  └── /providers/http → Built-in HTTP provider
140
188
  ```
@@ -148,11 +196,15 @@ const aiEvent = aiCatalog.track("Chat Message Sent", {
148
196
 
149
197
  **Provider Architecture:**
150
198
 
151
- SDK providers live in integration packages:
152
- - PostHog → `@od-oneapp/integration-posthog/analytics-provider`
153
- - Segment `@od-oneapp/integration-segment/analytics-provider`
154
- - Vercel `@od-oneapp/integration-vercel/analytics-provider`
155
- - Console, HTTP → built-in (`src/providers/`)
199
+ | Provider | Type | Package |
200
+ |----------|------|---------|
201
+ | Console | Built-in | (included) |
202
+ | HTTP | Built-in | (included) |
203
+ | PostHog | Opt-in | `@od-oneapp/integration-posthog` |
204
+ | Segment | Opt-in | `@od-oneapp/integration-segment` |
205
+ | Vercel | Opt-in | `@od-oneapp/integration-vercel` |
206
+
207
+ External providers are loaded dynamically at runtime via `import()` — only when configured. If the package isn't installed, a `MissingProviderPackageError` is thrown with the install command.
156
208
 
157
209
  ---
158
210
 
@@ -198,6 +250,24 @@ usePageTracking({ trackSearch: true });
198
250
  </TrackedLink>
199
251
  ```
200
252
 
253
+ ### Error Handling
254
+
255
+ ```typescript
256
+ import { MissingProviderPackageError } from "@od-oneapp/analytics/types";
257
+
258
+ try {
259
+ const analytics = await createClientAnalytics({
260
+ providers: { posthog: { apiKey: "..." } },
261
+ });
262
+ } catch (error) {
263
+ if (error instanceof MissingProviderPackageError) {
264
+ console.error(error.message);
265
+ // "Analytics provider "posthog" is configured but its package is not installed.
266
+ // Run: pnpm add @od-oneapp/integration-posthog"
267
+ }
268
+ }
269
+ ```
270
+
201
271
  ---
202
272
 
203
273
  ## Security
@@ -1 +1 @@
1
- {"version":3,"file":"catalogs.d.mts","names":[],"sources":["../src/shared/catalogs/define-catalog.ts","../src/shared/catalogs/ecommerce.ts","../src/shared/catalogs/ai.ts"],"mappings":";;;KAEK,QAAA,GAAW,MAAA,SAAe,CAAA,CAAE,OAAA;AAAA,UAEhB,cAAA,WAAyB,QAAA;EAAA,SAC/B,SAAA;EACT,KAAA,0BAA+B,CAAA,EAC7B,KAAA,EAAO,CAAA,EACP,UAAA,EAAY,CAAA,CAAE,KAAA,CAAM,CAAA,CAAE,CAAA;IACnB,KAAA,EAAO,CAAA;IAAG,UAAA,EAAY,CAAA,CAAE,MAAA,CAAO,CAAA,CAAE,CAAA;EAAA;EACtC,QAAA,0BAAkC,CAAA,EAChC,KAAA,EAAO,CAAA,EACP,UAAA,EAAY,CAAA,CAAE,KAAA,CAAM,CAAA,CAAE,CAAA,KACrB,CAAA,CAAE,MAAA,CAAO,CAAA,CAAE,CAAA;EACd,MAAA,0BAAgC,CAAA,EAAG,KAAA,EAAO,CAAA,GAAI,CAAA,CAAE,CAAA;EAChD,UAAA,oBAA8B,CAAA;AAAA;AAAA,iBAGhB,oBAAA,WAA+B,QAAA,CAAA,CAAU,MAAA;EACvD,SAAA;EACA,MAAA,EAAQ,CAAA;AAAA,IACN,cAAA,CAAe,CAAA;;;cCsCN,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cCfA,EAAA"}
1
+ {"version":3,"file":"catalogs.d.mts","names":[],"sources":["../src/shared/catalogs/define-catalog.ts","../src/shared/catalogs/ecommerce.ts","../src/shared/catalogs/ai.ts"],"mappings":";;;KAEK,QAAA,GAAW,MAAA,SAAe,CAAA,CAAE,OAAA;AAAA,UAEhB,cAAA,WAAyB,QAAA;EAAA,SAC/B,SAAA;EACT,KAAA,0BAA+B,CAAA,EAC7B,KAAA,EAAO,CAAA,EACP,UAAA,EAAY,CAAA,CAAE,KAAA,CAAM,CAAA,CAAE,CAAA;IACnB,KAAA,EAAO,CAAA;IAAG,UAAA,EAAY,CAAA,CAAE,MAAA,CAAO,CAAA,CAAE,CAAA;EAAA;EACtC,QAAA,0BAAkC,CAAA,EAChC,KAAA,EAAO,CAAA,EACP,UAAA,EAAY,CAAA,CAAE,KAAA,CAAM,CAAA,CAAE,CAAA,KACrB,CAAA,CAAE,MAAA,CAAO,CAAA,CAAE,CAAA;EACd,MAAA,0BAAgC,CAAA,EAAG,KAAA,EAAO,CAAA,GAAI,CAAA,CAAE,CAAA;EAChD,UAAA,oBAA8B,CAAA;AAAA;AAAA,iBAGhB,oBAAA,WAA+B,QAAA,CAAA,CAAU,MAAA;EACvD,SAAA;EACA,MAAA,EAAQ,CAAA;AAAA,IACN,cAAA,CAAe,CAAA;;;cC+BN,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cCRA,EAAA"}
package/catalogs.mjs CHANGED
@@ -59,12 +59,6 @@ const baseProduct = z.object({
59
59
  gtin: z.string().optional(),
60
60
  mpn: z.string().optional()
61
61
  });
62
- z.object({
63
- product_id: z.string(),
64
- quantity: z.number(),
65
- name: z.string().optional(),
66
- price: z.number().optional()
67
- });
68
62
  const orderBase = z.object({
69
63
  order_id: z.string(),
70
64
  revenue: z.number().optional(),
package/catalogs.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"catalogs.mjs","names":[],"sources":["../src/shared/catalogs/define-catalog.ts","../src/shared/catalogs/ecommerce.ts","../src/shared/catalogs/ai.ts"],"sourcesContent":["import type { z } from 'zod';\n\ntype EventMap = Record<string, z.ZodType>;\n\nexport interface EmitterCatalog<T extends EventMap> {\n readonly namespace: string;\n track<K extends string & keyof T>(\n event: K,\n properties: z.input<T[K]>,\n ): { event: K; properties: z.output<T[K]> };\n validate<K extends string & keyof T>(\n event: K,\n properties: z.input<T[K]>,\n ): z.output<T[K]>;\n schema<K extends string & keyof T>(event: K): T[K];\n eventNames(): (string & keyof T)[];\n}\n\nexport function defineEmitterCatalog<T extends EventMap>(config: {\n namespace: string;\n events: T;\n}): EmitterCatalog<T> {\n return {\n namespace: config.namespace,\n\n track<K extends string & keyof T>(\n event: K,\n properties: z.input<T[K]>,\n ): { event: K; properties: z.output<T[K]> } {\n const schema = config.events[event] as T[K];\n const validated = schema.parse(properties) as z.output<T[K]>;\n return { event, properties: validated };\n },\n\n validate<K extends string & keyof T>(\n event: K,\n properties: z.input<T[K]>,\n ): z.output<T[K]> {\n const schema = config.events[event] as T[K];\n return schema.parse(properties) as z.output<T[K]>;\n },\n\n schema<K extends string & keyof T>(event: K): T[K] {\n return config.events[event];\n },\n\n eventNames(): (string & keyof T)[] {\n return Object.keys(config.events) as (string & keyof T)[];\n },\n };\n}\n","// src/shared/catalogs/ecommerce.ts\nimport { z } from \"zod\";\n\nimport { defineEmitterCatalog } from \"./define-catalog\";\n\n// Shared schemas\nconst baseProduct = z.object({\n product_id: z.string(),\n name: z.string().optional(),\n brand: z.string().optional(),\n category: z.string().optional(),\n price: z.number().optional(),\n quantity: z.number().optional(),\n variant: z.string().optional(),\n position: z.number().optional(),\n image_url: z.string().optional(),\n url: z.string().optional(),\n coupon: z.string().optional(),\n availability: z.enum([\"in_stock\", \"out_of_stock\", \"preorder\", \"discontinued\"]).optional(),\n condition: z.enum([\"new\", \"used\", \"refurbished\"]).optional(),\n original_price: z.number().optional(),\n sale_price: z.number().optional(),\n merchant_id: z.string().optional(),\n merchant_name: z.string().optional(),\n merchant_url: z.string().optional(),\n affiliate_link: z.string().optional(),\n affiliate_network: z.string().optional(),\n commission_rate: z.number().optional(),\n commission_amount: z.number().optional(),\n gtin: z.string().optional(),\n mpn: z.string().optional()\n});\n\nconst orderItem = z.object({\n product_id: z.string(),\n quantity: z.number(),\n name: z.string().optional(),\n price: z.number().optional()\n});\n\nconst orderBase = z.object({\n order_id: z.string(),\n revenue: z.number().optional(),\n total: z.number().optional(),\n shipping: z.number().optional(),\n tax: z.number().optional(),\n discount: z.number().optional(),\n coupon: z.string().optional(),\n currency: z.string().default(\"USD\"),\n affiliation: z.string().optional(),\n products: z.array(baseProduct).optional()\n});\n\nconst sharing = z.object({\n share_via: z.string().optional(),\n share_message: z.string().optional(),\n recipient: z.string().optional()\n});\n\nexport const ecommerce = defineEmitterCatalog({\n namespace: \"ecommerce\",\n events: {\n // Search & Discovery\n \"Product Searched\": z.object({ query: z.string(), results_count: z.number().optional() }),\n \"Search Results Viewed\": z.object({\n query: z.string(),\n results_count: z.number(),\n products: z.array(baseProduct).optional(),\n filters_applied: z.record(z.string(), z.unknown()).optional(),\n sort_order: z.string().optional()\n }),\n \"Product List Viewed\": z.object({\n list_id: z.string().optional(),\n category: z.string().optional(),\n products: z.array(baseProduct).optional()\n }),\n \"Product List Filtered\": z.object({\n list_id: z.string().optional(),\n category: z.string().optional(),\n products: z.array(baseProduct).optional(),\n filters: z.record(z.string(), z.unknown()).optional()\n }),\n \"Product Clicked\": baseProduct,\n \"Product Viewed\": baseProduct,\n \"Product Compared\": z.object({\n product: baseProduct,\n action: z.enum([\"added\", \"removed\", \"viewed\"]),\n comparison_list: z.array(baseProduct).optional()\n }),\n \"Product Recommendation Viewed\": z.object({\n recommendation_type: z.enum([\"similar\", \"frequently_bought\", \"trending\", \"personalized\", \"upsell\", \"cross_sell\"]),\n source: z.string(),\n products: z.array(baseProduct),\n algorithm: z.string().optional()\n }),\n \"Product Recommendation Clicked\": baseProduct.extend({\n recommendation_type: z.enum([\"similar\", \"frequently_bought\", \"trending\", \"personalized\", \"upsell\", \"cross_sell\"]),\n source: z.string(),\n position: z.number().optional()\n }),\n\n // Cart\n \"Cart Updated\": z.object({\n action: z.enum([\"added\", \"removed\", \"updated\"]),\n product_id: z.string(),\n cart_id: z.string().optional(),\n cart_total: z.number().optional(),\n quantity_change: z.number().optional()\n }),\n \"Cart Viewed\": z.object({\n cart_id: z.string().optional(),\n products: z.array(baseProduct).optional()\n }),\n \"Cart Abandoned\": z.object({\n cart_id: z.string(),\n cart_value: z.number(),\n products: z.array(baseProduct).optional(),\n time_in_cart: z.number().optional(),\n abandonment_reason: z.enum([\"timeout\", \"navigation\", \"closed\"]).optional()\n }),\n\n // Checkout\n \"Checkout Progressed\": z.object({\n step: z.number(),\n step_name: z.string(),\n action: z.enum([\"viewed\", \"completed\", \"abandoned\", \"error\"]),\n checkout_id: z.string().optional(),\n payment_method: z.string().optional(),\n shipping_method: z.string().optional(),\n error_message: z.string().optional(),\n products: z.array(baseProduct).optional()\n }),\n\n // Orders\n \"Order Completed\": orderBase,\n \"Order Failed\": orderBase.extend({\n failure_reason: z.string().optional(),\n error_code: z.string().optional()\n }),\n \"Order Refunded\": orderBase,\n \"Order Cancelled\": orderBase,\n \"Order Status Updated\": z.object({\n order_id: z.string(),\n status: z.enum([\"confirmed\", \"processing\", \"shipped\", \"out_for_delivery\", \"delivered\", \"returned\", \"failed\"]),\n previous_status: z.string().optional(),\n tracking_number: z.string().optional(),\n carrier: z.string().optional(),\n estimated_delivery: z.string().optional()\n }),\n\n // Coupons\n \"Coupon Applied\": z.object({\n coupon_id: z.string().optional(),\n coupon_name: z.string().optional(),\n discount: z.number().optional(),\n order_id: z.string().optional(),\n cart_id: z.string().optional()\n }),\n \"Coupon Removed\": z.object({\n coupon_id: z.string().optional(),\n coupon_name: z.string().optional(),\n reason: z.string().optional(),\n order_id: z.string().optional(),\n cart_id: z.string().optional()\n }),\n\n // Wishlist\n \"Product Added to Wishlist\": baseProduct.extend({\n wishlist_id: z.string().optional(),\n wishlist_name: z.string().optional()\n }),\n \"Product Removed from Wishlist\": baseProduct.extend({\n wishlist_id: z.string().optional(),\n wishlist_name: z.string().optional()\n }),\n \"Wishlist Product Added to Cart\": baseProduct.extend({\n wishlist_id: z.string().optional(),\n cart_id: z.string().optional()\n }),\n\n // Sharing\n \"Product Shared\": baseProduct.merge(sharing),\n \"Cart Shared\": z\n .object({\n cart_id: z.string().optional(),\n products: z.array(baseProduct).optional()\n })\n .merge(sharing),\n \"Product Reviewed\": z.object({\n product_id: z.string(),\n review_id: z.string().optional(),\n rating: z.string().optional(),\n review_body: z.string().optional()\n }),\n\n // Marketplace\n \"Price Comparison Viewed\": z.object({\n product_id: z.string(),\n merchants: z.array(z.object({ merchant_id: z.string(), price: z.number() })),\n lowest_price: z.number().optional()\n }),\n \"Merchant Selected\": baseProduct.extend({\n selected_merchant_id: z.string(),\n selected_merchant_name: z.string().optional()\n }),\n \"Affiliate Link Clicked\": baseProduct.extend({\n destination_url: z.string()\n }),\n \"Affiliate Conversion Tracked\": z.object({\n product_id: z.string(),\n order_id: z.string(),\n merchant_id: z.string(),\n commission_amount: z.number().optional()\n }),\n\n // Registry\n \"Registry Managed\": z.object({\n registry_id: z.string(),\n action: z.string(),\n registry_type: z.enum([\"wedding\", \"baby\", \"birthday\", \"universal\", \"custom\"]).optional()\n }),\n \"Registry Viewed\": z.object({\n registry_id: z.string(),\n viewer_id: z.string().optional()\n }),\n \"Registry Shared\": z.object({\n registry_id: z.string(),\n share_method: z.string()\n }),\n \"Registry Item Managed\": z.object({\n registry_id: z.string(),\n product_id: z.string(),\n action: z.string(),\n purchaser_id: z.string().optional()\n }),\n\n // Returns\n \"Return Requested\": z.object({\n order_id: z.string(),\n reason: z.string(),\n return_method: z.enum([\"mail\", \"store\", \"pickup\"]).optional(),\n products: z.array(baseProduct).optional()\n }),\n \"Return Completed\": z.object({\n order_id: z.string(),\n return_id: z.string(),\n refund_amount: z.number().optional(),\n refund_status: z.string().optional()\n }),\n\n // Engagement\n \"Price Alert Set\": baseProduct.extend({\n threshold_price: z.number(),\n notification_method: z.enum([\"email\", \"sms\", \"push\"]).optional(),\n currency: z.string().optional()\n }),\n \"Back In Stock Requested\": baseProduct.extend({\n notification_method: z.enum([\"email\", \"sms\", \"push\"]).optional()\n })\n }\n});\n","// src/shared/catalogs/ai.ts\nimport { z } from \"zod\";\n\nimport { defineEmitterCatalog } from \"./define-catalog\";\n\n// Shared schemas\nconst baseAI = z.object({\n model_id: z.string(),\n model_provider: z.enum([\"anthropic\", \"openai\", \"google\", \"perplexity\", \"cohere\", \"mistral\", \"other\"]).optional(),\n session_id: z.string().optional(),\n user_id: z.string().optional(),\n operation_id: z.string().optional(),\n conversation_id: z.string().optional(),\n message_id: z.string().optional(),\n agent_id: z.string().optional(),\n agent_name: z.string().optional(),\n workspace_id: z.string().optional()\n});\n\nconst tokenUsage = z.object({\n input_tokens: z.number().optional(),\n output_tokens: z.number().optional(),\n total_tokens: z.number().optional(),\n cost: z.number().optional(),\n cost_currency: z.string().optional()\n});\n\nconst modelConfig = z.object({\n temperature: z.number().optional(),\n max_tokens: z.number().optional(),\n max_output_tokens: z.number().optional(),\n top_p: z.number().optional(),\n frequency_penalty: z.number().optional(),\n presence_penalty: z.number().optional(),\n stop_sequences: z.array(z.string()).optional(),\n seed: z.number().optional()\n});\n\nconst withError = z.object({\n error_message: z.string(),\n error_code: z.string().optional(),\n error_type: z.string().optional()\n});\n\nexport const ai = defineEmitterCatalog({\n namespace: \"ai\",\n events: {\n // AI SDK v6 — Agent events\n ai_sdk_agent_created: baseAI.merge(modelConfig),\n ai_sdk_agent_execution_started: baseAI.extend({ agent_id: z.string() }),\n ai_sdk_agent_execution_completed: baseAI\n .extend({\n agent_id: z.string(),\n status: z.string()\n })\n .merge(tokenUsage),\n ai_sdk_agent_execution_failed: baseAI\n .extend({\n agent_id: z.string()\n })\n .merge(withError),\n\n // AI SDK v6 — Completion events\n ai_sdk_completion_requested: baseAI\n .extend({\n completion_type: z.string()\n })\n .merge(modelConfig),\n ai_sdk_completion_generated: baseAI\n .extend({\n completion_type: z.string(),\n status: z.string()\n })\n .merge(tokenUsage),\n ai_sdk_completion_failed: baseAI\n .extend({\n completion_type: z.string()\n })\n .merge(withError),\n\n // AI SDK v6 — Tool events\n ai_sdk_tool_call_started: baseAI.extend({ tool_name: z.string() }),\n ai_sdk_tool_call_completed: baseAI.extend({\n tool_name: z.string(),\n result_status: z.string(),\n duration_ms: z.number().optional()\n }),\n ai_sdk_tool_call_failed: baseAI\n .extend({\n tool_name: z.string()\n })\n .merge(withError),\n\n // AI SDK v6 — Streaming events\n ai_sdk_stream_started: baseAI\n .extend({\n stream_type: z.string()\n })\n .merge(modelConfig),\n ai_sdk_stream_chunk_received: baseAI.extend({\n stream_type: z.string(),\n chunk_index: z.number().optional()\n }),\n ai_sdk_stream_completed: baseAI\n .extend({\n stream_type: z.string()\n })\n .merge(tokenUsage),\n ai_sdk_stream_failed: baseAI\n .extend({\n stream_type: z.string()\n })\n .merge(withError),\n\n // AI SDK v6 — Chat events\n ai_sdk_chat_session_started: baseAI.extend({ session_id: z.string() }),\n ai_sdk_chat_session_ended: baseAI\n .extend({\n session_id: z.string(),\n total_messages: z.number().optional()\n })\n .merge(tokenUsage),\n ai_sdk_chat_message_sent: baseAI.extend({\n message_role: z.string(),\n content_length: z.number().optional()\n }),\n ai_sdk_chat_message_received: baseAI\n .extend({\n message_role: z.string(),\n content_length: z.number().optional()\n })\n .merge(tokenUsage),\n\n // AI SDK v6 — Chatbot-commerce events\n ai_sdk_chatbot_intent_detected: baseAI.extend({\n message: z.string(),\n detected_intent: z.string().optional(),\n confidence: z.number().optional()\n }),\n ai_sdk_chatbot_cart_assisted: baseAI.extend({\n cart_id: z.string(),\n action: z.string().optional()\n }),\n ai_sdk_chatbot_order_assisted: baseAI.extend({\n order_id: z.string(),\n action: z.string().optional()\n }),\n ai_sdk_chatbot_product_recommended: baseAI.extend({\n product_ids: z.array(z.string()),\n recommendation_type: z.string().optional()\n }),\n\n // AI SDK v6 — Token tracking\n ai_sdk_token_usage_tracked: baseAI.merge(tokenUsage),\n\n // AI SDK v6 — Multi-step events\n ai_sdk_multi_step_started: baseAI.extend({\n total_steps: z.number().optional()\n }),\n ai_sdk_multi_step_progressed: baseAI.extend({\n step_index: z.number(),\n step_name: z.string().optional()\n }),\n ai_sdk_multi_step_completed: baseAI\n .extend({\n total_steps: z.number().optional(),\n status: z.string()\n })\n .merge(tokenUsage)\n }\n});\n"],"mappings":";;;AAkBA,SAAgB,qBAAyC,QAGnC;AACpB,QAAO;EACL,WAAW,OAAO;EAElB,MACE,OACA,YAC0C;AAG1C,UAAO;IAAE;IAAO,YAFD,OAAO,OAAO,OACJ,MAAM,WAAW;IACH;;EAGzC,SACE,OACA,YACgB;AAEhB,UADe,OAAO,OAAO,OACf,MAAM,WAAW;;EAGjC,OAAmC,OAAgB;AACjD,UAAO,OAAO,OAAO;;EAGvB,aAAmC;AACjC,UAAO,OAAO,KAAK,OAAO,OAAO;;EAEpC;;;;;AC3CH,MAAM,cAAc,EAAE,OAAO;CAC3B,YAAY,EAAE,QAAQ;CACtB,MAAM,EAAE,QAAQ,CAAC,UAAU;CAC3B,OAAO,EAAE,QAAQ,CAAC,UAAU;CAC5B,UAAU,EAAE,QAAQ,CAAC,UAAU;CAC/B,OAAO,EAAE,QAAQ,CAAC,UAAU;CAC5B,UAAU,EAAE,QAAQ,CAAC,UAAU;CAC/B,SAAS,EAAE,QAAQ,CAAC,UAAU;CAC9B,UAAU,EAAE,QAAQ,CAAC,UAAU;CAC/B,WAAW,EAAE,QAAQ,CAAC,UAAU;CAChC,KAAK,EAAE,QAAQ,CAAC,UAAU;CAC1B,QAAQ,EAAE,QAAQ,CAAC,UAAU;CAC7B,cAAc,EAAE,KAAK;EAAC;EAAY;EAAgB;EAAY;EAAe,CAAC,CAAC,UAAU;CACzF,WAAW,EAAE,KAAK;EAAC;EAAO;EAAQ;EAAc,CAAC,CAAC,UAAU;CAC5D,gBAAgB,EAAE,QAAQ,CAAC,UAAU;CACrC,YAAY,EAAE,QAAQ,CAAC,UAAU;CACjC,aAAa,EAAE,QAAQ,CAAC,UAAU;CAClC,eAAe,EAAE,QAAQ,CAAC,UAAU;CACpC,cAAc,EAAE,QAAQ,CAAC,UAAU;CACnC,gBAAgB,EAAE,QAAQ,CAAC,UAAU;CACrC,mBAAmB,EAAE,QAAQ,CAAC,UAAU;CACxC,iBAAiB,EAAE,QAAQ,CAAC,UAAU;CACtC,mBAAmB,EAAE,QAAQ,CAAC,UAAU;CACxC,MAAM,EAAE,QAAQ,CAAC,UAAU;CAC3B,KAAK,EAAE,QAAQ,CAAC,UAAU;CAC3B,CAAC;AAEgB,EAAE,OAAO;CACzB,YAAY,EAAE,QAAQ;CACtB,UAAU,EAAE,QAAQ;CACpB,MAAM,EAAE,QAAQ,CAAC,UAAU;CAC3B,OAAO,EAAE,QAAQ,CAAC,UAAU;CAC7B,CAAC;AAEF,MAAM,YAAY,EAAE,OAAO;CACzB,UAAU,EAAE,QAAQ;CACpB,SAAS,EAAE,QAAQ,CAAC,UAAU;CAC9B,OAAO,EAAE,QAAQ,CAAC,UAAU;CAC5B,UAAU,EAAE,QAAQ,CAAC,UAAU;CAC/B,KAAK,EAAE,QAAQ,CAAC,UAAU;CAC1B,UAAU,EAAE,QAAQ,CAAC,UAAU;CAC/B,QAAQ,EAAE,QAAQ,CAAC,UAAU;CAC7B,UAAU,EAAE,QAAQ,CAAC,QAAQ,MAAM;CACnC,aAAa,EAAE,QAAQ,CAAC,UAAU;CAClC,UAAU,EAAE,MAAM,YAAY,CAAC,UAAU;CAC1C,CAAC;AAEF,MAAM,UAAU,EAAE,OAAO;CACvB,WAAW,EAAE,QAAQ,CAAC,UAAU;CAChC,eAAe,EAAE,QAAQ,CAAC,UAAU;CACpC,WAAW,EAAE,QAAQ,CAAC,UAAU;CACjC,CAAC;AAEF,MAAa,YAAY,qBAAqB;CAC5C,WAAW;CACX,QAAQ;EAEN,oBAAoB,EAAE,OAAO;GAAE,OAAO,EAAE,QAAQ;GAAE,eAAe,EAAE,QAAQ,CAAC,UAAU;GAAE,CAAC;EACzF,yBAAyB,EAAE,OAAO;GAChC,OAAO,EAAE,QAAQ;GACjB,eAAe,EAAE,QAAQ;GACzB,UAAU,EAAE,MAAM,YAAY,CAAC,UAAU;GACzC,iBAAiB,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,SAAS,CAAC,CAAC,UAAU;GAC7D,YAAY,EAAE,QAAQ,CAAC,UAAU;GAClC,CAAC;EACF,uBAAuB,EAAE,OAAO;GAC9B,SAAS,EAAE,QAAQ,CAAC,UAAU;GAC9B,UAAU,EAAE,QAAQ,CAAC,UAAU;GAC/B,UAAU,EAAE,MAAM,YAAY,CAAC,UAAU;GAC1C,CAAC;EACF,yBAAyB,EAAE,OAAO;GAChC,SAAS,EAAE,QAAQ,CAAC,UAAU;GAC9B,UAAU,EAAE,QAAQ,CAAC,UAAU;GAC/B,UAAU,EAAE,MAAM,YAAY,CAAC,UAAU;GACzC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,SAAS,CAAC,CAAC,UAAU;GACtD,CAAC;EACF,mBAAmB;EACnB,kBAAkB;EAClB,oBAAoB,EAAE,OAAO;GAC3B,SAAS;GACT,QAAQ,EAAE,KAAK;IAAC;IAAS;IAAW;IAAS,CAAC;GAC9C,iBAAiB,EAAE,MAAM,YAAY,CAAC,UAAU;GACjD,CAAC;EACF,iCAAiC,EAAE,OAAO;GACxC,qBAAqB,EAAE,KAAK;IAAC;IAAW;IAAqB;IAAY;IAAgB;IAAU;IAAa,CAAC;GACjH,QAAQ,EAAE,QAAQ;GAClB,UAAU,EAAE,MAAM,YAAY;GAC9B,WAAW,EAAE,QAAQ,CAAC,UAAU;GACjC,CAAC;EACF,kCAAkC,YAAY,OAAO;GACnD,qBAAqB,EAAE,KAAK;IAAC;IAAW;IAAqB;IAAY;IAAgB;IAAU;IAAa,CAAC;GACjH,QAAQ,EAAE,QAAQ;GAClB,UAAU,EAAE,QAAQ,CAAC,UAAU;GAChC,CAAC;EAGF,gBAAgB,EAAE,OAAO;GACvB,QAAQ,EAAE,KAAK;IAAC;IAAS;IAAW;IAAU,CAAC;GAC/C,YAAY,EAAE,QAAQ;GACtB,SAAS,EAAE,QAAQ,CAAC,UAAU;GAC9B,YAAY,EAAE,QAAQ,CAAC,UAAU;GACjC,iBAAiB,EAAE,QAAQ,CAAC,UAAU;GACvC,CAAC;EACF,eAAe,EAAE,OAAO;GACtB,SAAS,EAAE,QAAQ,CAAC,UAAU;GAC9B,UAAU,EAAE,MAAM,YAAY,CAAC,UAAU;GAC1C,CAAC;EACF,kBAAkB,EAAE,OAAO;GACzB,SAAS,EAAE,QAAQ;GACnB,YAAY,EAAE,QAAQ;GACtB,UAAU,EAAE,MAAM,YAAY,CAAC,UAAU;GACzC,cAAc,EAAE,QAAQ,CAAC,UAAU;GACnC,oBAAoB,EAAE,KAAK;IAAC;IAAW;IAAc;IAAS,CAAC,CAAC,UAAU;GAC3E,CAAC;EAGF,uBAAuB,EAAE,OAAO;GAC9B,MAAM,EAAE,QAAQ;GAChB,WAAW,EAAE,QAAQ;GACrB,QAAQ,EAAE,KAAK;IAAC;IAAU;IAAa;IAAa;IAAQ,CAAC;GAC7D,aAAa,EAAE,QAAQ,CAAC,UAAU;GAClC,gBAAgB,EAAE,QAAQ,CAAC,UAAU;GACrC,iBAAiB,EAAE,QAAQ,CAAC,UAAU;GACtC,eAAe,EAAE,QAAQ,CAAC,UAAU;GACpC,UAAU,EAAE,MAAM,YAAY,CAAC,UAAU;GAC1C,CAAC;EAGF,mBAAmB;EACnB,gBAAgB,UAAU,OAAO;GAC/B,gBAAgB,EAAE,QAAQ,CAAC,UAAU;GACrC,YAAY,EAAE,QAAQ,CAAC,UAAU;GAClC,CAAC;EACF,kBAAkB;EAClB,mBAAmB;EACnB,wBAAwB,EAAE,OAAO;GAC/B,UAAU,EAAE,QAAQ;GACpB,QAAQ,EAAE,KAAK;IAAC;IAAa;IAAc;IAAW;IAAoB;IAAa;IAAY;IAAS,CAAC;GAC7G,iBAAiB,EAAE,QAAQ,CAAC,UAAU;GACtC,iBAAiB,EAAE,QAAQ,CAAC,UAAU;GACtC,SAAS,EAAE,QAAQ,CAAC,UAAU;GAC9B,oBAAoB,EAAE,QAAQ,CAAC,UAAU;GAC1C,CAAC;EAGF,kBAAkB,EAAE,OAAO;GACzB,WAAW,EAAE,QAAQ,CAAC,UAAU;GAChC,aAAa,EAAE,QAAQ,CAAC,UAAU;GAClC,UAAU,EAAE,QAAQ,CAAC,UAAU;GAC/B,UAAU,EAAE,QAAQ,CAAC,UAAU;GAC/B,SAAS,EAAE,QAAQ,CAAC,UAAU;GAC/B,CAAC;EACF,kBAAkB,EAAE,OAAO;GACzB,WAAW,EAAE,QAAQ,CAAC,UAAU;GAChC,aAAa,EAAE,QAAQ,CAAC,UAAU;GAClC,QAAQ,EAAE,QAAQ,CAAC,UAAU;GAC7B,UAAU,EAAE,QAAQ,CAAC,UAAU;GAC/B,SAAS,EAAE,QAAQ,CAAC,UAAU;GAC/B,CAAC;EAGF,6BAA6B,YAAY,OAAO;GAC9C,aAAa,EAAE,QAAQ,CAAC,UAAU;GAClC,eAAe,EAAE,QAAQ,CAAC,UAAU;GACrC,CAAC;EACF,iCAAiC,YAAY,OAAO;GAClD,aAAa,EAAE,QAAQ,CAAC,UAAU;GAClC,eAAe,EAAE,QAAQ,CAAC,UAAU;GACrC,CAAC;EACF,kCAAkC,YAAY,OAAO;GACnD,aAAa,EAAE,QAAQ,CAAC,UAAU;GAClC,SAAS,EAAE,QAAQ,CAAC,UAAU;GAC/B,CAAC;EAGF,kBAAkB,YAAY,MAAM,QAAQ;EAC5C,eAAe,EACZ,OAAO;GACN,SAAS,EAAE,QAAQ,CAAC,UAAU;GAC9B,UAAU,EAAE,MAAM,YAAY,CAAC,UAAU;GAC1C,CAAC,CACD,MAAM,QAAQ;EACjB,oBAAoB,EAAE,OAAO;GAC3B,YAAY,EAAE,QAAQ;GACtB,WAAW,EAAE,QAAQ,CAAC,UAAU;GAChC,QAAQ,EAAE,QAAQ,CAAC,UAAU;GAC7B,aAAa,EAAE,QAAQ,CAAC,UAAU;GACnC,CAAC;EAGF,2BAA2B,EAAE,OAAO;GAClC,YAAY,EAAE,QAAQ;GACtB,WAAW,EAAE,MAAM,EAAE,OAAO;IAAE,aAAa,EAAE,QAAQ;IAAE,OAAO,EAAE,QAAQ;IAAE,CAAC,CAAC;GAC5E,cAAc,EAAE,QAAQ,CAAC,UAAU;GACpC,CAAC;EACF,qBAAqB,YAAY,OAAO;GACtC,sBAAsB,EAAE,QAAQ;GAChC,wBAAwB,EAAE,QAAQ,CAAC,UAAU;GAC9C,CAAC;EACF,0BAA0B,YAAY,OAAO,EAC3C,iBAAiB,EAAE,QAAQ,EAC5B,CAAC;EACF,gCAAgC,EAAE,OAAO;GACvC,YAAY,EAAE,QAAQ;GACtB,UAAU,EAAE,QAAQ;GACpB,aAAa,EAAE,QAAQ;GACvB,mBAAmB,EAAE,QAAQ,CAAC,UAAU;GACzC,CAAC;EAGF,oBAAoB,EAAE,OAAO;GAC3B,aAAa,EAAE,QAAQ;GACvB,QAAQ,EAAE,QAAQ;GAClB,eAAe,EAAE,KAAK;IAAC;IAAW;IAAQ;IAAY;IAAa;IAAS,CAAC,CAAC,UAAU;GACzF,CAAC;EACF,mBAAmB,EAAE,OAAO;GAC1B,aAAa,EAAE,QAAQ;GACvB,WAAW,EAAE,QAAQ,CAAC,UAAU;GACjC,CAAC;EACF,mBAAmB,EAAE,OAAO;GAC1B,aAAa,EAAE,QAAQ;GACvB,cAAc,EAAE,QAAQ;GACzB,CAAC;EACF,yBAAyB,EAAE,OAAO;GAChC,aAAa,EAAE,QAAQ;GACvB,YAAY,EAAE,QAAQ;GACtB,QAAQ,EAAE,QAAQ;GAClB,cAAc,EAAE,QAAQ,CAAC,UAAU;GACpC,CAAC;EAGF,oBAAoB,EAAE,OAAO;GAC3B,UAAU,EAAE,QAAQ;GACpB,QAAQ,EAAE,QAAQ;GAClB,eAAe,EAAE,KAAK;IAAC;IAAQ;IAAS;IAAS,CAAC,CAAC,UAAU;GAC7D,UAAU,EAAE,MAAM,YAAY,CAAC,UAAU;GAC1C,CAAC;EACF,oBAAoB,EAAE,OAAO;GAC3B,UAAU,EAAE,QAAQ;GACpB,WAAW,EAAE,QAAQ;GACrB,eAAe,EAAE,QAAQ,CAAC,UAAU;GACpC,eAAe,EAAE,QAAQ,CAAC,UAAU;GACrC,CAAC;EAGF,mBAAmB,YAAY,OAAO;GACpC,iBAAiB,EAAE,QAAQ;GAC3B,qBAAqB,EAAE,KAAK;IAAC;IAAS;IAAO;IAAO,CAAC,CAAC,UAAU;GAChE,UAAU,EAAE,QAAQ,CAAC,UAAU;GAChC,CAAC;EACF,2BAA2B,YAAY,OAAO,EAC5C,qBAAqB,EAAE,KAAK;GAAC;GAAS;GAAO;GAAO,CAAC,CAAC,UAAU,EACjE,CAAC;EACH;CACF,CAAC;;;;AC9PF,MAAM,SAAS,EAAE,OAAO;CACtB,UAAU,EAAE,QAAQ;CACpB,gBAAgB,EAAE,KAAK;EAAC;EAAa;EAAU;EAAU;EAAc;EAAU;EAAW;EAAQ,CAAC,CAAC,UAAU;CAChH,YAAY,EAAE,QAAQ,CAAC,UAAU;CACjC,SAAS,EAAE,QAAQ,CAAC,UAAU;CAC9B,cAAc,EAAE,QAAQ,CAAC,UAAU;CACnC,iBAAiB,EAAE,QAAQ,CAAC,UAAU;CACtC,YAAY,EAAE,QAAQ,CAAC,UAAU;CACjC,UAAU,EAAE,QAAQ,CAAC,UAAU;CAC/B,YAAY,EAAE,QAAQ,CAAC,UAAU;CACjC,cAAc,EAAE,QAAQ,CAAC,UAAU;CACpC,CAAC;AAEF,MAAM,aAAa,EAAE,OAAO;CAC1B,cAAc,EAAE,QAAQ,CAAC,UAAU;CACnC,eAAe,EAAE,QAAQ,CAAC,UAAU;CACpC,cAAc,EAAE,QAAQ,CAAC,UAAU;CACnC,MAAM,EAAE,QAAQ,CAAC,UAAU;CAC3B,eAAe,EAAE,QAAQ,CAAC,UAAU;CACrC,CAAC;AAEF,MAAM,cAAc,EAAE,OAAO;CAC3B,aAAa,EAAE,QAAQ,CAAC,UAAU;CAClC,YAAY,EAAE,QAAQ,CAAC,UAAU;CACjC,mBAAmB,EAAE,QAAQ,CAAC,UAAU;CACxC,OAAO,EAAE,QAAQ,CAAC,UAAU;CAC5B,mBAAmB,EAAE,QAAQ,CAAC,UAAU;CACxC,kBAAkB,EAAE,QAAQ,CAAC,UAAU;CACvC,gBAAgB,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,UAAU;CAC9C,MAAM,EAAE,QAAQ,CAAC,UAAU;CAC5B,CAAC;AAEF,MAAM,YAAY,EAAE,OAAO;CACzB,eAAe,EAAE,QAAQ;CACzB,YAAY,EAAE,QAAQ,CAAC,UAAU;CACjC,YAAY,EAAE,QAAQ,CAAC,UAAU;CAClC,CAAC;AAEF,MAAa,KAAK,qBAAqB;CACrC,WAAW;CACX,QAAQ;EAEN,sBAAsB,OAAO,MAAM,YAAY;EAC/C,gCAAgC,OAAO,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;EACvE,kCAAkC,OAC/B,OAAO;GACN,UAAU,EAAE,QAAQ;GACpB,QAAQ,EAAE,QAAQ;GACnB,CAAC,CACD,MAAM,WAAW;EACpB,+BAA+B,OAC5B,OAAO,EACN,UAAU,EAAE,QAAQ,EACrB,CAAC,CACD,MAAM,UAAU;EAGnB,6BAA6B,OAC1B,OAAO,EACN,iBAAiB,EAAE,QAAQ,EAC5B,CAAC,CACD,MAAM,YAAY;EACrB,6BAA6B,OAC1B,OAAO;GACN,iBAAiB,EAAE,QAAQ;GAC3B,QAAQ,EAAE,QAAQ;GACnB,CAAC,CACD,MAAM,WAAW;EACpB,0BAA0B,OACvB,OAAO,EACN,iBAAiB,EAAE,QAAQ,EAC5B,CAAC,CACD,MAAM,UAAU;EAGnB,0BAA0B,OAAO,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;EAClE,4BAA4B,OAAO,OAAO;GACxC,WAAW,EAAE,QAAQ;GACrB,eAAe,EAAE,QAAQ;GACzB,aAAa,EAAE,QAAQ,CAAC,UAAU;GACnC,CAAC;EACF,yBAAyB,OACtB,OAAO,EACN,WAAW,EAAE,QAAQ,EACtB,CAAC,CACD,MAAM,UAAU;EAGnB,uBAAuB,OACpB,OAAO,EACN,aAAa,EAAE,QAAQ,EACxB,CAAC,CACD,MAAM,YAAY;EACrB,8BAA8B,OAAO,OAAO;GAC1C,aAAa,EAAE,QAAQ;GACvB,aAAa,EAAE,QAAQ,CAAC,UAAU;GACnC,CAAC;EACF,yBAAyB,OACtB,OAAO,EACN,aAAa,EAAE,QAAQ,EACxB,CAAC,CACD,MAAM,WAAW;EACpB,sBAAsB,OACnB,OAAO,EACN,aAAa,EAAE,QAAQ,EACxB,CAAC,CACD,MAAM,UAAU;EAGnB,6BAA6B,OAAO,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC;EACtE,2BAA2B,OACxB,OAAO;GACN,YAAY,EAAE,QAAQ;GACtB,gBAAgB,EAAE,QAAQ,CAAC,UAAU;GACtC,CAAC,CACD,MAAM,WAAW;EACpB,0BAA0B,OAAO,OAAO;GACtC,cAAc,EAAE,QAAQ;GACxB,gBAAgB,EAAE,QAAQ,CAAC,UAAU;GACtC,CAAC;EACF,8BAA8B,OAC3B,OAAO;GACN,cAAc,EAAE,QAAQ;GACxB,gBAAgB,EAAE,QAAQ,CAAC,UAAU;GACtC,CAAC,CACD,MAAM,WAAW;EAGpB,gCAAgC,OAAO,OAAO;GAC5C,SAAS,EAAE,QAAQ;GACnB,iBAAiB,EAAE,QAAQ,CAAC,UAAU;GACtC,YAAY,EAAE,QAAQ,CAAC,UAAU;GAClC,CAAC;EACF,8BAA8B,OAAO,OAAO;GAC1C,SAAS,EAAE,QAAQ;GACnB,QAAQ,EAAE,QAAQ,CAAC,UAAU;GAC9B,CAAC;EACF,+BAA+B,OAAO,OAAO;GAC3C,UAAU,EAAE,QAAQ;GACpB,QAAQ,EAAE,QAAQ,CAAC,UAAU;GAC9B,CAAC;EACF,oCAAoC,OAAO,OAAO;GAChD,aAAa,EAAE,MAAM,EAAE,QAAQ,CAAC;GAChC,qBAAqB,EAAE,QAAQ,CAAC,UAAU;GAC3C,CAAC;EAGF,4BAA4B,OAAO,MAAM,WAAW;EAGpD,2BAA2B,OAAO,OAAO,EACvC,aAAa,EAAE,QAAQ,CAAC,UAAU,EACnC,CAAC;EACF,8BAA8B,OAAO,OAAO;GAC1C,YAAY,EAAE,QAAQ;GACtB,WAAW,EAAE,QAAQ,CAAC,UAAU;GACjC,CAAC;EACF,6BAA6B,OAC1B,OAAO;GACN,aAAa,EAAE,QAAQ,CAAC,UAAU;GAClC,QAAQ,EAAE,QAAQ;GACnB,CAAC,CACD,MAAM,WAAW;EACrB;CACF,CAAC"}
1
+ {"version":3,"file":"catalogs.mjs","names":[],"sources":["../src/shared/catalogs/define-catalog.ts","../src/shared/catalogs/ecommerce.ts","../src/shared/catalogs/ai.ts"],"sourcesContent":["import type { z } from 'zod';\n\ntype EventMap = Record<string, z.ZodType>;\n\nexport interface EmitterCatalog<T extends EventMap> {\n readonly namespace: string;\n track<K extends string & keyof T>(\n event: K,\n properties: z.input<T[K]>,\n ): { event: K; properties: z.output<T[K]> };\n validate<K extends string & keyof T>(\n event: K,\n properties: z.input<T[K]>,\n ): z.output<T[K]>;\n schema<K extends string & keyof T>(event: K): T[K];\n eventNames(): (string & keyof T)[];\n}\n\nexport function defineEmitterCatalog<T extends EventMap>(config: {\n namespace: string;\n events: T;\n}): EmitterCatalog<T> {\n return {\n namespace: config.namespace,\n\n track<K extends string & keyof T>(\n event: K,\n properties: z.input<T[K]>,\n ): { event: K; properties: z.output<T[K]> } {\n const schema = config.events[event] as T[K];\n const validated = schema.parse(properties) as z.output<T[K]>;\n return { event, properties: validated };\n },\n\n validate<K extends string & keyof T>(\n event: K,\n properties: z.input<T[K]>,\n ): z.output<T[K]> {\n const schema = config.events[event] as T[K];\n return schema.parse(properties) as z.output<T[K]>;\n },\n\n schema<K extends string & keyof T>(event: K): T[K] {\n return config.events[event];\n },\n\n eventNames(): (string & keyof T)[] {\n return Object.keys(config.events) as (string & keyof T)[];\n },\n };\n}\n","// src/shared/catalogs/ecommerce.ts\nimport { z } from \"zod\";\n\nimport { defineEmitterCatalog } from \"./define-catalog\";\n\n// Shared schemas\nconst baseProduct = z.object({\n product_id: z.string(),\n name: z.string().optional(),\n brand: z.string().optional(),\n category: z.string().optional(),\n price: z.number().optional(),\n quantity: z.number().optional(),\n variant: z.string().optional(),\n position: z.number().optional(),\n image_url: z.string().optional(),\n url: z.string().optional(),\n coupon: z.string().optional(),\n availability: z.enum([\"in_stock\", \"out_of_stock\", \"preorder\", \"discontinued\"]).optional(),\n condition: z.enum([\"new\", \"used\", \"refurbished\"]).optional(),\n original_price: z.number().optional(),\n sale_price: z.number().optional(),\n merchant_id: z.string().optional(),\n merchant_name: z.string().optional(),\n merchant_url: z.string().optional(),\n affiliate_link: z.string().optional(),\n affiliate_network: z.string().optional(),\n commission_rate: z.number().optional(),\n commission_amount: z.number().optional(),\n gtin: z.string().optional(),\n mpn: z.string().optional()\n});\n\nconst orderBase = z.object({\n order_id: z.string(),\n revenue: z.number().optional(),\n total: z.number().optional(),\n shipping: z.number().optional(),\n tax: z.number().optional(),\n discount: z.number().optional(),\n coupon: z.string().optional(),\n currency: z.string().default(\"USD\"),\n affiliation: z.string().optional(),\n products: z.array(baseProduct).optional()\n});\n\nconst sharing = z.object({\n share_via: z.string().optional(),\n share_message: z.string().optional(),\n recipient: z.string().optional()\n});\n\nexport const ecommerce = defineEmitterCatalog({\n namespace: \"ecommerce\",\n events: {\n // Search & Discovery\n \"Product Searched\": z.object({ query: z.string(), results_count: z.number().optional() }),\n \"Search Results Viewed\": z.object({\n query: z.string(),\n results_count: z.number(),\n products: z.array(baseProduct).optional(),\n filters_applied: z.record(z.string(), z.unknown()).optional(),\n sort_order: z.string().optional()\n }),\n \"Product List Viewed\": z.object({\n list_id: z.string().optional(),\n category: z.string().optional(),\n products: z.array(baseProduct).optional()\n }),\n \"Product List Filtered\": z.object({\n list_id: z.string().optional(),\n category: z.string().optional(),\n products: z.array(baseProduct).optional(),\n filters: z.record(z.string(), z.unknown()).optional()\n }),\n \"Product Clicked\": baseProduct,\n \"Product Viewed\": baseProduct,\n \"Product Compared\": z.object({\n product: baseProduct,\n action: z.enum([\"added\", \"removed\", \"viewed\"]),\n comparison_list: z.array(baseProduct).optional()\n }),\n \"Product Recommendation Viewed\": z.object({\n recommendation_type: z.enum([\"similar\", \"frequently_bought\", \"trending\", \"personalized\", \"upsell\", \"cross_sell\"]),\n source: z.string(),\n products: z.array(baseProduct),\n algorithm: z.string().optional()\n }),\n \"Product Recommendation Clicked\": baseProduct.extend({\n recommendation_type: z.enum([\"similar\", \"frequently_bought\", \"trending\", \"personalized\", \"upsell\", \"cross_sell\"]),\n source: z.string(),\n position: z.number().optional()\n }),\n\n // Cart\n \"Cart Updated\": z.object({\n action: z.enum([\"added\", \"removed\", \"updated\"]),\n product_id: z.string(),\n cart_id: z.string().optional(),\n cart_total: z.number().optional(),\n quantity_change: z.number().optional()\n }),\n \"Cart Viewed\": z.object({\n cart_id: z.string().optional(),\n products: z.array(baseProduct).optional()\n }),\n \"Cart Abandoned\": z.object({\n cart_id: z.string(),\n cart_value: z.number(),\n products: z.array(baseProduct).optional(),\n time_in_cart: z.number().optional(),\n abandonment_reason: z.enum([\"timeout\", \"navigation\", \"closed\"]).optional()\n }),\n\n // Checkout\n \"Checkout Progressed\": z.object({\n step: z.number(),\n step_name: z.string(),\n action: z.enum([\"viewed\", \"completed\", \"abandoned\", \"error\"]),\n checkout_id: z.string().optional(),\n payment_method: z.string().optional(),\n shipping_method: z.string().optional(),\n error_message: z.string().optional(),\n products: z.array(baseProduct).optional()\n }),\n\n // Orders\n \"Order Completed\": orderBase,\n \"Order Failed\": orderBase.extend({\n failure_reason: z.string().optional(),\n error_code: z.string().optional()\n }),\n \"Order Refunded\": orderBase,\n \"Order Cancelled\": orderBase,\n \"Order Status Updated\": z.object({\n order_id: z.string(),\n status: z.enum([\"confirmed\", \"processing\", \"shipped\", \"out_for_delivery\", \"delivered\", \"returned\", \"failed\"]),\n previous_status: z.string().optional(),\n tracking_number: z.string().optional(),\n carrier: z.string().optional(),\n estimated_delivery: z.string().optional()\n }),\n\n // Coupons\n \"Coupon Applied\": z.object({\n coupon_id: z.string().optional(),\n coupon_name: z.string().optional(),\n discount: z.number().optional(),\n order_id: z.string().optional(),\n cart_id: z.string().optional()\n }),\n \"Coupon Removed\": z.object({\n coupon_id: z.string().optional(),\n coupon_name: z.string().optional(),\n reason: z.string().optional(),\n order_id: z.string().optional(),\n cart_id: z.string().optional()\n }),\n\n // Wishlist\n \"Product Added to Wishlist\": baseProduct.extend({\n wishlist_id: z.string().optional(),\n wishlist_name: z.string().optional()\n }),\n \"Product Removed from Wishlist\": baseProduct.extend({\n wishlist_id: z.string().optional(),\n wishlist_name: z.string().optional()\n }),\n \"Wishlist Product Added to Cart\": baseProduct.extend({\n wishlist_id: z.string().optional(),\n cart_id: z.string().optional()\n }),\n\n // Sharing\n \"Product Shared\": baseProduct.merge(sharing),\n \"Cart Shared\": z\n .object({\n cart_id: z.string().optional(),\n products: z.array(baseProduct).optional()\n })\n .merge(sharing),\n \"Product Reviewed\": z.object({\n product_id: z.string(),\n review_id: z.string().optional(),\n rating: z.string().optional(),\n review_body: z.string().optional()\n }),\n\n // Marketplace\n \"Price Comparison Viewed\": z.object({\n product_id: z.string(),\n merchants: z.array(z.object({ merchant_id: z.string(), price: z.number() })),\n lowest_price: z.number().optional()\n }),\n \"Merchant Selected\": baseProduct.extend({\n selected_merchant_id: z.string(),\n selected_merchant_name: z.string().optional()\n }),\n \"Affiliate Link Clicked\": baseProduct.extend({\n destination_url: z.string()\n }),\n \"Affiliate Conversion Tracked\": z.object({\n product_id: z.string(),\n order_id: z.string(),\n merchant_id: z.string(),\n commission_amount: z.number().optional()\n }),\n\n // Registry\n \"Registry Managed\": z.object({\n registry_id: z.string(),\n action: z.string(),\n registry_type: z.enum([\"wedding\", \"baby\", \"birthday\", \"universal\", \"custom\"]).optional()\n }),\n \"Registry Viewed\": z.object({\n registry_id: z.string(),\n viewer_id: z.string().optional()\n }),\n \"Registry Shared\": z.object({\n registry_id: z.string(),\n share_method: z.string()\n }),\n \"Registry Item Managed\": z.object({\n registry_id: z.string(),\n product_id: z.string(),\n action: z.string(),\n purchaser_id: z.string().optional()\n }),\n\n // Returns\n \"Return Requested\": z.object({\n order_id: z.string(),\n reason: z.string(),\n return_method: z.enum([\"mail\", \"store\", \"pickup\"]).optional(),\n products: z.array(baseProduct).optional()\n }),\n \"Return Completed\": z.object({\n order_id: z.string(),\n return_id: z.string(),\n refund_amount: z.number().optional(),\n refund_status: z.string().optional()\n }),\n\n // Engagement\n \"Price Alert Set\": baseProduct.extend({\n threshold_price: z.number(),\n notification_method: z.enum([\"email\", \"sms\", \"push\"]).optional(),\n currency: z.string().optional()\n }),\n \"Back In Stock Requested\": baseProduct.extend({\n notification_method: z.enum([\"email\", \"sms\", \"push\"]).optional()\n })\n }\n});\n","// src/shared/catalogs/ai.ts\nimport { z } from \"zod\";\n\nimport { defineEmitterCatalog } from \"./define-catalog\";\n\n// Shared schemas\nconst baseAI = z.object({\n model_id: z.string(),\n model_provider: z.enum([\"anthropic\", \"openai\", \"google\", \"perplexity\", \"cohere\", \"mistral\", \"other\"]).optional(),\n session_id: z.string().optional(),\n user_id: z.string().optional(),\n operation_id: z.string().optional(),\n conversation_id: z.string().optional(),\n message_id: z.string().optional(),\n agent_id: z.string().optional(),\n agent_name: z.string().optional(),\n workspace_id: z.string().optional()\n});\n\nconst tokenUsage = z.object({\n input_tokens: z.number().optional(),\n output_tokens: z.number().optional(),\n total_tokens: z.number().optional(),\n cost: z.number().optional(),\n cost_currency: z.string().optional()\n});\n\nconst modelConfig = z.object({\n temperature: z.number().optional(),\n max_tokens: z.number().optional(),\n max_output_tokens: z.number().optional(),\n top_p: z.number().optional(),\n frequency_penalty: z.number().optional(),\n presence_penalty: z.number().optional(),\n stop_sequences: z.array(z.string()).optional(),\n seed: z.number().optional()\n});\n\nconst withError = z.object({\n error_message: z.string(),\n error_code: z.string().optional(),\n error_type: z.string().optional()\n});\n\nexport const ai = defineEmitterCatalog({\n namespace: \"ai\",\n events: {\n // AI SDK v6 — Agent events\n ai_sdk_agent_created: baseAI.merge(modelConfig),\n ai_sdk_agent_execution_started: baseAI.extend({ agent_id: z.string() }),\n ai_sdk_agent_execution_completed: baseAI\n .extend({\n agent_id: z.string(),\n status: z.string()\n })\n .merge(tokenUsage),\n ai_sdk_agent_execution_failed: baseAI\n .extend({\n agent_id: z.string()\n })\n .merge(withError),\n\n // AI SDK v6 — Completion events\n ai_sdk_completion_requested: baseAI\n .extend({\n completion_type: z.string()\n })\n .merge(modelConfig),\n ai_sdk_completion_generated: baseAI\n .extend({\n completion_type: z.string(),\n status: z.string()\n })\n .merge(tokenUsage),\n ai_sdk_completion_failed: baseAI\n .extend({\n completion_type: z.string()\n })\n .merge(withError),\n\n // AI SDK v6 — Tool events\n ai_sdk_tool_call_started: baseAI.extend({ tool_name: z.string() }),\n ai_sdk_tool_call_completed: baseAI.extend({\n tool_name: z.string(),\n result_status: z.string(),\n duration_ms: z.number().optional()\n }),\n ai_sdk_tool_call_failed: baseAI\n .extend({\n tool_name: z.string()\n })\n .merge(withError),\n\n // AI SDK v6 — Streaming events\n ai_sdk_stream_started: baseAI\n .extend({\n stream_type: z.string()\n })\n .merge(modelConfig),\n ai_sdk_stream_chunk_received: baseAI.extend({\n stream_type: z.string(),\n chunk_index: z.number().optional()\n }),\n ai_sdk_stream_completed: baseAI\n .extend({\n stream_type: z.string()\n })\n .merge(tokenUsage),\n ai_sdk_stream_failed: baseAI\n .extend({\n stream_type: z.string()\n })\n .merge(withError),\n\n // AI SDK v6 — Chat events\n ai_sdk_chat_session_started: baseAI.extend({ session_id: z.string() }),\n ai_sdk_chat_session_ended: baseAI\n .extend({\n session_id: z.string(),\n total_messages: z.number().optional()\n })\n .merge(tokenUsage),\n ai_sdk_chat_message_sent: baseAI.extend({\n message_role: z.string(),\n content_length: z.number().optional()\n }),\n ai_sdk_chat_message_received: baseAI\n .extend({\n message_role: z.string(),\n content_length: z.number().optional()\n })\n .merge(tokenUsage),\n\n // AI SDK v6 — Chatbot-commerce events\n ai_sdk_chatbot_intent_detected: baseAI.extend({\n message: z.string(),\n detected_intent: z.string().optional(),\n confidence: z.number().optional()\n }),\n ai_sdk_chatbot_cart_assisted: baseAI.extend({\n cart_id: z.string(),\n action: z.string().optional()\n }),\n ai_sdk_chatbot_order_assisted: baseAI.extend({\n order_id: z.string(),\n action: z.string().optional()\n }),\n ai_sdk_chatbot_product_recommended: baseAI.extend({\n product_ids: z.array(z.string()),\n recommendation_type: z.string().optional()\n }),\n\n // AI SDK v6 — Token tracking\n ai_sdk_token_usage_tracked: baseAI.merge(tokenUsage),\n\n // AI SDK v6 — Multi-step events\n ai_sdk_multi_step_started: baseAI.extend({\n total_steps: z.number().optional()\n }),\n ai_sdk_multi_step_progressed: baseAI.extend({\n step_index: z.number(),\n step_name: z.string().optional()\n }),\n ai_sdk_multi_step_completed: baseAI\n .extend({\n total_steps: z.number().optional(),\n status: z.string()\n })\n .merge(tokenUsage)\n }\n});\n"],"mappings":"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"}