lua-cli 3.1.0-alpha.3 → 3.1.0-alpha.5

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 (125) hide show
  1. package/README.md +0 -4
  2. package/dist/api/cdn.api.service.d.ts +18 -0
  3. package/dist/api/cdn.api.service.js +43 -0
  4. package/dist/api/custom.data.api.service.d.ts +4 -3
  5. package/dist/api/custom.data.api.service.js +4 -3
  6. package/dist/api/developer.api.service.d.ts +54 -1
  7. package/dist/api/developer.api.service.js +89 -0
  8. package/dist/api/job.api.service.d.ts +33 -100
  9. package/dist/api/job.api.service.js +27 -11
  10. package/dist/api/lazy-instances.d.ts +16 -0
  11. package/dist/api/lazy-instances.js +32 -0
  12. package/dist/api/postprocessor.api.service.d.ts +3 -13
  13. package/dist/api/postprocessor.api.service.js +2 -4
  14. package/dist/api/preprocessor.api.service.d.ts +1 -8
  15. package/dist/api/preprocessor.api.service.js +1 -2
  16. package/dist/api/webhook.api.service.d.ts +1 -3
  17. package/dist/api/webhook.api.service.js +1 -1
  18. package/dist/api/whatsapp-templates.api.service.d.ts +40 -0
  19. package/dist/api/whatsapp-templates.api.service.js +78 -0
  20. package/dist/api-exports.d.ts +153 -6
  21. package/dist/api-exports.js +177 -21
  22. package/dist/cli/command-definitions.js +34 -7
  23. package/dist/commands/admin.js +1 -1
  24. package/dist/commands/channels.js +1 -1
  25. package/dist/commands/chat.js +2 -4
  26. package/dist/commands/compile.js +23 -4
  27. package/dist/commands/evals.d.ts +8 -0
  28. package/dist/commands/evals.js +41 -0
  29. package/dist/commands/index.d.ts +2 -0
  30. package/dist/commands/index.js +2 -0
  31. package/dist/commands/init.d.ts +10 -1
  32. package/dist/commands/init.js +23 -46
  33. package/dist/commands/jobs.js +5 -5
  34. package/dist/commands/mcp.d.ts +18 -0
  35. package/dist/commands/mcp.js +393 -0
  36. package/dist/commands/push.js +174 -23
  37. package/dist/common/data.entry.instance.d.ts +1 -1
  38. package/dist/common/data.entry.instance.js +4 -4
  39. package/dist/common/job.instance.d.ts +59 -7
  40. package/dist/common/job.instance.js +84 -19
  41. package/dist/config/constants.d.ts +1 -0
  42. package/dist/config/constants.js +1 -0
  43. package/dist/index.js +1 -0
  44. package/dist/interfaces/agent.d.ts +0 -3
  45. package/dist/interfaces/cdn.d.ts +24 -0
  46. package/dist/interfaces/cdn.js +5 -0
  47. package/dist/interfaces/compile.d.ts +1 -0
  48. package/dist/interfaces/custom.data.d.ts +3 -3
  49. package/dist/interfaces/index.d.ts +2 -1
  50. package/dist/interfaces/init.d.ts +0 -1
  51. package/dist/interfaces/jobs.d.ts +88 -132
  52. package/dist/interfaces/jobs.js +1 -1
  53. package/dist/interfaces/mcp.d.ts +64 -0
  54. package/dist/interfaces/mcp.js +5 -0
  55. package/dist/interfaces/postprocessors.d.ts +0 -3
  56. package/dist/interfaces/preprocessors.d.ts +0 -3
  57. package/dist/interfaces/webhooks.d.ts +0 -5
  58. package/dist/interfaces/whatsapp-templates.d.ts +104 -0
  59. package/dist/interfaces/whatsapp-templates.js +5 -0
  60. package/dist/types/api-contracts.d.ts +68 -14
  61. package/dist/types/compile.types.d.ts +5 -6
  62. package/dist/types/index.d.ts +2 -2
  63. package/dist/types/index.js +3 -1
  64. package/dist/types/skill.d.ts +181 -103
  65. package/dist/types/skill.js +123 -91
  66. package/dist/utils/agent-management.d.ts +3 -5
  67. package/dist/utils/agent-management.js +6 -8
  68. package/dist/utils/bundling.d.ts +4 -11
  69. package/dist/utils/bundling.js +24 -33
  70. package/dist/utils/compile.d.ts +17 -9
  71. package/dist/utils/compile.js +72 -88
  72. package/dist/utils/deployment.js +13 -7
  73. package/dist/utils/dev-api.js +1 -4
  74. package/dist/utils/dev-server.js +1 -1
  75. package/dist/utils/files.d.ts +11 -4
  76. package/dist/utils/files.js +17 -14
  77. package/dist/utils/init-agent.d.ts +1 -2
  78. package/dist/utils/init-agent.js +4 -6
  79. package/dist/utils/init-helpers.d.ts +4 -4
  80. package/dist/utils/init-helpers.js +10 -11
  81. package/dist/utils/job-management.js +0 -2
  82. package/dist/utils/mcp-server-management.d.ts +23 -0
  83. package/dist/utils/mcp-server-management.js +212 -0
  84. package/dist/utils/postprocessor-management.js +2 -4
  85. package/dist/utils/preprocessor-management.js +2 -4
  86. package/dist/utils/sandbox.d.ts +4 -2
  87. package/dist/utils/sandbox.js +38 -9
  88. package/dist/utils/webhook-management.js +1 -3
  89. package/dist/web/app.css +1505 -14
  90. package/dist/web/app.js +79 -64
  91. package/package.json +2 -6
  92. package/template/QUICKSTART.md +57 -774
  93. package/template/README.md +80 -907
  94. package/template/examples/README.md +106 -0
  95. package/template/{src → examples}/jobs/AbandonedBasketProcessorJob.ts +67 -14
  96. package/template/{src → examples}/jobs/DailyCleanupJob.ts +0 -3
  97. package/template/{src → examples}/jobs/DataMigrationJob.ts +0 -3
  98. package/template/{src → examples}/jobs/HealthCheckJob.ts +0 -3
  99. package/template/{src → examples}/postprocessors/modifyResponse.ts +3 -4
  100. package/template/examples/preprocessors/messageMatching.ts +35 -0
  101. package/template/{src → examples}/skills/basket.skill.ts +0 -1
  102. package/template/{src → examples}/skills/product.skill.ts +0 -1
  103. package/template/{src → examples}/skills/tools/GameScoreTrackerTool.ts +11 -15
  104. package/template/{src → examples}/skills/tools/OrderTool.ts +25 -0
  105. package/template/examples/skills/tools/PremiumFeatureTool.ts +98 -0
  106. package/template/{src → examples}/skills/tools/UserDataTool.ts +34 -0
  107. package/template/{src → examples}/skills/user.skill.ts +0 -1
  108. package/template/examples/webhooks/FileUploadWebhook.ts +86 -0
  109. package/template/{src → examples}/webhooks/PaymentWebhook.ts +12 -9
  110. package/template/examples/webhooks/UserEventWebhook.ts +105 -0
  111. package/template/package-lock.json +7895 -0
  112. package/template/package.json +1 -1
  113. package/template/src/index.ts +40 -22
  114. package/template/src/preprocessors/messageMatching.ts +0 -22
  115. package/template/src/webhooks/UserEventWebhook.ts +0 -77
  116. /package/template/{src → examples}/services/ApiService.ts +0 -0
  117. /package/template/{src → examples}/services/GetWeather.ts +0 -0
  118. /package/template/{src → examples}/skills/tools/BasketTool.ts +0 -0
  119. /package/template/{src → examples}/skills/tools/CreateInlineJob.ts +0 -0
  120. /package/template/{src → examples}/skills/tools/CreatePostTool.ts +0 -0
  121. /package/template/{src → examples}/skills/tools/CustomDataTool.ts +0 -0
  122. /package/template/{src → examples}/skills/tools/GetWeatherTool.ts +0 -0
  123. /package/template/{src → examples}/skills/tools/PaymentTool.ts +0 -0
  124. /package/template/{src → examples}/skills/tools/ProductsTool.ts +0 -0
  125. /package/template/{src → examples}/skills/tools/SmartBasketTool.ts +0 -0
