@lobu/cli 5.0.0 → 6.0.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 (266) hide show
  1. package/README.md +11 -26
  2. package/dist/__tests__/chat.integration.test.js +19 -19
  3. package/dist/__tests__/chat.integration.test.js.map +1 -1
  4. package/dist/__tests__/dev.test.d.ts +2 -0
  5. package/dist/__tests__/dev.test.d.ts.map +1 -0
  6. package/dist/__tests__/dev.test.js +25 -0
  7. package/dist/__tests__/dev.test.js.map +1 -0
  8. package/dist/__tests__/init-memory.test.js +1 -14
  9. package/dist/__tests__/init-memory.test.js.map +1 -1
  10. package/dist/__tests__/token.test.d.ts +2 -0
  11. package/dist/__tests__/token.test.d.ts.map +1 -0
  12. package/dist/__tests__/token.test.js +52 -0
  13. package/dist/__tests__/token.test.js.map +1 -0
  14. package/dist/bundled-skills/lobu/SKILL.md +95 -7
  15. package/dist/commands/_lib/apply/__tests__/client.test.d.ts +2 -0
  16. package/dist/commands/_lib/apply/__tests__/client.test.d.ts.map +1 -0
  17. package/dist/commands/_lib/apply/__tests__/client.test.js +23 -0
  18. package/dist/commands/_lib/apply/__tests__/client.test.js.map +1 -0
  19. package/dist/commands/_lib/apply/__tests__/desired-state.test.d.ts +2 -0
  20. package/dist/commands/_lib/apply/__tests__/desired-state.test.d.ts.map +1 -0
  21. package/dist/commands/_lib/apply/__tests__/desired-state.test.js +140 -0
  22. package/dist/commands/_lib/apply/__tests__/desired-state.test.js.map +1 -0
  23. package/dist/commands/_lib/apply/__tests__/diff.test.d.ts +2 -0
  24. package/dist/commands/_lib/apply/__tests__/diff.test.d.ts.map +1 -0
  25. package/dist/commands/_lib/apply/__tests__/diff.test.js +378 -0
  26. package/dist/commands/_lib/apply/__tests__/diff.test.js.map +1 -0
  27. package/dist/commands/_lib/apply/apply-cmd.d.ts +12 -0
  28. package/dist/commands/_lib/apply/apply-cmd.d.ts.map +1 -0
  29. package/dist/commands/_lib/apply/apply-cmd.js +183 -0
  30. package/dist/commands/_lib/apply/apply-cmd.js.map +1 -0
  31. package/dist/commands/_lib/apply/client.d.ts +130 -0
  32. package/dist/commands/_lib/apply/client.d.ts.map +1 -0
  33. package/dist/commands/_lib/apply/client.js +243 -0
  34. package/dist/commands/_lib/apply/client.js.map +1 -0
  35. package/dist/commands/_lib/apply/desired-state.d.ts +71 -0
  36. package/dist/commands/_lib/apply/desired-state.d.ts.map +1 -0
  37. package/dist/commands/_lib/apply/desired-state.js +600 -0
  38. package/dist/commands/_lib/apply/desired-state.js.map +1 -0
  39. package/dist/commands/_lib/apply/diff.d.ts +76 -0
  40. package/dist/commands/_lib/apply/diff.d.ts.map +1 -0
  41. package/dist/commands/_lib/apply/diff.js +323 -0
  42. package/dist/commands/_lib/apply/diff.js.map +1 -0
  43. package/dist/commands/_lib/apply/prompt.d.ts +13 -0
  44. package/dist/commands/_lib/apply/prompt.d.ts.map +1 -0
  45. package/dist/commands/_lib/apply/prompt.js +19 -0
  46. package/dist/commands/_lib/apply/prompt.js.map +1 -0
  47. package/dist/commands/_lib/apply/render.d.ts +9 -0
  48. package/dist/commands/_lib/apply/render.d.ts.map +1 -0
  49. package/dist/commands/_lib/apply/render.js +92 -0
  50. package/dist/commands/_lib/apply/render.js.map +1 -0
  51. package/dist/commands/agent.d.ts +27 -0
  52. package/dist/commands/agent.d.ts.map +1 -0
  53. package/dist/commands/agent.js +111 -0
  54. package/dist/commands/agent.js.map +1 -0
  55. package/dist/commands/apply.d.ts +3 -0
  56. package/dist/commands/apply.d.ts.map +1 -0
  57. package/dist/commands/apply.js +5 -0
  58. package/dist/commands/apply.js.map +1 -0
  59. package/dist/commands/chat.d.ts.map +1 -1
  60. package/dist/commands/chat.js +5 -5
  61. package/dist/commands/chat.js.map +1 -1
  62. package/dist/commands/dev.d.ts +8 -3
  63. package/dist/commands/dev.d.ts.map +1 -1
  64. package/dist/commands/dev.js +128 -124
  65. package/dist/commands/dev.js.map +1 -1
  66. package/dist/commands/doctor.d.ts +6 -0
  67. package/dist/commands/doctor.d.ts.map +1 -0
  68. package/dist/commands/doctor.js +75 -0
  69. package/dist/commands/doctor.js.map +1 -0
  70. package/dist/commands/eval.d.ts +1 -0
  71. package/dist/commands/eval.d.ts.map +1 -1
  72. package/dist/commands/eval.js +7 -4
  73. package/dist/commands/eval.js.map +1 -1
  74. package/dist/commands/init.d.ts +2 -9
  75. package/dist/commands/init.d.ts.map +1 -1
  76. package/dist/commands/init.js +34 -248
  77. package/dist/commands/init.js.map +1 -1
  78. package/dist/commands/login.d.ts +11 -3
  79. package/dist/commands/login.d.ts.map +1 -1
  80. package/dist/commands/login.js +109 -251
  81. package/dist/commands/login.js.map +1 -1
  82. package/dist/commands/logout.d.ts.map +1 -1
  83. package/dist/commands/logout.js +12 -11
  84. package/dist/commands/logout.js.map +1 -1
  85. package/dist/commands/memory/_lib/agent-detect.d.ts +9 -0
  86. package/dist/commands/memory/_lib/agent-detect.d.ts.map +1 -0
  87. package/dist/commands/memory/_lib/agent-detect.js +82 -0
  88. package/dist/commands/memory/_lib/agent-detect.js.map +1 -0
  89. package/dist/commands/memory/_lib/browser-auth-cmd.d.ts +19 -0
  90. package/dist/commands/memory/_lib/browser-auth-cmd.d.ts.map +1 -0
  91. package/dist/commands/memory/_lib/browser-auth-cmd.js +635 -0
  92. package/dist/commands/memory/_lib/browser-auth-cmd.js.map +1 -0
  93. package/dist/commands/memory/_lib/browser.d.ts +2 -0
  94. package/dist/commands/memory/_lib/browser.d.ts.map +1 -0
  95. package/dist/commands/memory/_lib/browser.js +26 -0
  96. package/dist/commands/memory/_lib/browser.js.map +1 -0
  97. package/dist/commands/memory/_lib/errors.d.ts +13 -0
  98. package/dist/commands/memory/_lib/errors.d.ts.map +1 -0
  99. package/dist/commands/memory/_lib/errors.js +23 -0
  100. package/dist/commands/memory/_lib/errors.js.map +1 -0
  101. package/dist/commands/memory/_lib/init-wizard.d.ts +12 -0
  102. package/dist/commands/memory/_lib/init-wizard.d.ts.map +1 -0
  103. package/dist/commands/memory/_lib/init-wizard.js +182 -0
  104. package/dist/commands/memory/_lib/init-wizard.js.map +1 -0
  105. package/dist/commands/memory/_lib/install-targets.d.ts +15 -0
  106. package/dist/commands/memory/_lib/install-targets.d.ts.map +1 -0
  107. package/dist/commands/memory/_lib/install-targets.js +209 -0
  108. package/dist/commands/memory/_lib/install-targets.js.map +1 -0
  109. package/dist/commands/memory/_lib/mcp.d.ts +20 -0
  110. package/dist/commands/memory/_lib/mcp.d.ts.map +1 -0
  111. package/dist/commands/memory/_lib/mcp.js +182 -0
  112. package/dist/commands/memory/_lib/mcp.js.map +1 -0
  113. package/dist/commands/memory/_lib/openclaw-auth.d.ts +41 -0
  114. package/dist/commands/memory/_lib/openclaw-auth.d.ts.map +1 -0
  115. package/dist/commands/memory/_lib/openclaw-auth.js +133 -0
  116. package/dist/commands/memory/_lib/openclaw-auth.js.map +1 -0
  117. package/dist/commands/memory/_lib/openclaw-auth.test.d.ts +2 -0
  118. package/dist/commands/memory/_lib/openclaw-auth.test.d.ts.map +1 -0
  119. package/dist/commands/memory/_lib/openclaw-auth.test.js +9 -0
  120. package/dist/commands/memory/_lib/openclaw-auth.test.js.map +1 -0
  121. package/dist/commands/memory/_lib/openclaw-cmd.d.ts +15 -0
  122. package/dist/commands/memory/_lib/openclaw-cmd.d.ts.map +1 -0
  123. package/dist/commands/memory/_lib/openclaw-cmd.js +208 -0
  124. package/dist/commands/memory/_lib/openclaw-cmd.js.map +1 -0
  125. package/dist/commands/memory/_lib/output.d.ts +5 -0
  126. package/dist/commands/memory/_lib/output.d.ts.map +1 -0
  127. package/dist/commands/memory/_lib/output.js +17 -0
  128. package/dist/commands/memory/_lib/output.js.map +1 -0
  129. package/dist/commands/memory/_lib/schema.d.ts +93 -0
  130. package/dist/commands/memory/_lib/schema.d.ts.map +1 -0
  131. package/dist/commands/memory/_lib/schema.js +192 -0
  132. package/dist/commands/memory/_lib/schema.js.map +1 -0
  133. package/dist/commands/memory/_lib/seed-cmd.d.ts +9 -0
  134. package/dist/commands/memory/_lib/seed-cmd.d.ts.map +1 -0
  135. package/dist/commands/memory/_lib/seed-cmd.js +516 -0
  136. package/dist/commands/memory/_lib/seed-cmd.js.map +1 -0
  137. package/dist/commands/memory/browser-auth.d.ts +3 -0
  138. package/dist/commands/memory/browser-auth.d.ts.map +1 -0
  139. package/dist/commands/memory/browser-auth.js +5 -0
  140. package/dist/commands/memory/browser-auth.js.map +1 -0
  141. package/dist/commands/memory/configure.d.ts +3 -0
  142. package/dist/commands/memory/configure.d.ts.map +1 -0
  143. package/dist/commands/memory/configure.js +5 -0
  144. package/dist/commands/memory/configure.js.map +1 -0
  145. package/dist/commands/memory/health.d.ts +3 -0
  146. package/dist/commands/memory/health.d.ts.map +1 -0
  147. package/dist/commands/memory/health.js +5 -0
  148. package/dist/commands/memory/health.js.map +1 -0
  149. package/dist/commands/memory/init.d.ts +8 -0
  150. package/dist/commands/memory/init.d.ts.map +1 -0
  151. package/dist/commands/memory/init.js +65 -0
  152. package/dist/commands/memory/init.js.map +1 -0
  153. package/dist/commands/memory/org.d.ts +7 -0
  154. package/dist/commands/memory/org.d.ts.map +1 -0
  155. package/dist/commands/memory/org.js +22 -0
  156. package/dist/commands/memory/org.js.map +1 -0
  157. package/dist/commands/memory/run.d.ts +8 -0
  158. package/dist/commands/memory/run.d.ts.map +1 -0
  159. package/dist/commands/memory/run.js +58 -0
  160. package/dist/commands/memory/run.js.map +1 -0
  161. package/dist/commands/memory/seed.d.ts +3 -0
  162. package/dist/commands/memory/seed.d.ts.map +1 -0
  163. package/dist/commands/memory/seed.js +5 -0
  164. package/dist/commands/memory/seed.js.map +1 -0
  165. package/dist/commands/org.d.ts +10 -0
  166. package/dist/commands/org.d.ts.map +1 -0
  167. package/dist/commands/org.js +34 -0
  168. package/dist/commands/org.js.map +1 -0
  169. package/dist/commands/{connections/platforms.d.ts → platforms/platform-prompts.d.ts} +5 -5
  170. package/dist/commands/platforms/platform-prompts.d.ts.map +1 -0
  171. package/dist/commands/{connections/platforms.js → platforms/platform-prompts.js} +24 -24
  172. package/dist/commands/platforms/platform-prompts.js.map +1 -0
  173. package/dist/commands/status.d.ts +4 -1
  174. package/dist/commands/status.d.ts.map +1 -1
  175. package/dist/commands/status.js +15 -84
  176. package/dist/commands/status.js.map +1 -1
  177. package/dist/commands/token.d.ts +17 -0
  178. package/dist/commands/token.d.ts.map +1 -0
  179. package/dist/commands/token.js +55 -0
  180. package/dist/commands/token.js.map +1 -0
  181. package/dist/index.d.ts.map +1 -1
  182. package/dist/index.js +303 -88
  183. package/dist/index.js.map +1 -1
  184. package/dist/internal/__tests__/api-client.test.d.ts +2 -0
  185. package/dist/internal/__tests__/api-client.test.d.ts.map +1 -0
  186. package/dist/internal/__tests__/api-client.test.js +95 -0
  187. package/dist/internal/__tests__/api-client.test.js.map +1 -0
  188. package/dist/internal/__tests__/context.test.d.ts +2 -0
  189. package/dist/internal/__tests__/context.test.d.ts.map +1 -0
  190. package/dist/internal/__tests__/context.test.js +77 -0
  191. package/dist/internal/__tests__/context.test.js.map +1 -0
  192. package/dist/internal/api-client.d.ts +39 -0
  193. package/dist/internal/api-client.d.ts.map +1 -0
  194. package/dist/internal/api-client.js +217 -0
  195. package/dist/internal/api-client.js.map +1 -0
  196. package/dist/internal/context.d.ts +10 -1
  197. package/dist/internal/context.d.ts.map +1 -1
  198. package/dist/internal/context.js +109 -2
  199. package/dist/internal/context.js.map +1 -1
  200. package/dist/internal/credentials.d.ts +12 -2
  201. package/dist/internal/credentials.d.ts.map +1 -1
  202. package/dist/internal/credentials.js +47 -54
  203. package/dist/internal/credentials.js.map +1 -1
  204. package/dist/internal/gateway-url.d.ts +4 -4
  205. package/dist/internal/gateway-url.d.ts.map +1 -1
  206. package/dist/internal/gateway-url.js +6 -5
  207. package/dist/internal/gateway-url.js.map +1 -1
  208. package/dist/internal/index.d.ts +5 -3
  209. package/dist/internal/index.d.ts.map +1 -1
  210. package/dist/internal/index.js +3 -2
  211. package/dist/internal/index.js.map +1 -1
  212. package/dist/internal/local-env.d.ts +2 -0
  213. package/dist/internal/local-env.d.ts.map +1 -0
  214. package/dist/internal/local-env.js +32 -0
  215. package/dist/internal/local-env.js.map +1 -0
  216. package/dist/internal/oauth.d.ts +82 -0
  217. package/dist/internal/oauth.d.ts.map +1 -0
  218. package/dist/internal/oauth.js +234 -0
  219. package/dist/internal/oauth.js.map +1 -0
  220. package/dist/server.bundle.mjs +72219 -0
  221. package/dist/templates/.env.tmpl +7 -3
  222. package/dist/templates/README.md.tmpl +20 -53
  223. package/package.json +60 -6
  224. package/dist/__tests__/skills.test.d.ts +0 -2
  225. package/dist/__tests__/skills.test.d.ts.map +0 -1
  226. package/dist/__tests__/skills.test.js +0 -33
  227. package/dist/__tests__/skills.test.js.map +0 -1
  228. package/dist/commands/connections/add.d.ts +0 -2
  229. package/dist/commands/connections/add.d.ts.map +0 -1
  230. package/dist/commands/connections/add.js +0 -46
  231. package/dist/commands/connections/add.js.map +0 -1
  232. package/dist/commands/connections/list.d.ts +0 -2
  233. package/dist/commands/connections/list.d.ts.map +0 -1
  234. package/dist/commands/connections/list.js +0 -25
  235. package/dist/commands/connections/list.js.map +0 -1
  236. package/dist/commands/connections/platforms.d.ts.map +0 -1
  237. package/dist/commands/connections/platforms.js.map +0 -1
  238. package/dist/commands/providers/add.d.ts +0 -2
  239. package/dist/commands/providers/add.d.ts.map +0 -1
  240. package/dist/commands/providers/add.js +0 -50
  241. package/dist/commands/providers/add.js.map +0 -1
  242. package/dist/commands/providers/list.d.ts +0 -2
  243. package/dist/commands/providers/list.d.ts.map +0 -1
  244. package/dist/commands/providers/list.js +0 -22
  245. package/dist/commands/providers/list.js.map +0 -1
  246. package/dist/commands/secrets.d.ts +0 -8
  247. package/dist/commands/secrets.d.ts.map +0 -1
  248. package/dist/commands/secrets.js +0 -98
  249. package/dist/commands/secrets.js.map +0 -1
  250. package/dist/commands/skills/add.d.ts +0 -5
  251. package/dist/commands/skills/add.d.ts.map +0 -1
  252. package/dist/commands/skills/add.js +0 -27
  253. package/dist/commands/skills/add.js.map +0 -1
  254. package/dist/commands/skills/list.d.ts +0 -2
  255. package/dist/commands/skills/list.d.ts.map +0 -1
  256. package/dist/commands/skills/list.js +0 -19
  257. package/dist/commands/skills/list.js.map +0 -1
  258. package/dist/commands/skills/registry.d.ts +0 -19
  259. package/dist/commands/skills/registry.d.ts.map +0 -1
  260. package/dist/commands/skills/registry.js +0 -76
  261. package/dist/commands/skills/registry.js.map +0 -1
  262. package/dist/config/agent-helpers.d.ts +0 -38
  263. package/dist/config/agent-helpers.d.ts.map +0 -1
  264. package/dist/config/agent-helpers.js +0 -58
  265. package/dist/config/agent-helpers.js.map +0 -1
  266. package/dist/templates/Dockerfile.worker.tmpl +0 -29
