@fayz-ai/sdk 0.8.1 → 0.8.3

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 (42) hide show
  1. package/dist/agent.cjs +16 -0
  2. package/dist/agent.cjs.map +1 -0
  3. package/dist/agent.d.ts +114 -0
  4. package/dist/agent.d.ts.map +1 -0
  5. package/dist/agent.js +3 -0
  6. package/dist/agent.js.map +1 -0
  7. package/dist/{chunk-3UTEZ2QL.cjs → chunk-746EA3BV.cjs} +95 -4
  8. package/dist/chunk-746EA3BV.cjs.map +1 -0
  9. package/dist/chunk-7UZH4XEV.cjs +66 -0
  10. package/dist/chunk-7UZH4XEV.cjs.map +1 -0
  11. package/dist/{chunk-PRCW5CVJ.js → chunk-7ZHG7XTA.js} +95 -5
  12. package/dist/chunk-7ZHG7XTA.js.map +1 -0
  13. package/dist/{chunk-MCB2L25R.cjs → chunk-DK3ZA6NA.cjs} +3 -3
  14. package/dist/{chunk-MCB2L25R.cjs.map → chunk-DK3ZA6NA.cjs.map} +1 -1
  15. package/dist/{chunk-ZTJ2BJ3I.js → chunk-SKARZBEH.js} +26 -26
  16. package/dist/{chunk-ZTJ2BJ3I.js.map → chunk-SKARZBEH.js.map} +1 -1
  17. package/dist/{chunk-R4XVCBFG.js → chunk-UWOQAD5A.js} +3 -3
  18. package/dist/{chunk-R4XVCBFG.js.map → chunk-UWOQAD5A.js.map} +1 -1
  19. package/dist/chunk-VPMRURSI.js +63 -0
  20. package/dist/chunk-VPMRURSI.js.map +1 -0
  21. package/dist/{chunk-6OWKU36M.cjs → chunk-WMH7SIER.cjs} +26 -26
  22. package/dist/{chunk-6OWKU36M.cjs.map → chunk-WMH7SIER.cjs.map} +1 -1
  23. package/dist/client.cjs +5 -5
  24. package/dist/client.js +2 -2
  25. package/dist/index.cjs +30 -21
  26. package/dist/index.d.ts +2 -0
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +5 -4
  29. package/dist/release-channels.cjs +5 -5
  30. package/dist/release-channels.js +1 -1
  31. package/dist/shop.cjs +7 -3
  32. package/dist/shop.d.ts +76 -0
  33. package/dist/shop.d.ts.map +1 -1
  34. package/dist/shop.js +1 -1
  35. package/package.json +7 -1
  36. package/src/agent.test.ts +114 -0
  37. package/src/agent.ts +188 -0
  38. package/src/index.ts +11 -0
  39. package/src/release-channels.json +24 -24
  40. package/src/shop.ts +174 -2
  41. package/dist/chunk-3UTEZ2QL.cjs.map +0 -1
  42. package/dist/chunk-PRCW5CVJ.js.map +0 -1
package/dist/shop.d.ts CHANGED
@@ -8,6 +8,22 @@ export interface FayzShopProviderOptions {
8
8
  productMetadata?: FayzShopProductMetadataOverlay[];
9
9
  fetcher?: typeof fetch;
10
10
  }
