lua-cli 2.2.8-alpha.2 → 2.3.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (195) hide show
  1. package/API_REFERENCE.md +1408 -0
  2. package/CLI_REFERENCE.md +818 -0
  3. package/GETTING_STARTED.md +1040 -0
  4. package/README.md +738 -424
  5. package/TEMPLATE_GUIDE.md +1398 -0
  6. package/dist/api/agent.api.service.d.ts +33 -6
  7. package/dist/api/agent.api.service.js +27 -0
  8. package/dist/api/auth.api.service.d.ts +31 -2
  9. package/dist/api/auth.api.service.js +29 -0
  10. package/dist/api/basket.api.service.d.ts +53 -11
  11. package/dist/api/basket.api.service.js +63 -14
  12. package/dist/api/chat.api.service.d.ts +15 -3
  13. package/dist/api/chat.api.service.js +12 -0
  14. package/dist/api/credentials.d.ts +24 -0
  15. package/dist/api/credentials.js +46 -0
  16. package/dist/api/custom.data.api.service.d.ts +45 -9
  17. package/dist/api/custom.data.api.service.js +43 -9
  18. package/dist/api/lazy-instances.d.ts +49 -0
  19. package/dist/api/lazy-instances.js +95 -0
  20. package/dist/api/order.api.service.d.ts +34 -4
  21. package/dist/api/order.api.service.js +41 -3
  22. package/dist/api/products.api.service.d.ts +39 -9
  23. package/dist/api/products.api.service.js +43 -5
  24. package/dist/api/skills.api.service.d.ts +49 -2
  25. package/dist/api/skills.api.service.js +47 -1
  26. package/dist/api/tool.api.service.d.ts +39 -1
  27. package/dist/api/tool.api.service.js +38 -0
  28. package/dist/api/user.data.api.service.d.ts +23 -1
  29. package/dist/api/user.data.api.service.js +22 -0
  30. package/dist/api-exports.d.ts +236 -5
  31. package/dist/api-exports.js +264 -81
  32. package/dist/cli/command-definitions.d.ts +30 -0
  33. package/dist/cli/command-definitions.js +71 -0
  34. package/dist/commands/agents.d.ts +20 -0
  35. package/dist/commands/agents.js +24 -2
  36. package/dist/commands/apiKey.d.ts +23 -0
  37. package/dist/commands/apiKey.js +23 -0
  38. package/dist/commands/compile.d.ts +24 -0
  39. package/dist/commands/compile.js +67 -759
  40. package/dist/commands/configure.d.ts +24 -0
  41. package/dist/commands/configure.js +31 -96
  42. package/dist/commands/deploy.d.ts +31 -19
  43. package/dist/commands/deploy.js +45 -74
  44. package/dist/commands/destroy.d.ts +27 -0
  45. package/dist/commands/destroy.js +27 -1
  46. package/dist/commands/dev.d.ts +25 -62
  47. package/dist/commands/dev.js +58 -878
  48. package/dist/commands/init.d.ts +27 -0
  49. package/dist/commands/init.js +98 -260
  50. package/dist/commands/push.d.ts +24 -21
  51. package/dist/commands/push.js +39 -92
  52. package/dist/commands/test.d.ts +26 -0
  53. package/dist/commands/test.js +41 -188
  54. package/dist/common/basket.instance.d.ts +54 -3
  55. package/dist/common/basket.instance.js +56 -3
  56. package/dist/common/data.entry.instance.d.ts +25 -2
  57. package/dist/common/data.entry.instance.js +24 -0
  58. package/dist/common/http.client.d.ts +51 -1
  59. package/dist/common/http.client.js +50 -0
  60. package/dist/common/order.instance.d.ts +22 -0
  61. package/dist/common/order.instance.js +31 -4
  62. package/dist/common/product.instance.d.ts +22 -1
  63. package/dist/common/product.instance.js +24 -6
  64. package/dist/common/product.pagination.instance.d.ts +22 -2
  65. package/dist/common/product.pagination.instance.js +22 -1
  66. package/dist/common/product.search.instance.d.ts +13 -3
  67. package/dist/common/product.search.instance.js +12 -1
  68. package/dist/common/user.instance.d.ts +27 -3
  69. package/dist/common/user.instance.js +28 -7
  70. package/dist/config/auth.constants.d.ts +11 -0
  71. package/dist/config/auth.constants.js +11 -0
  72. package/dist/config/compile.constants.d.ts +67 -0
  73. package/dist/config/compile.constants.js +99 -0
  74. package/dist/config/constants.d.ts +5 -0
  75. package/dist/config/constants.js +5 -0
  76. package/dist/config/dev.constants.d.ts +65 -0
  77. package/dist/config/dev.constants.js +79 -0
  78. package/dist/config/init.constants.d.ts +23 -0
  79. package/dist/config/init.constants.js +41 -0
  80. package/dist/index.d.ts +19 -3
  81. package/dist/index.js +28 -44
  82. package/dist/interfaces/admin.d.ts +56 -50
  83. package/dist/interfaces/admin.js +4 -0
  84. package/dist/interfaces/agent.d.ts +21 -0
  85. package/dist/interfaces/agent.js +4 -0
  86. package/dist/interfaces/baskets.d.ts +60 -0
  87. package/dist/interfaces/baskets.js +12 -0
  88. package/dist/interfaces/chat.d.ts +48 -4
  89. package/dist/interfaces/chat.js +4 -0
  90. package/dist/interfaces/common.d.ts +62 -0
  91. package/dist/interfaces/common.js +8 -0
  92. package/dist/interfaces/compile.d.ts +11 -0
  93. package/dist/interfaces/compile.js +4 -0
  94. package/dist/interfaces/custom.data.d.ts +49 -19
  95. package/dist/interfaces/custom.data.js +4 -0
  96. package/dist/interfaces/deploy.d.ts +29 -0
  97. package/dist/interfaces/deploy.js +4 -0
  98. package/dist/interfaces/dev.d.ts +53 -0
  99. package/dist/interfaces/dev.js +5 -0
  100. package/dist/interfaces/init.d.ts +60 -0
  101. package/dist/interfaces/init.js +4 -0
  102. package/dist/interfaces/orders.d.ts +37 -0
  103. package/dist/interfaces/orders.js +12 -0
  104. package/dist/interfaces/product.d.ts +38 -10
  105. package/dist/interfaces/product.js +4 -0
  106. package/dist/interfaces/push.d.ts +26 -0
  107. package/dist/interfaces/push.js +4 -0
  108. package/dist/interfaces/test.d.ts +36 -0
  109. package/dist/interfaces/test.js +4 -0
  110. package/dist/services/auth.d.ts +54 -99
  111. package/dist/services/auth.js +76 -12
  112. package/dist/types/api-contracts.d.ts +211 -0
  113. package/dist/types/api-contracts.js +8 -0
  114. package/dist/types/compile.types.d.ts +76 -0
  115. package/dist/types/compile.types.js +4 -0
  116. package/dist/types/index.d.ts +23 -121
  117. package/dist/types/index.js +25 -14
  118. package/dist/types/skill.d.ts +142 -0
  119. package/dist/{skill.js → types/skill.js} +66 -17
  120. package/dist/types/tool-validation.d.ts +34 -0
  121. package/dist/types/tool-validation.js +42 -0
  122. package/dist/utils/auth-flows.d.ts +26 -0
  123. package/dist/utils/auth-flows.js +141 -0
  124. package/dist/utils/bundling.d.ts +36 -0
  125. package/dist/utils/bundling.js +137 -0
  126. package/dist/utils/compile.d.ts +37 -0
  127. package/dist/utils/compile.js +242 -0
  128. package/dist/utils/deploy-api.d.ts +26 -0
  129. package/dist/utils/deploy-api.js +53 -0
  130. package/dist/utils/deploy-helpers.d.ts +46 -0
  131. package/dist/utils/deploy-helpers.js +86 -0
  132. package/dist/utils/deployment.d.ts +25 -0
  133. package/dist/utils/deployment.js +161 -0
  134. package/dist/utils/dev-api.d.ts +61 -0
  135. package/dist/utils/dev-api.js +262 -0
  136. package/dist/utils/dev-helpers.d.ts +46 -0
  137. package/dist/utils/dev-helpers.js +83 -0
  138. package/dist/utils/dev-server.d.ts +24 -0
  139. package/dist/utils/dev-server.js +555 -0
  140. package/dist/utils/dev-watcher.d.ts +31 -0
  141. package/dist/utils/dev-watcher.js +110 -0
  142. package/dist/utils/files.js +0 -5
  143. package/dist/utils/init-agent.d.ts +34 -0
  144. package/dist/utils/init-agent.js +129 -0
  145. package/dist/utils/init-helpers.d.ts +41 -0
  146. package/dist/utils/init-helpers.js +73 -0
  147. package/dist/utils/init-prompts.d.ts +47 -0
  148. package/dist/utils/init-prompts.js +168 -0
  149. package/dist/utils/push-api.d.ts +15 -0
  150. package/dist/utils/push-api.js +48 -0
  151. package/dist/utils/push-helpers.d.ts +38 -0
  152. package/dist/utils/push-helpers.js +84 -0
  153. package/dist/utils/sandbox-storage.d.ts +27 -0
  154. package/dist/utils/sandbox-storage.js +71 -0
  155. package/dist/utils/sandbox.js +78 -114
  156. package/dist/utils/skill-management.d.ts +14 -0
  157. package/dist/utils/skill-management.js +148 -0
  158. package/dist/utils/test-helpers.d.ts +40 -0
  159. package/dist/utils/test-helpers.js +92 -0
  160. package/dist/utils/test-prompts.d.ts +23 -0
  161. package/dist/utils/test-prompts.js +186 -0
  162. package/dist/utils/tool-detection.d.ts +18 -0
  163. package/dist/utils/tool-detection.js +110 -0
  164. package/dist/web/app.css +941 -17
  165. package/dist/web/app.js +174 -22
  166. package/dist/web/index.html +7 -1
  167. package/package.json +13 -4
  168. package/template/QUICKSTART.md +299 -144
  169. package/template/README.md +928 -349
  170. package/template/TOOL_EXAMPLES.md +655 -0
  171. package/template/package-lock.json +5 -5
  172. package/template/package.json +1 -1
  173. package/template/src/index.ts +147 -207
  174. package/template/src/tools/BasketTool.ts +128 -0
  175. package/template/src/tools/CustomDataTool.ts +7 -13
  176. package/template/src/tools/OrderTool.ts +54 -0
  177. package/template/src/tools/PaymentTool.ts +1 -1
  178. package/template/src/tools/ProductsTool.ts +56 -118
  179. package/template/src/tools/UserDataTool.ts +4 -26
  180. package/dist/common/config.d.ts +0 -5
  181. package/dist/common/config.js +0 -5
  182. package/dist/custom-data-api.d.ts +0 -72
  183. package/dist/custom-data-api.js +0 -174
  184. package/dist/product-api.d.ts +0 -189
  185. package/dist/product-api.js +0 -141
  186. package/dist/services/api.d.ts +0 -549
  187. package/dist/services/api.js +0 -596
  188. package/dist/skill.d.ts +0 -50
  189. package/dist/types.d.ts +0 -1
  190. package/dist/types.js +0 -2
  191. package/dist/user-data-api.d.ts +0 -39
  192. package/dist/user-data-api.js +0 -50
  193. package/template/API.md +0 -604
  194. package/template/DEVELOPER.md +0 -771
  195. package/template/lua.skill.yaml +0 -7