@@ -0,0 +1,75 @@
1
+ import { execFileSync } from "node:child_process";
2
+ import chalk from "chalk";
3
+ import { checkMemoryHealth } from "./memory/_lib/openclaw-cmd.js";
4
+ import { resolveServerUrl } from "./memory/_lib/openclaw-auth.js";
5
+ function checkBinaryExists(name) {
6
+ const cmd = process.platform === "win32" ? "where" : "which";
7
+ try {
8
+ const out = execFileSync(cmd, [name], {
9
+ encoding: "utf-8",
10
+ timeout: 5000,
11
+ }).trim();
12
+ const first = out.split("\n")[0]?.trim();
13
+ if (!first)
14
+ return { name, status: "fail", detail: "not found" };
15
+ return { name, status: "ok", detail: first };
16
+ }
17
+ catch {
18
+ return { name, status: "fail", detail: "not found" };
19
+ }
20
+ }
21
+ function checkNodeVersion() {
22
+ const version = process.version;
23
+ const major = Number.parseInt(version.slice(1), 10);
24
+ return {
25
+ name: "node",
26
+ status: major >= 22 ? "ok" : "warn",
27
+ detail: version,
28
+ };
29
+ }
30
+ async function checkServerReachable(url) {
31
+ const origin = new URL(url).origin;
32
+ try {
33
+ const controller = new AbortController();
34
+ const timer = setTimeout(() => controller.abort(), 5000);
35
+ const res = await fetch(origin, { signal: controller.signal });
36
+ clearTimeout(timer);
37
+ return {
38
+ name: "server",
39
+ status: res.ok ? "ok" : "warn",
40
+ detail: `${res.status} ${origin}`,
41
+ };
42
+ }
43
+ catch {
44
+ return { name: "server", status: "fail", detail: `unreachable: ${origin}` };
45
+ }
46
+ }
47
+ export async function doctorCommand(options = {}) {
48
+ if (options.memoryOnly) {
49
+ await checkMemoryHealth();
50
+ return;
51
+ }
52
+ const checks = [];
53
+ checks.push(checkNodeVersion());
54
+ checks.push(checkBinaryExists("git"));
55
+ const serverUrl = await resolveServerUrl();
56
+ if (serverUrl)
57
+ checks.push(await checkServerReachable(serverUrl));
58
+ const icons = {
59
+ ok: chalk.green("✓"),
60
+ warn: chalk.yellow("!"),
61
+ fail: chalk.red("✗"),
62
+ };
63
+ for (const c of checks) {
64
+ console.log(` ${icons[c.status]} ${chalk.bold(c.name)}: ${chalk.dim(c.detail)}`);
65
+ }
66
+ const fails = checks.filter((c) => c.status === "fail");
67
+ if (fails.length > 0) {
68
+ console.log(`\n${fails.length} issue(s) found.`);
69
+ process.exitCode = 1;
70
+ }
71
+ else {
72
+ console.log(`\n${chalk.green("All checks passed.")}`);
73
+ }
74
+ }
75
+ //# sourceMappingURL=doctor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
@@ -6,5 +6,6 @@ export declare function evalCommand(cwd: string, name: string | undefined, optio
6
6
  list?: boolean;
7
7
  ci?: boolean;
8
8
  output?: string;
9
+ context?: string;
9
10
  }): Promise<void>;