@@ -20,7 +20,7 @@
20
20
  "inquirer": "^12.9.6",
21
21
  "stripe": "^17.5.0",
22
22
  "js-yaml": "^4.1.0",
23
- "lua-cli": "^3.0.3",
23
+ "lua-cli": "^3.1.0-alpha.5",
24
24
  "openai": "^5.23.0",
25
25
  "uuid": "^13.0.0",
26
26
  "zod": "^3.24.1"
@@ -1,31 +1,49 @@
1
1
  import { LuaAgent } from "lua-cli";
2
- import userSkill from "./skills/user.skill";
3
- import productSkill from "./skills/product.skill";
4
- import basketSkill from "./skills/basket.skill";
5
- import userEventWebhook from "./webhooks/UserEventWebhook";
6
- import healthCheckJob from "./jobs/HealthCheckJob";
7
- import messageMatchingPreProcessor from "./preprocessors/messageMatching";
8
- import modifyResponsePostProcessor from "./postprocessors/modifyResponse";
9
2
 
3
+ /**
4
+ * Your Lua AI Agent
5
+ *
6
+ * This is a minimal agent ready for you to customize.
7
+ * Add skills, webhooks, jobs, and processors as needed.
8
+ *
9
+ * Quick start:
10
+ * 1. Create a tool in src/skills/tools/MyTool.ts
11
+ * 2. Create a skill in src/skills/my.skill.ts
12
+ * 3. Import and add it to the skills array below
13
+ * 4. Run `lua test` to test your tool
14
+ * 5. Run `lua chat` to chat with your agent
15
+ *
16
+ * Need examples? Run `lua init --with-examples` in a new project
17
+ * or see: https://docs.heylua.ai/examples
18
+ */
10
19
  const agent = new LuaAgent({
11
- name: ``,
12
- persona: ``,
13
- skills: [ userSkill, productSkill, basketSkill ],
14
- webhooks: [ userEventWebhook ],
15
- jobs: [ healthCheckJob ],
16
- preProcessors: [ messageMatchingPreProcessor ],
17
- postProcessors: [ modifyResponsePostProcessor ]
20
+ name: ``, // Set during lua init
21
+ persona: ``, // Set during lua init
22
+
23
+ // Add your skills here
24
+ skills: [],
25
+
26
+ // Optional: Add webhooks for external integrations
27
+ // webhooks: [],
28
+
29
+ // Optional: Add scheduled jobs
30
+ // jobs: [],
31
+
32
+ // Optional: Add message preprocessors
33
+ // preProcessors: [],
34
+
35
+ // Optional: Add response postprocessors
36
+ // postProcessors: [],
18
37
  });
