@browserlessapi/inferlo 0.3.0 → 0.4.0

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 (54) hide show
  1. package/README.md +4 -1
  2. package/dist/ai/index.d.ts +44 -2
  3. package/dist/ai/index.js +158 -35
  4. package/dist/ai/index.js.map +1 -1
  5. package/dist/ai/providers.d.ts +56 -3
  6. package/dist/ai/providers.js +97 -7
  7. package/dist/ai/providers.js.map +1 -1
  8. package/dist/app.d.ts +15 -0
  9. package/dist/app.js +59 -5
  10. package/dist/app.js.map +1 -1
  11. package/dist/cli/main.js +55 -2
  12. package/dist/cli/main.js.map +1 -1
  13. package/dist/client-ip.d.ts +7 -0
  14. package/dist/client-ip.js +27 -0
  15. package/dist/client-ip.js.map +1 -0
  16. package/dist/cron.d.ts +17 -0
  17. package/dist/cron.js +143 -0
  18. package/dist/cron.js.map +1 -0
  19. package/dist/db/migrate.d.ts +6 -3
  20. package/dist/db/migrate.js +126 -10
  21. package/dist/db/migrate.js.map +1 -1
  22. package/dist/db/table.d.ts +52 -7
  23. package/dist/db/table.js +105 -8
  24. package/dist/db/table.js.map +1 -1
  25. package/dist/describe.d.ts +19 -1
  26. package/dist/describe.js +6 -1
  27. package/dist/describe.js.map +1 -1
  28. package/dist/index.d.ts +8 -3
  29. package/dist/index.js +3 -1
  30. package/dist/index.js.map +1 -1
  31. package/dist/jobs.d.ts +177 -0
  32. package/dist/jobs.js +374 -0
  33. package/dist/jobs.js.map +1 -0
  34. package/dist/mcp.d.ts +4 -0
  35. package/dist/mcp.js +43 -38
  36. package/dist/mcp.js.map +1 -1
  37. package/dist/openapi.js +3 -0
  38. package/dist/openapi.js.map +1 -1
  39. package/dist/rate-limit.d.ts +45 -0
  40. package/dist/rate-limit.js +93 -0
  41. package/dist/rate-limit.js.map +1 -0
  42. package/dist/route.d.ts +6 -0
  43. package/dist/route.js.map +1 -1
  44. package/dist/schema.d.ts +10 -2
  45. package/dist/schema.js +13 -1
  46. package/dist/schema.js.map +1 -1
  47. package/dist/serve.js +5 -2
  48. package/dist/serve.js.map +1 -1
  49. package/package.json +1 -1
  50. package/templates/app/AGENTS.md +10 -8
  51. package/templates/app/README.md +2 -0
  52. package/templates/app/package.json.tpl +1 -0
  53. package/templates/app/src/routes/notes.ts +1 -1
  54. package/templates/app/src/server.ts +10 -0
@@ -10,6 +10,7 @@
10
10
  "scripts": {
11
11
  "dev": "inferlo dev",
12
12
  "start": "node src/server.ts",
13
+ "worker": "inferlo worker",
13
14
  "check": "inferlo check",
14
15
  "describe": "inferlo describe",
15
16
  "db:push": "inferlo db push",
@@ -47,7 +47,7 @@ export const deleteNote = route
47
47
  const Summary = t.object({ summary: t.string().max(300).describe("One or two sentences") });
48
48
 
49
49
  export const summarizeNote = route
50
- .post("/notes/:id/summary", { params: IdParams, summary: "Summarize a note with AI" })
50
+ .post("/notes/:id/summary", { params: IdParams, summary: "Summarize a note with AI", rateLimit: { max: 20, per: "hour" } })
51
51
  .handle(async ({ params, user, db, ai }) => {
52
52
  const note = await db.notes.get(params.id);
53
53
  if (note.ownerId !== user.id) throw notFound();
@@ -14,3 +14,13 @@ if (app.db.$adapter.dialect === "memory") {
14
14
 
15
15
  const server = await app.listen(env.int("PORT", { default: 3000 }));
16
16
  console.log(`{{name}} running on http://localhost:${server.port}`);
17
+
18
+ // Background jobs run in this process. With jobQueue: { store: "database" } in src/app.ts they can
19
+ // also run in separate processes: npm run worker.
20
+ const jobs = app.jobs.start();
21
+
22
+ process.on("SIGTERM", async () => {
23
+ await jobs.stop(); // waits for the running job
24
+ await server.close();
25
+ await app.db.$close();
26
+ });