10
11
  //# sourceMappingURL=eval.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"eval.d.ts","sourceRoot":"","sources":["../../src/commands/eval.ts"],"names":[],"mappings":"AAgBA,wBAAsB,WAAW,CAC/B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,OAAO,EAAE;IACP,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GACA,OAAO,CAAC,IAAI,CAAC,CA+Lf"}
1
+ {"version":3,"file":"eval.d.ts","sourceRoot":"","sources":["../../src/commands/eval.ts"],"names":[],"mappings":"AAqBA,wBAAsB,WAAW,CAC/B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,OAAO,EAAE;IACP,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GACA,OAAO,CAAC,IAAI,CAAC,CAgMf"}
@@ -2,7 +2,7 @@ import { readFile } from "node:fs/promises";
2
2
  import { basename, join } from "node:path";
3
3
  import chalk from "chalk";
4
4
  import { parse as parseYaml } from "yaml";
5
- import { getToken, resolveGatewayUrl } from "../internal/index.js";
5
+ import { apiBaseFromContextUrl, getToken, resolveContext, resolveGatewayUrl, } from "../internal/index.js";
6
6
  import { isLoadError, loadConfig } from "../config/loader.js";
7
7
  import { CURRENT_EVAL_VERSION, evalDefinitionSchema } from "../eval/types.js";