@@ -1,189 +0,0 @@
1
- export interface Product {
2
- id: string;
3
- [key: string]: any;
4
- }
5
- export interface ProductsResponse {
6
- success: boolean;
7
- data: Product[];
8
- pagination: {
9
- currentPage: number;
10
- totalPages: number;
11
- totalCount: number;
12
- limit: number;
13
- hasNextPage: boolean;
14
- hasPrevPage: boolean;
15
- nextPage: number | null;
16
- prevPage: number | null;
17
- };
18
- }
19
- export interface CreateProductResponse {
20
- updated: boolean;
21
- isNew: boolean;
22
- product: Product;
23
- }
24
- export interface UpdateProductResponse {
25
- updated: boolean;
26
- isNew: boolean;
27
- product: Product;
28
- }
29
- export interface DeleteProductResponse {
30
- deleted: boolean;
31
- }
32
- export interface SearchProductsResponse {
33
- success: boolean;
34
- message: string;
35
- data: Product[];
36
- }
37
- export interface BasketItem {
38
- id: string;
39
- price: number;
40
- quantity: number;
41
- SKU?: string;
42
- addedAt?: string;
43
- [key: string]: any;
44
- }
45
- export interface Basket {
46
- id: string;
47
- userId: string;
48
- agentId: string;
49
- data: {
50
- currency: string;
51
- items: BasketItem[];
52
- createdAt: string;
53
- };
54
- common: {
55
- status: 'active' | 'checked_out' | 'abandoned' | 'expired';
56
- totalAmount: string | number;
57
- itemCount: number;
58
- };
59
- createdAt: string;
60
- updatedAt: string;
61
- __v: number;
62
- }
63
- export interface CreateBasketRequest {
64
- currency: string;
65
- }
66
- export interface CreateBasketResponse {
67
- success: boolean;
68
- message: string;
69
- data: Basket;
70
- }
71
- export interface GetBasketsResponse {
72
- success: boolean;
73
- message: string;
74
- data: Basket[];
75
- }
76
- export interface AddItemToBasketRequest {
77
- id: string;
78
- price: number;
79
- quantity: number;
80
- [key: string]: any;
81
- }
82
- export interface AddItemToBasketResponse {
83
- success: boolean;
84
- message: string;
85
- data: Basket;
86
- }
87
- export interface RemoveItemFromBasketResponse {
88
- success: boolean;
89
- message: string;
90
- data: Basket;
91
- }
92
- export interface ClearBasketResponse {
93
- success: boolean;
94
- message: string;
95
- data: Basket;
96
- }
97
- export interface UpdateBasketStatusResponse {
98
- success: boolean;
99
- message: string;
100
- data: Basket;
101
- }
102
- export interface Order {
103
- id: string;
104
- userId: string;
105
- agentId: string;
106
- orderId: string;
107
- data: {
108
- currency: string;
109
- items: BasketItem[];
110
- createdAt: string;
111
- basketId: string;
112
- orderDate: string;
113
- orderId: string;
114
- [key: string]: any;
115
- };
116
- common: {
117
- status: 'pending' | 'confirmed' | 'fulfilled' | 'cancelled';
118
- totalAmount: string | number;
119
- currency: string;
120
- itemCount: number;
121
- };
122
- createdAt: string;
123
- updatedAt: string;
124
- __v: number;
125
- }
126
- export interface CreateOrderRequest {
127
- basketId: string;
128
- data: {
129
- [key: string]: any;
130
- };
131
- }
132
- export interface CreateOrderResponse {
133
- success: boolean;
134
- message: string;
135
- data: Order;
136
- }
137
- export interface UpdateOrderStatusResponse {
138
- success: boolean;
139
- message: string;
140
- data: Order;
141
- }
142
- export interface GetUserOrdersResponse {
143
- success: boolean;
144
- message: string;
145
- data: Order[];
146
- }
147
- export type BasketStatus = 'active' | 'checked_out' | 'abandoned' | 'expired';
148
- export type OrderStatus = 'pending' | 'confirmed' | 'fulfilled' | 'cancelled';
149
- export declare class ProductAPI {
150
- products: Product[];
151
- baskets: Basket[];
152
- orders: Order[];
153
- constructor();
154
- get(page?: number, limit?: number): Promise<ProductsResponse>;
155
- create(data: Record<string, any>): Promise<CreateProductResponse>;
156
- update(data: Record<string, any>, productId: string): Promise<UpdateProductResponse>;
157
- delete(productId: string): Promise<DeleteProductResponse>;
158
- search(searchQuery: string): Promise<SearchProductsResponse>;
159
- createBasket(data: CreateBasketRequest): Promise<CreateBasketResponse>;
160
- getBaskets(status?: BasketStatus): Promise<GetBasketsResponse>;
161
- addItemToBasket(basketId: string, data: AddItemToBasketRequest): Promise<AddItemToBasketResponse>;
162
- removeItemFromBasket(basketId: string, itemId: string): Promise<RemoveItemFromBasketResponse>;
163
- clearBasket(basketId: string): Promise<ClearBasketResponse>;
164
- updateBasketStatus(basketId: string, status: BasketStatus): Promise<UpdateBasketStatusResponse>;
165
- createOrder(data: CreateOrderRequest): Promise<CreateOrderResponse>;
166
- updateOrderStatus(orderId: string, status: OrderStatus): Promise<UpdateOrderStatusResponse>;
167
- getUserOrders(userId: string): Promise<GetUserOrdersResponse>;
168
- }
169
- export declare const product: {
170
- create: (data: Record<string, any>) => Promise<CreateProductResponse>;
171
- get: (page?: number, limit?: number) => Promise<ProductsResponse>;
172
- update: (data: Record<string, any>, productId: string) => Promise<UpdateProductResponse>;
173
- delete: (productId: string) => Promise<DeleteProductResponse>;
174
- search: (searchQuery: string) => Promise<SearchProductsResponse>;
175
- data: ProductAPI;
176
- basket: {
177
- create: (data: CreateBasketRequest) => Promise<CreateBasketResponse>;
178
- get: (status?: BasketStatus) => Promise<GetBasketsResponse>;
179
- addItem: (basketId: string, data: AddItemToBasketRequest) => Promise<AddItemToBasketResponse>;
180
- removeItem: (basketId: string, itemId: string) => Promise<RemoveItemFromBasketResponse>;
181
- clear: (basketId: string) => Promise<ClearBasketResponse>;
182
- updateStatus: (basketId: string, status: BasketStatus) => Promise<UpdateBasketStatusResponse>;
183
- };
184
- order: {
185
- create: (data: CreateOrderRequest) => Promise<CreateOrderResponse>;
186
- updateStatus: (orderId: string, status: OrderStatus) => Promise<UpdateOrderStatusResponse>;
187
- get: (userId: string) => Promise<GetUserOrdersResponse>;
188
- };
189
- };
@@ -1,141 +0,0 @@
1
- export class ProductAPI {
2
- constructor() {
3
- this.products = [];
4
- this.baskets = [];
5
- this.orders = [];
6
- }
7
- async get(page = 1, limit = 10) {
8
- return {
9
- success: true,
10
- data: this.products,
11
- pagination: {
12
- currentPage: page,
13
- totalPages: 1,
14
- totalCount: this.products.length,
15
- limit: limit,
16
- hasNextPage: false,
17
- hasPrevPage: false,
18
- nextPage: null,
19
- prevPage: null
20
- }
21
- };
22
- }
23
- async create(data) {
24
- const product = data;
25
- const existingIndex = this.products.findIndex(p => p.id === product.id);
26
- if (existingIndex >= 0) {
27
- this.products[existingIndex] = product;
28
- return { updated: true, isNew: false, product };
29
- }
30
- else {
31
- this.products.push(product);
32
- return { updated: false, isNew: true, product };
33
- }
34
- }
35
- async update(data, productId) {
36
- const product = data;
37
- const existingIndex = this.products.findIndex(p => p.id === productId);
38
- if (existingIndex >= 0) {
39
- this.products[existingIndex] = { ...this.products[existingIndex], ...product };
40
- return { updated: true, isNew: false, product: this.products[existingIndex] };
41
- }
42
- else {
43
- this.products.push(product);
44
- return { updated: false, isNew: true, product };
45
- }
46
- }
47
- async delete(productId) {
48
- const initialLength = this.products.length;
49
- this.products = this.products.filter((product) => product.id !== productId);
50
- return { deleted: this.products.length < initialLength };
51
- }
52
- async search(searchQuery) {
53
- const results = this.products.filter(product => Object.values(product).some(value => String(value).toLowerCase().includes(searchQuery.toLowerCase())));
54
- return {
55
- success: true,
56
- message: `Successfully found ${results.length} products for "${searchQuery}"`,
57
- data: results
58
- };
59
- }
60
- async createBasket(data) {
61
- const basket = { ...data, createdAt: new Date().toISOString(), updatedAt: new Date().toISOString(), __v: 0 };
62
- this.baskets.push(basket);
63
- return { success: true, message: 'Basket created successfully', data: basket };
64
- }
65
- async getBaskets(status) {
66
- if (status) {
67
- return { success: true, message: 'Baskets fetched successfully', data: this.baskets.filter((basket) => basket.common.status === status) };
68
- }
69
- return { success: true, message: 'Baskets fetched successfully', data: this.baskets };
70
- }
71
- async addItemToBasket(basketId, data) {
72
- const basket = this.baskets.find((basket) => basket.id === basketId);
73
- if (basket) {
74
- basket.data.items.push(data);
75
- return { success: true, message: 'Item added to basket successfully', data: basket };
76
- }
77
- return { success: false, message: 'Basket not found', data: null };
78
- }
79
- async removeItemFromBasket(basketId, itemId) {
80
- const basket = this.baskets.find((basket) => basket.id === basketId);
81
- if (basket) {
82
- basket.data.items = basket.data.items.filter((item) => item.id !== itemId);
83
- return { success: true, message: 'Item removed from basket successfully', data: basket };
84
- }
85
- return { success: false, message: 'Basket not found', data: null };
86
- }
87
- async clearBasket(basketId) {
88
- const basket = this.baskets.find((basket) => basket.id === basketId);
89
- if (basket) {
90
- basket.data.items = [];
91
- return { success: true, message: 'Basket cleared successfully', data: basket };
92
- }
93
- return { success: false, message: 'Basket not found', data: null };
94
- }
95
- async updateBasketStatus(basketId, status) {
96
- const basket = this.baskets.find((basket) => basket.id === basketId);
97
- if (basket) {
98
- basket.common.status = status;
99
- return { success: true, message: 'Basket status updated successfully', data: basket };
100
- }
101
- return { success: false, message: 'Basket not found', data: null };
102
- }
103
- async createOrder(data) {
104
- const order = { ...data, createdAt: new Date().toISOString(), updatedAt: new Date().toISOString(), __v: 0 };
105
- this.orders.push(order);
106
- return { success: true, message: 'Order created successfully', data: order };
107
- }
108
- async updateOrderStatus(orderId, status) {
109
- const order = this.orders.find((order) => order.id === orderId);
110
- if (order) {
111
- order.common.status = status;
112
- return { success: true, message: 'Order status updated successfully', data: order };
113
- }
114
- return { success: false, message: 'Order not found', data: null };
115
- }
116
- async getUserOrders(userId) {
117
- return { success: true, message: 'User orders fetched successfully', data: this.orders.filter((order) => order.userId === userId) };
118
- }
119
- }
120
- const productAPI = new ProductAPI();
121
- export const product = {
122
- create: productAPI.create,
123
- get: productAPI.get,
124
- update: productAPI.update,
125
- delete: productAPI.delete,
126
- search: productAPI.search,
127
- data: productAPI,
128
- basket: {
129
- create: productAPI.createBasket,
130
- get: productAPI.getBaskets,
131
- addItem: productAPI.addItemToBasket,
132
- removeItem: productAPI.removeItemFromBasket,
133
- clear: productAPI.clearBasket,
134
- updateStatus: productAPI.updateBasketStatus
135
- },
136
- order: {
137
- create: productAPI.createOrder,
138
- updateStatus: productAPI.updateOrderStatus,
139
- get: productAPI.getUserOrders
140
- }
141
- };