19
38
 
20
-
21
39
  async function main() {
22
- try {
23
-
24
- } catch (error) {
25
- console.error("💥 Unexpected error:", error);
26
- process.exit(1);
27
- }
40
+ // Your agent is ready!
41
+ //
42
+ // Next steps:
43
+ // 1. Create your first skill with tools
44
+ // 2. Run `lua test` to test tools interactively
45
+ // 3. Run `lua chat` to chat with your agent
46
+ // 4. Run `lua push` to deploy
28
47
  }
29
48
 
30
49
  main().catch(console.error);
31
-
@@ -1,22 +0,0 @@
1
- import { ChatMessage, PreProcessor, UserDataInstance } from "lua-cli";
2
-
3
-
4
- const messageMatchingPreProcessor = new PreProcessor({
5
- name: "message-matching",
6
- description: "Matches the message to the appropriate skill",
7
- context: "Matches the message to the appropriate skill",
8
- execute: async (user: UserDataInstance, messages: ChatMessage[], channel: string) => {
9
- console.log("Message matching pre processor", user, messages, channel);
10
- console.log("User data", await user.data);
11
- console.log("Messages", messages);
12
- console.log("Channel", channel);
13
- //check if message type text contains test and return the message
14
- const testMessage = messages.find((message) => message.type === "text" && message.text.includes("test"));
15
- if (testMessage) {
16
- return [{ type: "text", text: "Tell the user that you got their test message and nothing else" }];
17
- }
18
- return messages;
19
- }
20
- });
21
-
22
- export default messageMatchingPreProcessor;
@@ -1,77 +0,0 @@
1
- /**
2
- * User Event Webhook Example
3
- *
4
- * This webhook receives user events from external systems (e.g., CRM, marketing tools).
5
- * It validates incoming data and stores events for processing.
6
- *
7
- * Webhook URL: {API_URL}/webhooks/{agentId}/{webhookId}
8
- */
9
-
10
- import { LuaWebhook, Data } from "lua-cli";
11
- import { z } from "zod";
12
-
13
- const userEventWebhook = new LuaWebhook({
14
- name: "user-events",
15
- version: "1.0.0",
16
- description: "Receives user events from external systems",
17
- context: "This webhook handles user registration, profile updates, and deletion events. " +
18
- "It validates the incoming data, stores events in the database, and can trigger follow-up actions.",
19
-
20
- // Validate query parameters (optional source tracking)
21
- querySchema: z.object({
22
- source: z.string().optional(),
23
- version: z.string().optional()
24
- }),
25
-
26
- // Validate headers (require API key for security)
27
- headerSchema: z.object({
28
- 'x-api-key': z.string(),
29
- 'content-type': z.string().optional()
30
- }),
31
-
32
- // Validate request body
33
- bodySchema: z.object({
34
- eventType: z.enum(['signup', 'update', 'delete']),
35
- userId: z.string(),
36
- email: z.string().email(),
37
- name: z.string().optional(),
38
- metadata: z.record(z.any()).optional(),
39
- timestamp: z.string()
40
- }),
41
-
42
- execute: async ({ query, headers, body }) => {
43
- console.log(`📥 Received ${body.eventType} event for user:`, body.email);
44
- console.log(`📍 Source:`, query?.source || 'unknown');
45
-
46
- // Security: Validate API key (in production, use env variable)
47
- const expectedKey = process.env.WEBHOOK_API_KEY || 'your-secret-key';
48
- if (headers['x-api-key'] !== expectedKey) {
49
- throw new Error('Invalid API key');
50
- }
51
-
52
- // Store the event in custom data collection
53
- const eventData = {
54
- ...body,
55
- source: query?.source,
56
- receivedAt: new Date().toISOString(),
57
- processed: false
58
- };
59
-
60
- const result = await Data.create('user-events', eventData,
61
- `${body.eventType} ${body.email} ${body.name || ''}`
62
- );
63
-
64
- console.log('✅ Event stored successfully:', result.id);
65
-
66
- // Return success response
67
- return {
68
- success: true,
69
- eventId: result.id,
70
- userId: body.userId,
71
- timestamp: new Date().toISOString()
72
- };
73
- }
74
- });
75
-
76
- export default userEventWebhook;
77
-