8
8
  import { runEval } from "../eval/runner.js";
@@ -72,10 +72,13 @@ export async function evalCommand(cwd, name, options) {
72
72
  return;
73
73
  }
74
74
  // Auth and gateway required from here (not needed for --list)
75
- const gatewayUrl = (options.gateway ?? (await resolveGatewayUrl({ cwd }))).replace(/\/$/, "");
76
- const authToken = (await getToken()) ?? process.env.ADMIN_PASSWORD;
75
+ const gatewayUrl = (options.gateway ??
76
+ (options.context
77
+ ? apiBaseFromContextUrl((await resolveContext(options.context)).apiUrl)
78
+ : await resolveGatewayUrl({ cwd }))).replace(/\/$/, "");
79
+ const authToken = await getToken(options.context);
77
80
  if (!authToken) {
78
- console.error(chalk.red("\n Authentication required. Run `lobu login` or set ADMIN_PASSWORD.\n"));
81
+ console.error(chalk.red("\n Authentication required. Run `lobu login`.\n"));
79
82
  process.exit(1);
80
83
  }
81
84
  // Parse eval definitions
@@ -1 +1 @@
1
- {"version":3,"file":"eval.js","sourceRoot":"","sources":["../../src/commands/eval.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eval.js","sourceRoot":"","sources":["../../src/commands/eval.ts"],"names":[],"mappings":"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"}
@@ -5,18 +5,11 @@ export declare function generateLobuToml(projectDir: string, options: {
5
5
  providerId?: string;
6
6
  providerEnvVar?: string;
7
7
  providerModel?: string;
8
- connectionType?: string;
9
- connectionConfig?: Record<string, string>;
8
+ platformType?: string;
9
+ platformConfig?: Record<string, string>;
10
10
  includeOwlettoMemory?: boolean;
11
11
  owlettoOrg?: string;
12
12
  owlettoName?: string;
13
13
  owlettoDescription?: string;
14
14
  }): Promise<void>;
15
- export declare function generateDockerCompose(options: {
16
- projectName: string;
17
- gatewayPort: string;
18
- dockerfilePath: string;
19
- deploymentMode: "embedded" | "docker";
20
- includeOwlettoLocal?: boolean;
21
- }): string;
22
15
  //# sourceMappingURL=init.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAmBA,wBAAsB,WAAW,CAC/B,GAAG,GAAE,MAAsB,EAC3B,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,IAAI,CAAC,CA4gBf;AAUD,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE;IACP,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,GACA,OAAO,CAAC,IAAI,CAAC,CAqGf;AASD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE;IAC7C,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,UAAU,GAAG,QAAQ,CAAC;IACtC,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B,GAAG,MAAM,CAwJT"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAkBA,wBAAsB,WAAW,CAC/B,GAAG,GAAE,MAAsB,EAC3B,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,IAAI,CAAC,CA+bf;AAUD,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE;IACP,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,GACA,OAAO,CAAC,IAAI,CAAC,CAqGf"}
@@ -5,12 +5,11 @@ import { join } from "node:path";
5
5
  import { confirm, input, password, select } from "@inquirer/prompts";
6
6
  import chalk from "chalk";
7
7
  import ora from "ora";
8
- import { promptPlatformConfig } from "../commands/connections/platforms.js";
9
- import { secretsSetCommand } from "../commands/secrets.js";
8
+ import { promptPlatformConfig } from "../commands/platforms/platform-prompts.js";
9
+ import { setLocalEnvValue } from "../internal/local-env.js";
10
10
  import { getProviderById, loadProviderRegistry, } from "../commands/providers/registry.js";
11
11
  import { renderTemplate } from "../utils/template.js";
12
12
  const DEFAULT_OWLETTO_MCP_URL = "https://lobu.ai/mcp";
13
- const LOCAL_OWLETTO_MCP_URL = "http://owletto:8787/mcp";
14
13
  export async function initCommand(cwd = process.cwd(), projectNameArg) {
15
14
  console.log(chalk.bold.cyan("\n🤖 Welcome to Lobu!\n"));
16
15
  // Get CLI version
@@ -43,25 +42,10 @@ export async function initCommand(cwd = process.cwd(), projectNameArg) {
43
42
  await mkdir(projectDir, { recursive: true });
44
43
  console.log(chalk.dim(`\nCreating project in: ${chalk.cyan(projectDir)}\n`));
45
44
  }
46
- // Deployment mode selection
47
- const deploymentMode = await select({
48
- message: "How should workers run?",
49
- choices: [
50
- {
51
- name: "Embedded — virtual bash & filesystem, no package installs, lower resource usage",
52
- value: "embedded",
53
- },
54
- {
55
- name: "Docker — isolated containers per user, full OS access, heavier but more capable",
56
- value: "docker",
57
- },
58
- ],
59
- default: "embedded",
60
- });
61
45
  // Gateway port selection
62
46
  const gatewayPort = await input({
63
47
  message: "Gateway port?",
64
- default: "8080",
48
+ default: "8787",
65
49
  validate: (value) => {
66
50
  const port = Number(value);
67
51
  if (!Number.isInteger(port) || port < 1 || port > 65535) {
@@ -75,17 +59,6 @@ export async function initCommand(cwd = process.cwd(), projectNameArg) {
75
59
  message: "Public gateway URL? (leave empty for local dev, set for OAuth/webhooks)",
76
60
  default: "",
77
61
  });
78
- // Admin password
79
- const adminPassword = await password({
80
- message: "Admin password?",
81
- mask: true,
82
- validate: (value) => {
83
- if (!value || value.length < 4) {
84
- return "Password must be at least 4 characters";
85
- }
86
- return true;
87
- },
88
- });
89
62
  // Worker network access policy
90
63
  const networkPolicy = await select({
91
64
  message: "Worker network access?",
@@ -133,7 +106,7 @@ export async function initCommand(cwd = process.cwd(), projectNameArg) {
133
106
  }
134
107
  // Define skills locally via skills/<name>/SKILL.md or
135
108
  // agents/<id>/skills/<name>/SKILL.md.
136
- // Connection (messaging platform) selection
109
+ // Chat platform selection
137
110
  const platformChoices = [
138
111
  { name: "Skip — I'll connect a platform later", value: "" },
139
112
  { name: "Telegram", value: "telegram" },
@@ -144,47 +117,29 @@ export async function initCommand(cwd = process.cwd(), projectNameArg) {
144
117
  { name: "Google Chat", value: "gchat" },
145
118
  ];
146
119
  const platformType = await select({
147
- message: "Connect a messaging platform?",
120
+ message: "Connect a chat platform?",
148
121
  choices: platformChoices,
149
122
  default: "",
150
123
  });
151
- const { connectionConfig, connectionSecrets } = platformType
124
+ const { platformConfig, platformSecrets } = platformType
152
125
  ? await promptPlatformConfig(platformType)
153
- : { connectionConfig: {}, connectionSecrets: [] };
126
+ : { platformConfig: {}, platformSecrets: [] };
154
127
  // Memory
155
128
  const memoryChoice = await select({
156
129
  message: "Memory:",
157
130
  choices: [
158
131
  { name: "None (filesystem memory)", value: "none" },
159
132
  { name: "Lobu Cloud (app.lobu.ai)", value: "owletto-cloud" },
160
- {
161
- name: "Lobu memory Local (runs alongside gateway)",
162
- value: "owletto-local",
163
- },
164
133
  { name: "Custom Lobu memory URL", value: "owletto-custom" },
165
134
  ],
166
135
  default: "none",
167
136
  });
168
137
  const envSecrets = [];
169
138
  const includeOwlettoMemory = memoryChoice !== "none";
170
- let includeOwlettoLocal = false;
171
139
  let owlettoUrl = "";
172
140
  if (memoryChoice === "owletto-cloud") {
173
141
  owlettoUrl = DEFAULT_OWLETTO_MCP_URL;
174
142
  }
175
- else if (memoryChoice === "owletto-local") {
176
- includeOwlettoLocal = true;
177
- owlettoUrl = LOCAL_OWLETTO_MCP_URL;
178
- envSecrets.push({ envVar: "MEMORY_URL", value: owlettoUrl });
179
- envSecrets.push({
180
- envVar: "OWLETTO_AUTH_SECRET",
181
- value: randomBytes(32).toString("hex"),
182
- });
183
- envSecrets.push({
184
- envVar: "OWLETTO_DB_PASSWORD",
185
- value: randomBytes(16).toString("hex"),
186
- });
187
- }
188
143
  else if (memoryChoice === "owletto-custom") {
189
144
  owlettoUrl = await input({
190
145
  message: "Lobu memory MCP URL:",
@@ -192,7 +147,7 @@ export async function initCommand(cwd = process.cwd(), projectNameArg) {
192
147
  });
193
148
  envSecrets.push({ envVar: "MEMORY_URL", value: owlettoUrl });
194
149
  }
195
- // "none" — no Owletto scaffold, gateway defaults to filesystem memory
150
+ // "none" — no memory scaffold, gateway defaults to filesystem memory
196
151
  // Observability — OTEL tracing endpoint
197
152
  const otelEndpoint = await input({
198
153
  message: "OpenTelemetry collector endpoint? (leave empty to disable tracing)",
@@ -243,13 +198,10 @@ export async function initCommand(cwd = process.cwd(), projectNameArg) {
243
198
  }
244
199
  const encryptionKey = randomBytes(32).toString("hex");
245
200
  const answers = {
246
- deploymentMode: deploymentMode,
247
201
  encryptionKey,
248
202
  allowedDomains,
249
203
  disallowedDomains,
250
204
  };
251
- // docker-compose.yml will be created in new directory, no need to check
252
- const composeFilename = "docker-compose.yml";
253
205
  const spinner = ora("Creating Lobu project...").start();
254
206
  try {
255
207
  // Create data directory in project directory
@@ -271,8 +223,8 @@ export async function initCommand(cwd = process.cwd(), projectNameArg) {
271
223
  providerId: providerId || undefined,
272
224
  providerEnvVar: selectedProvider?.providers?.[0]?.envVarName,
273
225
  providerModel: selectedProvider?.providers?.[0]?.defaultModel,
274
- connectionType: platformType || undefined,
275
- connectionConfig: Object.keys(connectionConfig).length > 0 ? connectionConfig : undefined,
226
+ platformType: platformType || undefined,
227
+ platformConfig: Object.keys(platformConfig).length > 0 ? platformConfig : undefined,
276
228
  includeOwlettoMemory,
277
229
  owlettoOrg: includeOwlettoMemory ? projectName : undefined,
278
230
  owlettoName: includeOwlettoMemory ? humanizeSlug(projectName) : undefined,
@@ -280,8 +232,6 @@ export async function initCommand(cwd = process.cwd(), projectNameArg) {
280
232
  const variables = {
281
233
  PROJECT_NAME: projectName,
282
234
  CLI_VERSION: cliVersion,
283
- DEPLOYMENT_MODE: answers.deploymentMode,
284
- ADMIN_PASSWORD: adminPassword,
285
235
  ENCRYPTION_KEY: answers.encryptionKey,
286
236
  GATEWAY_PORT: gatewayPort,
287
237
  WORKER_ALLOWED_DOMAINS: answers.allowedDomains,
@@ -291,19 +241,19 @@ export async function initCommand(cwd = process.cwd(), projectNameArg) {
291
241
  await renderTemplate(".env.tmpl", variables, join(projectDir, ".env"));
292
242
  // Save public gateway URL if explicitly set
293
243
  if (publicGatewayUrl) {
294
- await secretsSetCommand(projectDir, "PUBLIC_GATEWAY_URL", publicGatewayUrl);
244
+ await setLocalEnvValue(projectDir, "PUBLIC_GATEWAY_URL", publicGatewayUrl);
295
245
  }
296
246
  // Save provider API key to .env
297
247
  if (providerApiKey && selectedProvider?.providers?.[0]?.envVarName) {
298
- await secretsSetCommand(projectDir, selectedProvider.providers[0].envVarName, providerApiKey);
248
+ await setLocalEnvValue(projectDir, selectedProvider.providers[0].envVarName, providerApiKey);
299
249
  }
300
- // Save connection secrets to .env
301
- for (const secret of connectionSecrets) {
302
- await secretsSetCommand(projectDir, secret.envVar, secret.value);
250
+ // Save platform secrets to .env
251
+ for (const secret of platformSecrets) {
252
+ await setLocalEnvValue(projectDir, secret.envVar, secret.value);
303
253
  }
304
254
  // Save OAuth secrets to .env
305
255
  for (const secret of envSecrets) {
306
- await secretsSetCommand(projectDir, secret.envVar, secret.value);
256
+ await setLocalEnvValue(projectDir, secret.envVar, secret.value);
307
257
  }
308
258
  // Create .gitignore
309
259
  await renderTemplate(".gitignore.tmpl", {}, join(projectDir, ".gitignore"));
@@ -345,19 +295,6 @@ turns:
345
295
  await renderTemplate("AGENTS.md.tmpl", variables, join(projectDir, "AGENTS.md"));
346
296
  // Create TESTING.md
347
297
  await renderTemplate("TESTING.md.tmpl", variables, join(projectDir, "TESTING.md"));
348
- if (answers.deploymentMode === "docker") {
349
- // Create Dockerfile.worker for docker mode
350
- await renderTemplate("Dockerfile.worker.tmpl", variables, join(projectDir, "Dockerfile.worker"));
351
- }
352
- // Always generate docker-compose.yml (Redis is needed for all modes)
353
- const composeContent = generateDockerCompose({
354
- projectName,
355
- gatewayPort,
356
- dockerfilePath: "./Dockerfile.worker",
357
- deploymentMode: answers.deploymentMode,
358
- includeOwlettoLocal,
359
- });
360
- await writeFile(join(projectDir, composeFilename), composeContent);
361
298
  spinner.succeed("Project created successfully!");
362
299
  // Print next steps
363
300
  console.log(chalk.green("\n✓ Lobu initialized!\n"));
@@ -369,38 +306,29 @@ turns:
369
306
  console.log(chalk.dim(` - agents/${projectName}/ (IDENTITY.md, SOUL.md, USER.md, skills/)`));
370
307
  console.log(chalk.dim(" - skills/ (shared skills — all agents)"));
371
308
  if (includeOwlettoMemory) {
372
- console.log(chalk.dim(" - models/ (Owletto model files)"));
373
- console.log(chalk.dim(" - data/ (Owletto seed data)"));
309
+ console.log(chalk.dim(" - models/ (memory model files)"));
310
+ console.log(chalk.dim(" - data/ (memory seed data)"));
374
311
  }
375
312
  console.log(chalk.dim(" - .env (secrets)"));
376
- console.log(chalk.dim(` - ${composeFilename}`));
377
- if (answers.deploymentMode === "docker") {
378
- console.log(chalk.dim(" - Dockerfile.worker"));
379
- }
380
313
  console.log();
381
314
  const gatewayUrl = `http://localhost:${gatewayPort}`;
315
+ console.log(chalk.cyan(" 3. Set DATABASE_URL in .env:"));
316
+ console.log(chalk.dim(" Lobu connects to a user-provided Postgres. Run one yourself"));
317
+ console.log(chalk.dim(" (managed instance or local: e.g. `brew services start postgresql`)\n"));
382
318
  if (owlettoUrl) {
383
- const displayUrl = includeOwlettoLocal
384
- ? "http://localhost:8787"
385
- : owlettoUrl;
386
319
  console.log(chalk.cyan(" Lobu memory:"));
387
- console.log(chalk.dim(` ${displayUrl}\n`));
388
- }
389
- console.log(chalk.cyan(" 3. Start the services:"));
390
- console.log(chalk.dim(" npx @lobu/cli@latest run -d\n"));
391
- if (includeOwlettoLocal) {
392
- console.log(chalk.cyan(" 4. Set up Lobu memory (first run):"));
393
- console.log(chalk.dim(" Visit http://localhost:8787 to create your account\n"));
320
+ console.log(chalk.dim(` ${owlettoUrl}`));
321
+ console.log(chalk.dim(" Run `lobu memory init` to configure local MCP clients.\n"));
394
322
  }
395
- console.log(chalk.cyan(` ${includeOwlettoLocal ? "5" : "4"}. Open the API docs:`));
323
+ console.log(chalk.cyan(" 4. Start the services:"));
324
+ console.log(chalk.dim(" npx @lobu/cli@latest run\n"));
325
+ console.log(chalk.cyan(" 5. Open the API docs:"));
396
326
  console.log(chalk.dim(` ${gatewayUrl}/api/docs\n`));
397
- console.log(chalk.cyan(` ${includeOwlettoLocal ? "6" : "5"}. Build with a coding agent:`));
327
+ console.log(chalk.cyan(" 6. Build with a coding agent:"));
398
328
  console.log(chalk.dim(" Ask Codex or Claude Code to read AGENTS.md, lobu.toml, and agents/*/{IDENTITY,SOUL,USER}.md"));
399
329
  console.log(chalk.dim(" Optional external skill: lobu-builder\n"));
400
- console.log(chalk.cyan(` ${includeOwlettoLocal ? "7" : "6"}. View logs:`));
401
- console.log(chalk.dim(" docker compose logs -f\n"));
402
- console.log(chalk.cyan(` ${includeOwlettoLocal ? "8" : "7"}. Stop the services:`));
403
- console.log(chalk.dim(" docker compose down\n"));
330
+ console.log(chalk.cyan(" 7. Stop the services:"));
331
+ console.log(chalk.dim(" Ctrl+C in the terminal running `lobu run`\n"));
404
332
  }
405
333
  catch (error) {
406
334
  spinner.fail("Failed to create project");
@@ -438,15 +366,15 @@ export async function generateLobuToml(projectDir, options) {
438
366
  lines.push("# Add providers via the gateway configuration APIs or uncomment below:", `# [[agents.${id}.providers]]`, '# id = "anthropic"', '# key = "$ANTHROPIC_API_KEY"');
439
367
  }
440
368
  lines.push("");
441
- if (options.connectionType && options.connectionConfig) {
442
- lines.push(`[[agents.${id}.connections]]`, `type = "${options.connectionType}"`);
443
- lines.push(`[agents.${id}.connections.config]`);
444
- for (const [key, value] of Object.entries(options.connectionConfig)) {
369
+ if (options.platformType && options.platformConfig) {
370
+ lines.push(`[[agents.${id}.platforms]]`, `type = "${options.platformType}"`);
371
+ lines.push(`[agents.${id}.platforms.config]`);
372
+ for (const [key, value] of Object.entries(options.platformConfig)) {
445
373
  lines.push(`${key} = "${value}"`);
446
374
  }
447
375
  }
448
376
  else {
449
- lines.push("# Messaging platform (add via the gateway configuration APIs or uncomment below):", `# [[agents.${id}.connections]]`, '# type = "telegram"', `# [agents.${id}.connections.config]`, '# botToken = "$TELEGRAM_BOT_TOKEN"');
377
+ lines.push("# Chat platform (add via the gateway configuration APIs or uncomment below):", `# [[agents.${id}.platforms]]`, '# type = "telegram"', `# [agents.${id}.platforms.config]`, '# botToken = "$TELEGRAM_BOT_TOKEN"');
450
378
  }
451
379
  lines.push("", "# Local skills live in skills/<name>/SKILL.md or agents/<id>/skills/<name>/SKILL.md", `[agents.${id}.skills]`, "", "# MCP servers (add custom tool servers with optional OAuth):", `# [agents.${id}.skills.mcp.my-mcp]`, '# url = "https://my-mcp.example.com"', `# [agents.${id}.skills.mcp.my-mcp.oauth]`, '# auth_url = "https://auth.example.com/authorize"', '# token_url = "https://auth.example.com/token"', '# client_id = "$MY_MCP_CLIENT_ID"');
452
380
  // Network
@@ -477,146 +405,4 @@ async function getCliVersion() {
477
405
  const pkg = JSON.parse(pkgContent);
478
406
  return pkg.version || "0.1.0";
479
407
  }
480
- export function generateDockerCompose(options) {
481
- const { projectName, gatewayPort, deploymentMode, includeOwlettoLocal } = options;
482
- const gatewayImage = `ghcr.io/lobu-ai/lobu-gateway:latest`;
483
- const workerImage = `ghcr.io/lobu-ai/lobu-worker-base:latest`;
484
- const dockerSocketMount = deploymentMode === "docker"
485
- ? `
486
- - /var/run/docker.sock:/var/run/docker.sock`
487
- : "";
488
- const workerImageEnv = deploymentMode === "docker"
489
- ? `
490
- WORKER_IMAGE: ${workerImage}`
491
- : "";
492
- const proxyPort = deploymentMode === "docker"
493
- ? `
494
- - "127.0.0.1:8118:8118" # HTTP proxy for workers`
495
- : "";
496
- const owlettoServices = includeOwlettoLocal
497
- ? `
498
- owletto-postgres:
499
- image: pgvector/pgvector:pg17
500
- environment:
501
- POSTGRES_USER: owletto
502
- POSTGRES_PASSWORD: \${OWLETTO_DB_PASSWORD}
503
- POSTGRES_DB: owletto
504
- volumes:
505
- - owletto-pgdata:/var/lib/postgresql/data
506
- healthcheck:
507
- test: ["CMD-SHELL", "pg_isready -U owletto -d owletto"]
508
- interval: 10s
509
- timeout: 3s
510
- retries: 5
511
- networks:
512
- - lobu-internal
513
- restart: unless-stopped
514
-
515
- owletto:
516
- image: ghcr.io/lobu-ai/owletto-app:latest
517
- pull_policy: always
518
- ports:
519
- - "127.0.0.1:8787:8787"
520
- environment:
521
- DATABASE_URL: postgresql://owletto:\${OWLETTO_DB_PASSWORD}@owletto-postgres:5432/owletto
522
- BETTER_AUTH_SECRET: \${OWLETTO_AUTH_SECRET}
523
- PORT: "8787"
524
- HOST: 0.0.0.0
525
- networks:
526
- - lobu-internal
527
- depends_on:
528
- owletto-postgres:
529
- condition: service_healthy
530
- healthcheck:
531
- test: ["CMD-SHELL", "curl -f http://127.0.0.1:8787/health || exit 1"]
532
- interval: 10s
533
- timeout: 10s
534
- retries: 10
535
- start_period: 20s
536
- restart: unless-stopped
537
- `
538
- : "";
539
- const owlettoDependsOn = includeOwlettoLocal
540
- ? `
541
- owletto:
542
- condition: service_healthy`
543
- : "";
544
- const owlettoVolumes = includeOwlettoLocal
545
- ? `
546
- volumes:
547
- owletto-pgdata:
548
- `
549
- : "";
550
- return `# Generated by @lobu/cli
551
- # Deployment mode: ${deploymentMode}
552
-
553
- name: ${projectName}
554
-
555
- services:
556
- redis:
557
- image: redis:7-alpine
558
- command: redis-server --maxmemory 256mb --maxmemory-policy noeviction --save 60 1 --dir /data
559
- working_dir: /tmp
560
- volumes:
561
- - ./data:/data
562
- healthcheck:
563
- test: ["CMD", "redis-cli", "ping"]
564
- interval: 10s
565
- timeout: 3s
566
- retries: 3
567
- networks:
568
- - lobu-internal
569
- restart: unless-stopped
570
- ${owlettoServices}
571
- gateway:
572
- image: ${gatewayImage}
573
- pull_policy: always
574
- ports:
575
- - "127.0.0.1:\${GATEWAY_PORT:-${gatewayPort}}:8080"${proxyPort}
576
- environment:
577
- DEPLOYMENT_MODE: ${deploymentMode}${workerImageEnv}
578
- QUEUE_URL: redis://redis:6379/0
579
- PUBLIC_GATEWAY_URL: \${PUBLIC_GATEWAY_URL:-}
580
- GATEWAY_PORT: \${GATEWAY_PORT:-${gatewayPort}}
581
- NODE_ENV: production
582
- COMPOSE_PROJECT_NAME: ${projectName}
583
- ADMIN_PASSWORD: \${ADMIN_PASSWORD}
584
- ENCRYPTION_KEY: \${ENCRYPTION_KEY}
585
- WORKER_ALLOWED_DOMAINS: \${WORKER_ALLOWED_DOMAINS:-}
586
- WORKER_DISALLOWED_DOMAINS: \${WORKER_DISALLOWED_DOMAINS:-}
587
- # Optional Lobu memory base MCP URL override. File-first projects derive scoped
588
- # memory from [memory.owletto] in lobu.toml.
589
- MEMORY_URL: \${MEMORY_URL:-}
590
- LOBU_WORKSPACE_ROOT: /workspace/project
591
- # Provider API keys — passthrough any that are set in the host env so
592
- # agents can reference them as \`$VAR\` in lobu.toml. Unset vars expand
593
- # to empty strings and are ignored by the agent runtime.
594
- ANTHROPIC_API_KEY: \${ANTHROPIC_API_KEY:-}
595
- GEMINI_API_KEY: \${GEMINI_API_KEY:-}
596
- OPENAI_API_KEY: \${OPENAI_API_KEY:-}
597
- OPENROUTER_API_KEY: \${OPENROUTER_API_KEY:-}
598
- Z_AI_API_KEY: \${Z_AI_API_KEY:-}
599
- # Platform credentials — same pattern: set only the ones your agents use.
600
- SLACK_BOT_TOKEN: \${SLACK_BOT_TOKEN:-}
601
- SLACK_SIGNING_SECRET: \${SLACK_SIGNING_SECRET:-}
602
- TELEGRAM_BOT_TOKEN: \${TELEGRAM_BOT_TOKEN:-}
603
- volumes:${dockerSocketMount}
604
- - .:/workspace/project:ro
605
- networks:
606
- - lobu-public
607
- - lobu-internal
608
- depends_on:
609
- redis:
610
- condition: service_healthy${owlettoDependsOn}
611
- restart: unless-stopped
612
-
613
- networks:
614
- lobu-public:
615
- driver: bridge
616
- lobu-internal:
617
- internal: true
618
- driver: bridge
619
- ${owlettoVolumes}
620
- `;
621
- }
622
408
  //# sourceMappingURL=init.js.map