11
+ /**
12
+ * The signed-in shopper's access token, when there is one.
13
+ *
14
+ * PostgREST decides who you are from the Authorization bearer, and this client
15
+ * used to send the publishable key unconditionally — so every request arrived
16
+ * as `anon` even with a customer logged in. auth.uid() was therefore always
17
+ * null, which is why shop_resolve_customer never linked auth_user_id (0 of 519
18
+ * customers in the pool) and why the self-read policy on public.addresses could
19
+ * never match a row.
20
+ *
21
+ * A module-level resolver rather than a per-app option on purpose: the wiring
22
+ * is done once by initStorefrontRuntime, so a storefront cannot forget it and
23
+ * silently fall back to anonymous. Mirrors setShopTenantResolver in plugin-shop.
24
+ */
25
+ type AccessTokenResolver = () => string | null | undefined;
26
+ export declare function setShopAccessTokenResolver(resolver: AccessTokenResolver | null): void;
11
27
  export interface FayzShopProductMetadataOverlay {
12
28
  sku?: string | null;
13
29
  slug?: string | null;
@@ -257,6 +273,9 @@ export declare function createFayzShopProvider(options: FayzShopProviderOptions)
257
273
  customerEmail: string | null;
258
274
  discountCode: string | null;
259
275
  notes: string | null;
276
+ shippingAddress: Record<string, string | undefined> | null;
277
+ paymentMethodKind: string | null;
278
+ paidAt: string | null;
260
279
  items: {
261
280
  id: string;
262
281
  orderId: string;
@@ -289,6 +308,9 @@ export declare function createFayzShopProvider(options: FayzShopProviderOptions)
289
308
  customerEmail: string | null;
290
309
  discountCode: string | null;
291
310
  notes: string | null;
311
+ shippingAddress: Record<string, string | undefined> | null;
312
+ paymentMethodKind: string | null;
313
+ paidAt: string | null;
292
314
  items: {
293
315
  id: string;
294
316
  orderId: string;
@@ -321,6 +343,9 @@ export declare function createFayzShopProvider(options: FayzShopProviderOptions)
321
343
  customerEmail: string | null;
322
344
  discountCode: string | null;
323
345
  notes: string | null;
346
+ shippingAddress: Record<string, string | undefined> | null;
347
+ paymentMethodKind: string | null;
348
+ paidAt: string | null;
324
349
  items: {
325
350
  id: string;
326
351
  orderId: string;
@@ -370,6 +395,9 @@ export declare function createFayzShopProvider(options: FayzShopProviderOptions)
370
395
  customerEmail: string | null;
371
396
  discountCode: string | null;
372
397
  notes: string | null;
398
+ shippingAddress: Record<string, string | undefined> | null;
399
+ paymentMethodKind: string | null;
400
+ paidAt: string | null;
373
401
  items: {
374
402
  id: string;
375
403
  orderId: string;
@@ -402,6 +430,9 @@ export declare function createFayzShopProvider(options: FayzShopProviderOptions)
402
430
  customerEmail: string | null;
403
431
  discountCode: string | null;
404
432
  notes: string | null;
433
+ shippingAddress: Record<string, string | undefined> | null;
434
+ paymentMethodKind: string | null;
435
+ paidAt: string | null;
405
436
  items: {
406
437
  id: string;
407
438
  orderId: string;
@@ -427,6 +458,22 @@ export declare function createFayzShopProvider(options: FayzShopProviderOptions)
427
458
  notes?: string;
428
459
  discountCode?: string;
429
460
  shippingTotal?: number;
461
+ /** Structured delivery address; frozen on the order and saved to the
462
+ * customer's address book by the RPC. */
463
+ shippingAddress?: {
464
+ postalCode: string;
465
+ street: string;
466
+ number?: string;
467
+ complement?: string;
468
+ district?: string;
469
+ city: string;
470
+ state: string;
471
+ country?: string;
472
+ recipient?: string;
473
+ phone?: string;
474
+ label?: string;
475
+ };
476
+ paymentMethod?: "pix" | "credit_card" | "debit_card" | "boleto" | "cash" | "other";
430
477
  items: Array<{
431
478
  productId: string;
432
479
  quantity: number;
@@ -450,6 +497,9 @@ export declare function createFayzShopProvider(options: FayzShopProviderOptions)
450
497
  customerEmail: string | null;
451
498
  discountCode: string | null;
452
499
  notes: string | null;
500
+ shippingAddress: Record<string, string | undefined> | null;
501
+ paymentMethodKind: string | null;
502
+ paidAt: string | null;
453
503
  items: {
454
504
  id: string;
455
505
  orderId: string;
@@ -506,6 +556,32 @@ export declare function createFayzShopProvider(options: FayzShopProviderOptions)
506
556
  createdAt: string;
507
557
  updatedAt: string;
508
558
  }>;
559
+ quoteShipping(postalCode: string, subtotal: number): Promise<{
560
+ zoneId: string;
561
+ name: string;
562
+ carrier: string | undefined;
563
+ rate: number;
564
+ baseRate: number;
565
+ freeAbove: number | null;
566
+ etaMinDays: number | undefined;
567
+ etaMaxDays: number | undefined;
568
+ free: boolean;
569
+ }[]>;
570
+ listCustomerAddresses(customerId: string): Promise<{
571
+ id: string;
572
+ label: string | undefined;
573
+ recipient: string | undefined;
574
+ phone: string | undefined;
575
+ postalCode: string;
576
+ street: string;
577
+ number: string | undefined;
578
+ complement: string | undefined;
579
+ district: string | undefined;
580
+ city: string;
581
+ state: string;
582
+ country: string | undefined;
583
+ isDefault: boolean;
584
+ }[]>;
509
585
  createCustomer(input: {
510
586
  firstName: string;
511
587
  lastName?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"shop.d.ts","sourceRoot":"","sources":["../src/shop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shop.d.ts","sourceRoot":"","sources":["../src/shop.ts"],"names":[],"mappings":"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"}
package/dist/shop.js CHANGED
@@ -1,3 +1,3 @@
1
- export { FayzShopError, createFayzShopProvider } from './chunk-PRCW5CVJ.js';
1
+ export { FayzShopError, createFayzShopProvider, setShopAccessTokenResolver } from './chunk-7ZHG7XTA.js';
2
2
  //# sourceMappingURL=shop.js.map
3
3
  //# sourceMappingURL=shop.js.map
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "fayz": {
4
4
  "status": "beta"
5
5
  },
6
- "version": "0.8.1",
6
+ "version": "0.8.3",
7
7
  "description": "Fayz SDK — API client, app params, runtime broker helpers, and shared types for generated Fayz projects",
8
8
  "type": "module",
9
9
  "main": "./dist/index.cjs",
@@ -28,6 +28,12 @@
28
28
  "import": "./dist/client.js",
29
29
  "require": "./dist/client.cjs"
30
30
  },
31
+ "./agent": {
32
+ "source": "./src/agent.ts",
33
+ "types": "./dist/agent.d.ts",
34
+ "import": "./dist/agent.js",
35
+ "require": "./dist/agent.cjs"
36
+ },
31
37
  "./shop": {
32
38
  "source": "./src/shop.ts",
33
39
  "types": "./dist/shop.d.ts",
@@ -0,0 +1,114 @@
1
+ import { describe, expect, it, vi } from 'vitest'
2
+
3
+ import { createFayzAgentClient, FayzAgentError } from './agent'
4
+
5
+ function jsonResponse(body: unknown, status = 200): Response {
6
+ return new Response(JSON.stringify(body), {
7
+ status,
8
+ headers: { 'Content-Type': 'application/json' },
9
+ })
10
+ }
11
+
12
+ function client(fetcher: typeof fetch) {
13
+ return createFayzAgentClient({
14
+ baseUrl: 'http://localhost:5173/api',
15
+ projectId: 'project-1',
16
+ publishableKey: 'fayzpk_test',
17
+ fetcher,
18
+ })
19
+ }
20
+
21
+ describe('createFayzAgentClient', () => {
22
+ it('targets the public broker and presents the publishable key', async () => {
23
+ const fetcher = vi.fn<typeof fetch>().mockResolvedValue(
24
+ jsonResponse({ conversationId: 'conv-1', content: 'Hi', toolCalls: [] }),
25
+ )
26
+
27
+ await client(fetcher).chat({ message: 'Hello' })
28
+
29
+ const [url, init] = fetcher.mock.calls[0]
30
+ expect(url).toBe('http://localhost:5173/api/public/projects/project-1/agents/chat')
31
+ expect((init?.headers as Record<string, string>)['x-fayz-agent-key']).toBe('fayzpk_test')
32
+ expect(JSON.parse(init?.body as string)).toEqual({ message: 'Hello' })
33
+ })
34
+
35
+ it('forwards the tool catalog and returns the calls the model asked for', async () => {
36
+ const toolCall = { id: 'call-1', name: 'getTeamMembers', arguments: { role: 'staff' } }
37
+ const fetcher = vi.fn<typeof fetch>().mockResolvedValue(
38
+ jsonResponse({ conversationId: 'conv-1', content: '', toolCalls: [toolCall] }),
39
+ )
40
+
41
+ const response = await client(fetcher).chat({
42
+ message: "Who's on my team?",
43
+ tools: [
44
+ {
45
+ name: 'getTeamMembers',
46
+ description: 'Lists team members.',
47
+ parameters: { type: 'object', properties: { role: { type: 'string' } } },
48
+ },
49
+ ],
50
+ })
51
+
52
+ expect(response.toolCalls).toEqual([toolCall])
53
+ expect(JSON.parse(fetcher.mock.calls[0][1]?.body as string).tools).toHaveLength(1)
54
+ })
55
+
56
+ it('sends tool results with the conversation id and no new message', async () => {
57
+ const fetcher = vi.fn<typeof fetch>().mockResolvedValue(
58
+ jsonResponse({ conversationId: 'conv-1', content: 'Ana and Bruno.', toolCalls: [] }),
59
+ )
60
+
61
+ const response = await client(fetcher).chat({
62
+ conversationId: 'conv-1',
63
+ toolResults: [{ toolCallId: 'call-1', content: '{"total":2}' }],
64
+ })
65
+
66
+ const body = JSON.parse(fetcher.mock.calls[0][1]?.body as string)
67
+ expect(body).toEqual({
68
+ conversationId: 'conv-1',
69
+ toolResults: [{ toolCallId: 'call-1', content: '{"total":2}' }],
70
+ })
71
+ expect(response.content).toBe('Ana and Bruno.')
72
+ expect(response.toolCalls).toEqual([])
73
+ })
74
+
75
+ it('tolerates a response that omits toolCalls', async () => {
76
+ const fetcher = vi.fn<typeof fetch>().mockResolvedValue(
77
+ jsonResponse({ conversationId: 'conv-1', content: 'Hi' }),
78
+ )
79
+
80
+ const response = await client(fetcher).chat({ message: 'Hello' })
81
+
82
+ expect(response.toolCalls).toEqual([])
83
+ })
84
+
85
+ it('surfaces the broker error message and status', async () => {
86
+ const fetcher = vi
87
+ .fn<typeof fetch>()
88
+ .mockResolvedValue(jsonResponse({ error: 'Invalid agent key' }, 401))
89
+
90
+ await expect(client(fetcher).chat({ message: 'Hello' })).rejects.toMatchObject({
91
+ name: 'FayzAgentError',
92
+ status: 401,
93
+ message: 'Invalid agent key',
94
+ })
95
+ })
96
+
97
+ it('falls back to a generic message when the error body is not JSON', async () => {
98
+ const fetcher = vi
99
+ .fn<typeof fetch>()
100
+ .mockResolvedValue(new Response('gateway down', { status: 502 }))
101
+
102
+ await expect(client(fetcher).getInfo()).rejects.toThrow(FayzAgentError)
103
+ })
104
+
105
+ it('reads the agent identity from /config', async () => {
106
+ const agent = { id: 'a-1', name: 'Glow', description: null, icon: '💇' }
107
+ const fetcher = vi.fn<typeof fetch>().mockResolvedValue(jsonResponse({ agent }))
108
+
109
+ expect(await client(fetcher).getInfo()).toEqual(agent)
110
+ expect(fetcher.mock.calls[0][0]).toBe(
111
+ 'http://localhost:5173/api/public/projects/project-1/agents/config',
112
+ )
113
+ })
114
+ })
package/src/agent.ts ADDED
@@ -0,0 +1,188 @@
1
+ /**
2
+ * Client for the Fayz agent broker — the runtime surface a generated app uses
3
+ * to reach the AI agent configured for its project in Fayz.
4
+ *
5
+ * Mirrors `createFayzShopProvider`: the app holds a publishable key, Fayz holds
6
+ * the model credentials. The key ships in the bundle the same way a Supabase
7
+ * anon key does; it only ever resolves to the one agent its web channel belongs
8
+ * to, and the broker rate-limits per project.
9
+ *
10
+ * Tools are client-plane. The app declares what it can do (`tools`), the model
11
+ * decides what to call, and the app executes the calls against its own session
12
+ * before handing results back. Fayz never needs the app's data credentials.
13
+ */
14
+
15
+ export interface FayzAgentClientOptions {
16
+ /** Fayz API base, e.g. https://fayz.ai/api */
17
+ baseUrl: string
18
+ projectId: string
19
+ /** Publishable key of the project's WEB agent channel. */
20
+ publishableKey: string
21
+ fetcher?: typeof fetch
22
+ }
23
+
24
+ export interface FayzAgentTool {
25
+ name: string
26
+ description: string
27
+ /** JSON Schema for the tool's arguments. */
28
+ parameters?: Record<string, unknown>
29
+ }
30
+
31
+ export interface FayzAgentToolCall {
32
+ id: string
33
+ name: string
34
+ arguments: Record<string, unknown>
35
+ }
36
+
37
+ export interface FayzAgentToolResult {
38
+ toolCallId: string
39
+ content: string
40
+ }
41
+
42
+ export interface FayzAgentChatInput {
43
+ /** New end-user message. Omit when replying with tool results. */
44
+ message?: string
45
+ conversationId?: string
46
+ /** Identity of the end user, required by channels with an INTERNAL audience. */
47
+ externalUserId?: string
48
+ /** Human label for that user, so the owner's dashboard shows a name. */
49
+ externalUserName?: string
50
+ tools?: FayzAgentTool[]
51
+ toolResults?: FayzAgentToolResult[]
52
+ /** Decision for a server-parked write (broker PENDING_CONFIRMATION step). */
53
+ confirmAction?: { id: string; approved: boolean }
54
+ /** Runtime context the agent should know about (page, locale, tenant). */
55
+ context?: Record<string, unknown>
56
+ signal?: AbortSignal
57
+ }
58
+
59
+ /** A server-plane write the broker parked pending human confirmation. */
60
+ export interface FayzAgentPendingAction {
61
+ id: string
62
+ toolName: string
63
+ title?: string
64
+ params?: Record<string, unknown>
65
+ }
66
+
67
+ export interface FayzAgentChatResponse {
68
+ conversationId: string
69
+ content: string
70
+ toolCalls: FayzAgentToolCall[]
71
+ /** Present when the broker is waiting on a confirmAction for this write. */
72
+ pendingAction?: FayzAgentPendingAction
73
+ }
74
+
75
+ export interface FayzAgentInfo {
76
+ id: string
77
+ name: string
78
+ description: string | null
79
+ icon: string | null
80
+ }
81
+
82
+ export class FayzAgentError extends Error {
83
+ constructor(
84
+ message: string,
85
+ readonly status: number,
86
+ ) {
87
+ super(message)
88
+ this.name = 'FayzAgentError'
89
+ }
90
+ }
91
+
92
+ export interface FayzAgentConversationSummary {
93
+ id: string
94
+ title: string | null
95
+ /** Last activity — the field the list is ordered by. */
96
+ updatedAt: string
97
+ }
98
+
99
+ export interface FayzAgentConversationMessage {
100
+ id: string
101
+ role: string
102
+ content: string
103
+ createdAt: string
104
+ /** Tool calls this reply made, with their results — so a resumed thread shows
105
+ * the same trace and record links it showed live. */
106
+ toolCalls?: Array<{
107
+ name: string
108
+ arguments?: Record<string, unknown>
109
+ result?: string
110
+ }>
111
+ }
112
+
113
+ export interface FayzAgentConversationDetail {
114
+ id: string
115
+ title: string | null
116
+ messages: FayzAgentConversationMessage[]
117
+ }
118
+
119
+ export interface FayzAgentClient {
120
+ /** Identity of the agent behind the key, for rendering its name/icon. */
121
+ getInfo(signal?: AbortSignal): Promise<FayzAgentInfo>
122
+ chat(input: FayzAgentChatInput): Promise<FayzAgentChatResponse>
123
+ /** The signed-in user's own threads, most-recently-active first. */
124
+ listConversations(externalUserId?: string, signal?: AbortSignal): Promise<FayzAgentConversationSummary[]>
125
+ /** One thread with its transcript — 404s on another user's thread. */
126
+ getConversation(
127
+ conversationId: string,
128
+ externalUserId?: string,
129
+ signal?: AbortSignal,
130
+ ): Promise<FayzAgentConversationDetail>
131
+ }
132
+
133
+ export function createFayzAgentClient(options: FayzAgentClientOptions): FayzAgentClient {
134
+ const fetcher = options.fetcher ?? globalThis.fetch
135
+ const base = `${options.baseUrl.replace(/\/+$/, '')}/public/projects/${options.projectId}/agents`
136
+ const headers = {
137
+ 'Content-Type': 'application/json',
138
+ 'x-fayz-agent-key': options.publishableKey,
139
+ }
140
+
141
+ async function request<T>(path: string, init: RequestInit): Promise<T> {
142
+ const response = await fetcher(`${base}${path}`, { ...init, headers })
143
+ if (!response.ok) {
144
+ const body = (await response.json().catch(() => null)) as { error?: string } | null
145
+ throw new FayzAgentError(body?.error ?? `Agent request failed (${response.status})`, response.status)
146
+ }
147
+ return (await response.json()) as T
148
+ }
149
+
150
+ return {
151
+ async getInfo(signal) {
152
+ const body = await request<{ agent: FayzAgentInfo }>('/config', { method: 'GET', signal })
153
+ return body.agent
154
+ },
155
+
156
+ async chat({ signal, ...input }) {
157
+ const body = await request<Partial<FayzAgentChatResponse>>('/chat', {
158
+ method: 'POST',
159
+ body: JSON.stringify(input),
160
+ signal,
161
+ })
162
+ return {
163
+ conversationId: body.conversationId ?? '',
164
+ content: body.content ?? '',
165
+ toolCalls: body.toolCalls ?? [],
166
+ ...(body.pendingAction ? { pendingAction: body.pendingAction } : {}),
167
+ }
168
+ },
169
+
170
+ async listConversations(externalUserId, signal) {
171
+ const query = externalUserId ? `?externalUserId=${encodeURIComponent(externalUserId)}` : ''
172
+ const body = await request<{ conversations?: FayzAgentConversationSummary[] }>(
173
+ `/conversations${query}`,
174
+ { method: 'GET', signal },
175
+ )
176
+ return body.conversations ?? []
177
+ },
178
+
179
+ async getConversation(conversationId, externalUserId, signal) {
180
+ const query = externalUserId ? `?externalUserId=${encodeURIComponent(externalUserId)}` : ''
181
+ const body = await request<{ conversation: FayzAgentConversationDetail }>(
182
+ `/conversations/${encodeURIComponent(conversationId)}${query}`,
183
+ { method: 'GET', signal },
184
+ )
185
+ return body.conversation
186
+ },
187
+ }
188
+ }
package/src/index.ts CHANGED
@@ -41,6 +41,17 @@ export {
41
41
  createFayzRuntimeClient,
42
42
  FayzRuntimeError,
43
43
  } from './runtime'
44
+ export { createFayzAgentClient, FayzAgentError } from './agent'
45
+ export type {
46
+ FayzAgentChatInput,
47
+ FayzAgentChatResponse,
48
+ FayzAgentClient,
49
+ FayzAgentClientOptions,
50
+ FayzAgentInfo,
51
+ FayzAgentTool,
52
+ FayzAgentToolCall,
53
+ FayzAgentToolResult,
54
+ } from './agent'
44
55
  export {
45
56
  createFayzShopProvider,
46
57
  FayzShopError,
@@ -1,20 +1,20 @@
1
1
  {
2
2
  "channels": {
3
3
  "stable": {
4
- "@fayz-ai/sdk": "^0.8.0",
5
- "@fayz-ai/core": "^0.8.0",
6
- "@fayz-ai/auth": "^0.8.0",
7
- "@fayz-ai/ui": "^0.8.0",
8
- "@fayz-ai/saas": "^0.8.0",
4
+ "@fayz-ai/sdk": "^0.8.1",
5
+ "@fayz-ai/core": "^0.8.1",
6
+ "@fayz-ai/auth": "^0.8.1",
7
+ "@fayz-ai/ui": "^0.8.1",
8
+ "@fayz-ai/saas": "^0.8.1",
9
9
  "@fayz-ai/shop": "^0.8.0",
10
10
  "@fayz-ai/storefront": "^0.8.0",
11
11
  "@fayz-ai/portal": "^0.8.0",
12
12
  "@fayz-ai/courses": "^0.8.0",
13
13
  "@fayz-ai/db": "^0.8.0",
14
- "@fayz-ai/plugin-agenda": "^0.8.0",
14
+ "@fayz-ai/plugin-agenda": "^0.8.1",
15
15
  "@fayz-ai/plugin-auth": "^0.8.0",
16
16
  "@fayz-ai/plugin-automations": "^0.8.0",
17
- "@fayz-ai/plugin-blog": "^0.8.0",
17
+ "@fayz-ai/plugin-blog": "^0.8.1",
18
18
  "@fayz-ai/plugin-conversations": "^0.8.0",
19
19
  "@fayz-ai/plugin-courses": "^0.8.0",
20
20
  "@fayz-ai/plugin-crm": "^0.8.0",
@@ -22,7 +22,7 @@
22
22
  "@fayz-ai/plugin-financial": "^0.8.0",
23
23
  "@fayz-ai/plugin-forms": "^0.8.0",
24
24
  "@fayz-ai/plugin-inventory": "^0.8.0",
25
- "@fayz-ai/plugin-marketing": "^0.8.0",
25
+ "@fayz-ai/plugin-marketing": "^0.8.1",
26
26
  "@fayz-ai/plugin-menu": "^0.8.0",
27
27
  "@fayz-ai/plugin-orders": "^0.8.0",
28
28
  "@fayz-ai/plugin-payments": "^0.8.0",
@@ -34,20 +34,20 @@
34
34
  "@fayz-ai/plugin-tasks": "^0.8.0"
35
35
  },
36
36
  "latest": {
37
- "@fayz-ai/sdk": "^0.8.0",
38
- "@fayz-ai/core": "^0.8.0",
39
- "@fayz-ai/auth": "^0.8.0",
40
- "@fayz-ai/ui": "^0.8.0",
41
- "@fayz-ai/saas": "^0.8.0",
37
+ "@fayz-ai/sdk": "^0.8.1",
38
+ "@fayz-ai/core": "^0.8.1",
39
+ "@fayz-ai/auth": "^0.8.1",
40
+ "@fayz-ai/ui": "^0.8.1",
41
+ "@fayz-ai/saas": "^0.8.1",
42
42
  "@fayz-ai/shop": "^0.8.0",
43
43
  "@fayz-ai/storefront": "^0.8.0",
44
44
  "@fayz-ai/portal": "^0.8.0",
45
45
  "@fayz-ai/courses": "^0.8.0",
46
46
  "@fayz-ai/db": "^0.8.0",
47
- "@fayz-ai/plugin-agenda": "^0.8.0",
47
+ "@fayz-ai/plugin-agenda": "^0.8.1",
48
48
  "@fayz-ai/plugin-auth": "^0.8.0",
49
49
  "@fayz-ai/plugin-automations": "^0.8.0",
50
- "@fayz-ai/plugin-blog": "^0.8.0",
50
+ "@fayz-ai/plugin-blog": "^0.8.1",
51
51
  "@fayz-ai/plugin-conversations": "^0.8.0",
52
52
  "@fayz-ai/plugin-courses": "^0.8.0",
53
53
  "@fayz-ai/plugin-crm": "^0.8.0",
@@ -55,7 +55,7 @@
55
55
  "@fayz-ai/plugin-financial": "^0.8.0",
56
56
  "@fayz-ai/plugin-forms": "^0.8.0",
57
57
  "@fayz-ai/plugin-inventory": "^0.8.0",
58
- "@fayz-ai/plugin-marketing": "^0.8.0",
58
+ "@fayz-ai/plugin-marketing": "^0.8.1",
59
59
  "@fayz-ai/plugin-menu": "^0.8.0",
60
60
  "@fayz-ai/plugin-orders": "^0.8.0",
61
61
  "@fayz-ai/plugin-payments": "^0.8.0",
@@ -67,20 +67,20 @@
67
67
  "@fayz-ai/plugin-tasks": "^0.8.0"
68
68
  },
69
69
  "preview": {
70
- "@fayz-ai/sdk": "^0.8.0",
71
- "@fayz-ai/core": "^0.8.0",
72
- "@fayz-ai/auth": "^0.8.0",
73
- "@fayz-ai/ui": "^0.8.0",
74
- "@fayz-ai/saas": "^0.8.0",
70
+ "@fayz-ai/sdk": "^0.8.1",
71
+ "@fayz-ai/core": "^0.8.1",
72
+ "@fayz-ai/auth": "^0.8.1",
73
+ "@fayz-ai/ui": "^0.8.1",
74
+ "@fayz-ai/saas": "^0.8.1",
75
75
  "@fayz-ai/shop": "^0.8.0",
76
76
  "@fayz-ai/storefront": "^0.8.0",
77
77
  "@fayz-ai/portal": "^0.8.0",
78
78
  "@fayz-ai/courses": "^0.8.0",
79
79
  "@fayz-ai/db": "^0.8.0",
80
- "@fayz-ai/plugin-agenda": "^0.8.0",
80
+ "@fayz-ai/plugin-agenda": "^0.8.1",
81
81
  "@fayz-ai/plugin-auth": "^0.8.0",
82
82
  "@fayz-ai/plugin-automations": "^0.8.0",
83
- "@fayz-ai/plugin-blog": "^0.8.0",
83
+ "@fayz-ai/plugin-blog": "^0.8.1",
84
84
  "@fayz-ai/plugin-conversations": "^0.8.0",
85
85
  "@fayz-ai/plugin-courses": "^0.8.0",
86
86
  "@fayz-ai/plugin-crm": "^0.8.0",
@@ -88,7 +88,7 @@
88
88
  "@fayz-ai/plugin-financial": "^0.8.0",
89
89
  "@fayz-ai/plugin-forms": "^0.8.0",
90
90
  "@fayz-ai/plugin-inventory": "^0.8.0",
91
- "@fayz-ai/plugin-marketing": "^0.8.0",
91
+ "@fayz-ai/plugin-marketing": "^0.8.1",
92
92
  "@fayz-ai/plugin-menu": "^0.8.0",
93
93
  "@fayz-ai/plugin-orders": "^0.8.0",
94
94
  "@fayz-ai/plugin-payments": "^0.8.0",