@lobu/cli 3.0.3 → 3.0.4

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 (106) hide show
  1. package/README.md +8 -8
  2. package/dist/__tests__/login.test.d.ts +2 -0
  3. package/dist/__tests__/login.test.d.ts.map +1 -0
  4. package/dist/__tests__/login.test.js +173 -0
  5. package/dist/__tests__/login.test.js.map +1 -0
  6. package/dist/api/client.d.ts.map +1 -1
  7. package/dist/api/client.js +3 -5
  8. package/dist/api/client.js.map +1 -1
  9. package/dist/api/context.d.ts +22 -0
  10. package/dist/api/context.d.ts.map +1 -0
  11. package/dist/api/context.js +113 -0
  12. package/dist/api/context.js.map +1 -0
  13. package/dist/api/credentials.d.ts +9 -4
  14. package/dist/api/credentials.d.ts.map +1 -1
  15. package/dist/api/credentials.js +127 -15
  16. package/dist/api/credentials.js.map +1 -1
  17. package/dist/commands/chat.d.ts +11 -0
  18. package/dist/commands/chat.d.ts.map +1 -0
  19. package/dist/commands/chat.js +195 -0
  20. package/dist/commands/chat.js.map +1 -0
  21. package/dist/commands/context.d.ts +8 -0
  22. package/dist/commands/context.d.ts.map +1 -0
  23. package/dist/commands/context.js +46 -0
  24. package/dist/commands/context.js.map +1 -0
  25. package/dist/commands/dev.d.ts +1 -8
  26. package/dist/commands/dev.d.ts.map +1 -1
  27. package/dist/commands/dev.js +236 -57
  28. package/dist/commands/dev.js.map +1 -1
  29. package/dist/commands/init.d.ts.map +1 -1
  30. package/dist/commands/init.js +351 -676
  31. package/dist/commands/init.js.map +1 -1
  32. package/dist/commands/launch.d.ts.map +1 -1
  33. package/dist/commands/launch.js +2 -8
  34. package/dist/commands/launch.js.map +1 -1
  35. package/dist/commands/login.d.ts +2 -0
  36. package/dist/commands/login.d.ts.map +1 -1
  37. package/dist/commands/login.js +283 -14
  38. package/dist/commands/login.js.map +1 -1
  39. package/dist/commands/logout.d.ts +3 -1
  40. package/dist/commands/logout.d.ts.map +1 -1
  41. package/dist/commands/logout.js +5 -3
  42. package/dist/commands/logout.js.map +1 -1
  43. package/dist/commands/providers/add.d.ts.map +1 -1
  44. package/dist/commands/providers/add.js +38 -14
  45. package/dist/commands/providers/add.js.map +1 -1
  46. package/dist/commands/providers/list.d.ts.map +1 -1
  47. package/dist/commands/providers/list.js +4 -2
  48. package/dist/commands/providers/list.js.map +1 -1
  49. package/dist/commands/skills/add.d.ts.map +1 -1
  50. package/dist/commands/skills/add.js +25 -7
  51. package/dist/commands/skills/add.js.map +1 -1
  52. package/dist/commands/skills/info.d.ts.map +1 -1
  53. package/dist/commands/skills/info.js.map +1 -1
  54. package/dist/commands/skills/list.d.ts.map +1 -1
  55. package/dist/commands/skills/list.js.map +1 -1
  56. package/dist/commands/skills/registry.d.ts +5 -0
  57. package/dist/commands/skills/registry.d.ts.map +1 -1
  58. package/dist/commands/skills/registry.js.map +1 -1
  59. package/dist/commands/skills/search.d.ts.map +1 -1
  60. package/dist/commands/skills/search.js +3 -1
  61. package/dist/commands/skills/search.js.map +1 -1
  62. package/dist/commands/status.d.ts +1 -1
  63. package/dist/commands/status.d.ts.map +1 -1
  64. package/dist/commands/status.js +107 -4
  65. package/dist/commands/status.js.map +1 -1
  66. package/dist/commands/validate.d.ts.map +1 -1
  67. package/dist/commands/validate.js +9 -20
  68. package/dist/commands/validate.js.map +1 -1
  69. package/dist/commands/whoami.d.ts +3 -1
  70. package/dist/commands/whoami.d.ts.map +1 -1
  71. package/dist/commands/whoami.js +17 -3
  72. package/dist/commands/whoami.js.map +1 -1
  73. package/dist/config/agents-manifest.d.ts +92 -0
  74. package/dist/config/agents-manifest.d.ts.map +1 -0
  75. package/dist/config/agents-manifest.js +7 -0
  76. package/dist/config/agents-manifest.js.map +1 -0
  77. package/dist/config/loader.d.ts +18 -0
  78. package/dist/config/loader.d.ts.map +1 -1
  79. package/dist/config/loader.js +62 -2
  80. package/dist/config/loader.js.map +1 -1
  81. package/dist/config/platform-schemas.d.ts +120 -0
  82. package/dist/config/platform-schemas.d.ts.map +1 -0
  83. package/dist/config/platform-schemas.js +97 -0
  84. package/dist/config/platform-schemas.js.map +1 -0
  85. package/dist/config/schema.d.ts +546 -111
  86. package/dist/config/schema.d.ts.map +1 -1
  87. package/dist/config/schema.js +26 -19
  88. package/dist/config/schema.js.map +1 -1
  89. package/dist/config/transformer.d.ts +3 -0
  90. package/dist/config/transformer.d.ts.map +1 -1
  91. package/dist/config/transformer.js +7 -10
  92. package/dist/config/transformer.js.map +1 -1
  93. package/dist/index.d.ts +0 -4
  94. package/dist/index.d.ts.map +1 -1
  95. package/dist/index.js +52 -10
  96. package/dist/index.js.map +1 -1
  97. package/dist/system-skills.json +89 -29
  98. package/dist/templates/.env.tmpl +3 -14
  99. package/dist/templates/.gitignore.tmpl +1 -0
  100. package/dist/templates/README.md.tmpl +7 -8
  101. package/dist/utils/markdown.d.ts +3 -0
  102. package/dist/utils/markdown.d.ts.map +1 -0
  103. package/dist/utils/markdown.js +10 -0
  104. package/dist/utils/markdown.js.map +1 -0
  105. package/package.json +4 -2
  106. package/dist/templates/lobu.toml.tmpl +0 -44
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAcxB,QAAA,MAAM,cAAc;;;;;;;;;EAGlB,CAAC;AAGH,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;;;;EAMnB,CAAC;AAEH,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGhB,CAAC;AAGH,QAAA,MAAM,aAAa;;;;;;;;;EAGjB,CAAC;AAGH,QAAA,MAAM,YAAY;;;;;;;;;EAGhB,CAAC;AAGH,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;EAKnB,CAAC;AAGH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAO3B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE9D,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAC3D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAC7D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AACvD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AACzD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AACvD,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,QAAA,MAAM,cAAc;;;;;;;;;;;;EAIlB,CAAC;AAGH,QAAA,MAAM,gBAAgB;;;;;;;;;EAGpB,CAAC;AAaH,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOnB,CAAC;AAEH,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGhB,CAAC;AAGH,QAAA,MAAM,aAAa;;;;;;;;;EAGjB,CAAC;AAGH,QAAA,MAAM,YAAY;;;;;;EAEhB,CAAC;AAGH,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASpB,CAAC;AAGH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAE3B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC9D,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAC3D,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC/D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAC7D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AACvD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AACzD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC"}
@@ -1,15 +1,23 @@
1
1
  import { z } from "zod";
2
- // Agent section — identity lives in IDENTITY.md, SOUL.md, USER.md files
3
- const agentSchema = z.object({
4
- name: z
5
- .string()
6
- .regex(/^[a-z0-9][a-z0-9-]*$/, "Agent name must be lowercase alphanumeric with hyphens, starting with alphanumeric"),
7
- description: z.string().optional(),
8
- });
9
2
  // Provider entry
10
3
  const providerSchema = z.object({
11
4
  id: z.string(),
12
5
  model: z.string().optional(),
6
+ key: z.string().optional(), // API key or $ENV_VAR reference
7
+ });
8
+ // Connection entry (platform-specific config is dynamic)
9
+ const connectionSchema = z.object({
10
+ type: z.string(), // "telegram" | "slack" | "discord" | "whatsapp" | "teams"
11
+ config: z.record(z.string()), // platform-specific config (e.g. { botToken: "$BOT_TOKEN" })
12
+ });
13
+ // MCP server OAuth configuration
14
+ const mcpOAuthSchema = z.object({
15
+ auth_url: z.string(),
16
+ token_url: z.string(),
17
+ client_id: z.string().optional(), // $ENV_VAR reference or literal
18
+ client_secret: z.string().optional(),
19
+ scopes: z.array(z.string()).optional(),
20
+ token_endpoint_auth_method: z.string().optional(), // "none", "client_secret_post", "client_secret_basic"
13
21
  });
14
22
  // Skills section
15
23
  const mcpServerSchema = z.object({
@@ -18,6 +26,7 @@ const mcpServerSchema = z.object({
18
26
  args: z.array(z.string()).optional(),
19
27
  env: z.record(z.string()).optional(),
20
28
  headers: z.record(z.string()).optional(),
29
+ oauth: mcpOAuthSchema.optional(),
21
30
  });
22
31
  const skillsSchema = z.object({
23
32
  enabled: z.array(z.string()).default([]),
@@ -31,22 +40,20 @@ const networkSchema = z.object({
31
40
  // Worker section
32
41
  const workerSchema = z.object({
33
42
  nix_packages: z.array(z.string()).optional(),
34
- timeout_minutes: z.number().positive().optional(),
35
- });
36
- // Platforms section
37
- const platformsSchema = z.object({
38
- telegram: z.boolean().optional(),
39
- slack: z.boolean().optional(),
40
- whatsapp: z.boolean().optional(),
41
- api: z.boolean().optional(),
42
43
  });
43
- // Full lobu.toml schema
44
- export const lobuConfigSchema = z.object({
45
- agent: agentSchema,
44
+ // Each [agents.{id}] table
45
+ const agentEntrySchema = z.object({
46
+ name: z.string(),
47
+ description: z.string().optional(),
48
+ dir: z.string(), // path to agent content directory (IDENTITY.md, SOUL.md, USER.md, skills/)
46
49
  providers: z.array(providerSchema).default([]),
50
+ connections: z.array(connectionSchema).default([]),
47
51
  skills: skillsSchema.default({ enabled: [] }),
48
52
  network: networkSchema.optional(),
49
53
  worker: workerSchema.optional(),
50
- platforms: platformsSchema.optional(),
54
+ });
55
+ // Full lobu.toml schema
56
+ export const lobuConfigSchema = z.object({
57
+ agents: z.record(z.string().regex(/^[a-z0-9][a-z0-9-]*$/), agentEntrySchema),
51
58
  });
52
59
  //# sourceMappingURL=schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,9 @@ export interface TransformResult {
6
6
  /**
7
7
  * Transform lobu.toml config into docker-compose environment variables
8
8
  * and MCP config JSON for local dev mode.
9
+ *
10
+ * Platform connection credentials are managed via the settings page /
11
+ * connections API and stored in Redis — they are NOT emitted as env vars.
9
12
  */
10
13
  export declare function transformConfig(config: LobuTomlConfig): TransformResult;
11
14
  //# sourceMappingURL=transformer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transformer.d.ts","sourceRoot":"","sources":["../../src/config/transformer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElE,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,IAAI,CAAC;CAClD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,eAAe,CAsDvE"}
1
+ {"version":3,"file":"transformer.d.ts","sourceRoot":"","sources":["../../src/config/transformer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElE,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,IAAI,CAAC;CAClD;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,eAAe,CA8CvE"}
@@ -1,12 +1,16 @@
1
1
  /**
2
2
  * Transform lobu.toml config into docker-compose environment variables
3
3
  * and MCP config JSON for local dev mode.
4
+ *
5
+ * Platform connection credentials are managed via the settings page /
6
+ * connections API and stored in Redis — they are NOT emitted as env vars.
4
7
  */
5
8
  export function transformConfig(config) {
6
9
  const envVars = {};
7
- // Agent name as compose project name
8
- envVars.COMPOSE_PROJECT_NAME = config.agent.name;
9
- // Identity lives in IDENTITY.md, SOUL.md, USER.md files — loaded by dev command
10
+ // Agent name as compose project name (only in single-agent mode)
11
+ if (config.agent) {
12
+ envVars.COMPOSE_PROJECT_NAME = config.agent.name;
13
+ }
10
14
  // Network config
11
15
  if (config.network?.allowed) {
12
16
  envVars.WORKER_ALLOWED_DOMAINS = config.network.allowed.join(",");
@@ -21,13 +25,6 @@ export function transformConfig(config) {
21
25
  if (config.worker?.nix_packages?.length) {
22
26
  envVars.WORKER_NIX_PACKAGES = config.worker.nix_packages.join(",");
23
27
  }
24
- // Platform flags
25
- if (config.platforms?.telegram) {
26
- envVars.TELEGRAM_ENABLED = "true";
27
- }
28
- if (config.platforms?.api !== false) {
29
- envVars.API_ENABLED = "true";
30
- }
31
28
  // Provider config - stored as JSON for gateway to parse
32
29
  if (config.providers.length > 0) {
33
30
  envVars.AGENT_PROVIDERS = JSON.stringify(config.providers.map((p) => ({
@@ -1 +1 @@
1
- {"version":3,"file":"transformer.js","sourceRoot":"","sources":["../../src/config/transformer.ts"],"names":[],"mappings":"AAOA;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,MAAsB;IACpD,MAAM,OAAO,GAA2B,EAAE,CAAC;IAE3C,qCAAqC;IACrC,OAAO,CAAC,oBAAoB,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;IAEjD,gFAAgF;IAEhF,iBAAiB;IACjB,IAAI,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;QAC5B,OAAO,CAAC,sBAAsB,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QAC3B,OAAO,CAAC,yBAAyB,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtE,CAAC;IAED,gBAAgB;IAChB,IAAI,MAAM,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC;QACnC,OAAO,CAAC,sBAAsB,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IACzE,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC;QACxC,OAAO,CAAC,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrE,CAAC;IAED,iBAAiB;IACjB,IAAI,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC;QAC/B,OAAO,CAAC,gBAAgB,GAAG,MAAM,CAAC;IACpC,CAAC;IACD,IAAI,MAAM,CAAC,SAAS,EAAE,GAAG,KAAK,KAAK,EAAE,CAAC;QACpC,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC;IAC/B,CAAC;IAED,wDAAwD;IACxD,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,SAAS,CACtC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3B,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,KAAK,EAAE,CAAC,CAAC,KAAK;SACf,CAAC,CAAC,CACJ,CAAC;IACJ,CAAC;IAED,gBAAgB;IAChB,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrC,OAAO,CAAC,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzD,CAAC;IAED,sCAAsC;IACtC,IAAI,SAAS,GAA0C,IAAI,CAAC;IAC5D,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnE,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;IAChC,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AAChC,CAAC"}
1
+ {"version":3,"file":"transformer.js","sourceRoot":"","sources":["../../src/config/transformer.ts"],"names":[],"mappings":"AAOA;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,MAAsB;IACpD,MAAM,OAAO,GAA2B,EAAE,CAAC;IAE3C,iEAAiE;IACjE,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,OAAO,CAAC,oBAAoB,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;IACnD,CAAC;IAED,iBAAiB;IACjB,IAAI,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;QAC5B,OAAO,CAAC,sBAAsB,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QAC3B,OAAO,CAAC,yBAAyB,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtE,CAAC;IAED,gBAAgB;IAChB,IAAI,MAAM,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC;QACnC,OAAO,CAAC,sBAAsB,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IACzE,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC;QACxC,OAAO,CAAC,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrE,CAAC;IAED,wDAAwD;IACxD,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,SAAS,CACtC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3B,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,KAAK,EAAE,CAAC,CAAC,KAAK;SACf,CAAC,CAAC,CACJ,CAAC;IACJ,CAAC;IAED,gBAAgB;IAChB,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrC,OAAO,CAAC,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzD,CAAC;IAED,sCAAsC;IACtC,IAAI,SAAS,GAA0C,IAAI,CAAC;IAC5D,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnE,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;IAChC,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AAChC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,2 @@
1
- export { initCommand } from "./commands/init.js";
2
- export * from "./types.js";
3
- export { checkConfigExists } from "./utils/config.js";
4
- export { renderTemplate } from "./utils/template.js";
5
1
  export declare function runCli(argv?: readonly string[]): Promise<void>;
6
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAWrD,wBAAsB,MAAM,CAC1B,IAAI,GAAE,SAAS,MAAM,EAAiB,GACrC,OAAO,CAAC,IAAI,CAAC,CA0Mf"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAgBA,wBAAsB,MAAM,CAC1B,IAAI,GAAE,SAAS,MAAM,EAAiB,GACrC,OAAO,CAAC,IAAI,CAAC,CAsQf"}
package/dist/index.js CHANGED
@@ -3,11 +3,6 @@ import { dirname, join } from "node:path";
3
3
  import { fileURLToPath } from "node:url";
4
4
  import chalk from "chalk";
5
5
  import { Command } from "commander";
6
- // Re-exports for backward compatibility
7
- export { initCommand } from "./commands/init.js";
8
- export * from "./types.js";
9
- export { checkConfigExists } from "./utils/config.js";
10
- export { renderTemplate } from "./utils/template.js";
11
6
  const __dirname = dirname(fileURLToPath(import.meta.url));
12
7
  async function getPackageVersion() {
13
8
  const pkgPath = join(__dirname, "..", "package.json");
@@ -37,6 +32,16 @@ export async function runCli(argv = process.argv) {
37
32
  process.exit(1);
38
33
  }
39
34
  });
35
+ // ─── chat ──────────────────────────────────────────────────────────
36
+ program
37
+ .command("chat <prompt>")
38
+ .description("Send a prompt to an agent and stream the response")
39
+ .option("-a, --agent <id>", "Agent ID (defaults to first in lobu.toml)")
40
+ .option("-g, --gateway <url>", "Gateway URL (default: http://localhost:8080)")
41
+ .action(async (prompt, options) => {
42
+ const { chatCommand } = await import("./commands/chat.js");
43
+ await chatCommand(process.cwd(), prompt, options);
44
+ });
40
45
  // ─── validate ───────────────────────────────────────────────────────
41
46
  program
42
47
  .command("validate")
@@ -75,6 +80,8 @@ export async function runCli(argv = process.argv) {
75
80
  .command("login")
76
81
  .description("Authenticate with Lobu Cloud")
77
82
  .option("--token <token>", "Use API token directly (CI/CD)")
83
+ .option("--admin-password", "Use the development-only admin password fallback")
84
+ .option("-c, --context <name>", "Use a named context")
78
85
  .action(async (options) => {
79
86
  const { loginCommand } = await import("./commands/login.js");
80
87
  await loginCommand(options);
@@ -83,17 +90,52 @@ export async function runCli(argv = process.argv) {
83
90
  program
84
91
  .command("logout")
85
92
  .description("Clear stored credentials")
86
- .action(async () => {
93
+ .option("-c, --context <name>", "Use a named context")
94
+ .action(async (options) => {
87
95
  const { logoutCommand } = await import("./commands/logout.js");
88
- await logoutCommand();
96
+ await logoutCommand(options);
89
97
  });
90
98
  // ─── whoami ─────────────────────────────────────────────────────────
91
99
  program
92
100
  .command("whoami")
93
101
  .description("Show current user and linked agent")
94
- .action(async () => {
102
+ .option("-c, --context <name>", "Use a named context")
103
+ .action(async (options) => {
95
104
  const { whoamiCommand } = await import("./commands/whoami.js");
96
- await whoamiCommand();
105
+ await whoamiCommand(options);
106
+ });
107
+ // ─── context ────────────────────────────────────────────────────────
108
+ const context = program
109
+ .command("context")
110
+ .description("Manage Lobu API contexts");
111
+ context
112
+ .command("list")
113
+ .description("List configured contexts")
114
+ .action(async () => {
115
+ const { contextListCommand } = await import("./commands/context.js");
116
+ await contextListCommand();
117
+ });
118
+ context
119
+ .command("current")
120
+ .description("Show the active context")
121
+ .action(async () => {
122
+ const { contextCurrentCommand } = await import("./commands/context.js");
123
+ await contextCurrentCommand();
124
+ });
125
+ context
126
+ .command("add <name>")
127
+ .description("Add a named context")
128
+ .requiredOption("--api-url <url>", "API base URL for this context")
129
+ .action(async (name, options) => {
130
+ const { contextAddCommand } = await import("./commands/context.js");
131
+ await contextAddCommand({ name, apiUrl: options.apiUrl });
132
+ });
133
+ context
134
+ .command("use <name>")
135
+ .description("Set the active context")
136
+ .action(async (name) => {
137
+ const { contextUseCommand } = await import("./commands/context.js");
138
+ await contextUseCommand(name);
97
139
  });
98
140
  // ─── status ─────────────────────────────────────────────────────────
99
141
  program
@@ -101,7 +143,7 @@ export async function runCli(argv = process.argv) {
101
143
  .description("Agent health and version info")
102
144
  .action(async () => {
103
145
  const { statusCommand } = await import("./commands/status.js");
104
- await statusCommand();
146
+ await statusCommand(process.cwd());
105
147
  });
106
148
  // ─── secrets ────────────────────────────────────────────────────────
107
149
  const secrets = program
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -12,9 +12,11 @@
12
12
  "oauth": {
13
13
  "authUrl": "https://accounts.google.com/o/oauth2/v2/auth",
14
14
  "tokenUrl": "https://oauth2.googleapis.com/token",
15
- "clientId": "${env:GOOGLE_CLIENT_ID}",
16
- "clientSecret": "${env:GOOGLE_CLIENT_SECRET}",
17
- "incrementalAuth": true
15
+ "incrementalAuth": true,
16
+ "extraAuthParams": {
17
+ "access_type": "offline",
18
+ "prompt": "consent"
19
+ }
18
20
  },
19
21
  "scopesConfig": {
20
22
  "default": ["openid", "profile", "email"],
@@ -47,9 +49,7 @@
47
49
  "authType": "oauth",
48
50
  "oauth": {
49
51
  "authUrl": "https://github.com/login/oauth/authorize",
50
- "tokenUrl": "https://github.com/login/oauth/access_token",
51
- "clientId": "${env:GITHUB_CLIENT_ID}",
52
- "clientSecret": "${env:GITHUB_CLIENT_SECRET}"
52
+ "tokenUrl": "https://github.com/login/oauth/access_token"
53
53
  },
54
54
  "scopesConfig": {
55
55
  "default": ["read:user", "user:email"],
@@ -78,9 +78,7 @@
78
78
  "authType": "oauth",
79
79
  "oauth": {
80
80
  "authUrl": "https://login.microsoftonline.com/common/oauth2/v2.0/authorize",
81
- "tokenUrl": "https://login.microsoftonline.com/common/oauth2/v2.0/token",
82
- "clientId": "${env:MICROSOFT_CLIENT_ID}",
83
- "clientSecret": "${env:MICROSOFT_CLIENT_SECRET}"
81
+ "tokenUrl": "https://login.microsoftonline.com/common/oauth2/v2.0/token"
84
82
  },
85
83
  "scopesConfig": {
86
84
  "default": ["openid", "profile", "email", "offline_access"],
@@ -113,8 +111,6 @@
113
111
  "oauth": {
114
112
  "authUrl": "https://api.notion.com/v1/oauth/authorize",
115
113
  "tokenUrl": "https://api.notion.com/v1/oauth/token",
116
- "clientId": "${env:NOTION_CLIENT_ID}",
117
- "clientSecret": "${env:NOTION_CLIENT_SECRET}",
118
114
  "tokenEndpointAuthMethod": "client_secret_basic"
119
115
  },
120
116
  "apiDomains": ["api.notion.com"],
@@ -135,8 +131,6 @@
135
131
  "oauth": {
136
132
  "authUrl": "https://accounts.spotify.com/authorize",
137
133
  "tokenUrl": "https://accounts.spotify.com/api/token",
138
- "clientId": "${env:SPOTIFY_CLIENT_ID}",
139
- "clientSecret": "${env:SPOTIFY_CLIENT_SECRET}",
140
134
  "tokenEndpointAuthMethod": "client_secret_basic"
141
135
  },
142
136
  "scopesConfig": {
@@ -171,9 +165,7 @@
171
165
  "authType": "oauth",
172
166
  "oauth": {
173
167
  "authUrl": "https://linear.app/oauth/authorize",
174
- "tokenUrl": "https://api.linear.app/oauth/token",
175
- "clientId": "${env:LINEAR_CLIENT_ID}",
176
- "clientSecret": "${env:LINEAR_CLIENT_SECRET}"
168
+ "tokenUrl": "https://api.linear.app/oauth/token"
177
169
  },
178
170
  "scopesConfig": {
179
171
  "default": ["read"],
@@ -196,9 +188,7 @@
196
188
  "authType": "oauth",
197
189
  "oauth": {
198
190
  "authUrl": "https://auth.atlassian.com/authorize",
199
- "tokenUrl": "https://auth.atlassian.com/oauth/token",
200
- "clientId": "${env:ATLASSIAN_CLIENT_ID}",
201
- "clientSecret": "${env:ATLASSIAN_CLIENT_SECRET}"
191
+ "tokenUrl": "https://auth.atlassian.com/oauth/token"
202
192
  },
203
193
  "scopesConfig": {
204
194
  "default": ["read:me"],
@@ -226,9 +216,7 @@
226
216
  "authType": "oauth",
227
217
  "oauth": {
228
218
  "authUrl": "https://sentry.io/oauth/authorize/",
229
- "tokenUrl": "https://sentry.io/oauth/token/",
230
- "clientId": "${env:SENTRY_CLIENT_ID}",
231
- "clientSecret": "${env:SENTRY_CLIENT_SECRET}"
219
+ "tokenUrl": "https://sentry.io/oauth/token/"
232
220
  },
233
221
  "scopesConfig": {
234
222
  "default": ["org:read", "project:read", "event:read"],
@@ -251,16 +239,89 @@
251
239
  }
252
240
  ]
253
241
  },
242
+ {
243
+ "id": "reddit",
244
+ "name": "Reddit",
245
+ "description": "Reddit posts, comments, subreddits, and user data",
246
+ "integrations": [
247
+ {
248
+ "id": "reddit",
249
+ "label": "Reddit",
250
+ "authType": "oauth",
251
+ "oauth": {
252
+ "authUrl": "https://www.reddit.com/api/v1/authorize?duration=permanent",
253
+ "tokenUrl": "https://www.reddit.com/api/v1/access_token",
254
+ "tokenEndpointAuthMethod": "client_secret_basic"
255
+ },
256
+ "scopesConfig": {
257
+ "default": ["identity", "read"],
258
+ "available": [
259
+ "submit",
260
+ "vote",
261
+ "edit",
262
+ "save",
263
+ "history",
264
+ "mysubreddits",
265
+ "subscribe",
266
+ "flair"
267
+ ]
268
+ },
269
+ "apiDomains": ["oauth.reddit.com"],
270
+ "apiBase": "https://oauth.reddit.com",
271
+ "apiHints": "User: /api/v1/me; Subreddit posts: /r/{subreddit}/hot; Submit: /api/submit; Vote: /api/vote; Comments: /r/{subreddit}/comments/{article}"
272
+ }
273
+ ]
274
+ },
275
+ {
276
+ "id": "twitter",
277
+ "name": "X (Twitter)",
278
+ "description": "Tweets, timelines, users, and direct messages",
279
+ "integrations": [
280
+ {
281
+ "id": "twitter",
282
+ "label": "X (Twitter)",
283
+ "authType": "oauth",
284
+ "oauth": {
285
+ "authUrl": "https://twitter.com/i/oauth2/authorize",
286
+ "tokenUrl": "https://api.twitter.com/2/oauth2/token",
287
+ "tokenEndpointAuthMethod": "client_secret_basic"
288
+ },
289
+ "scopesConfig": {
290
+ "default": ["tweet.read", "users.read", "offline.access"],
291
+ "available": [
292
+ "tweet.write",
293
+ "follows.read",
294
+ "follows.write",
295
+ "like.read",
296
+ "like.write",
297
+ "dm.read",
298
+ "dm.write"
299
+ ]
300
+ },
301
+ "apiDomains": ["api.twitter.com"],
302
+ "apiBase": "https://api.twitter.com/2",
303
+ "apiHints": "User: /users/me; Tweets: /tweets/{id}; Timeline: /users/{id}/tweets; Post tweet: /tweets; Search: /tweets/search/recent?query={q}"
304
+ }
305
+ ]
306
+ },
254
307
  {
255
308
  "id": "owletto",
256
309
  "name": "Owletto Memory",
257
310
  "description": "Long-term memory across conversations",
311
+ "hidden": true,
258
312
  "mcpServers": [
259
313
  {
260
314
  "id": "owletto",
261
315
  "name": "Owletto",
262
- "url": "https://owletto.com/mcp",
263
- "type": "sse"
316
+ "url": "${env:OWLETTO_MCP_URL}",
317
+ "type": "sse",
318
+ "oauth": {
319
+ "authUrl": "${env:OWLETTO_OAUTH_AUTH_URL}",
320
+ "tokenUrl": "${env:OWLETTO_OAUTH_TOKEN_URL}",
321
+ "clientId": "${env:OWLETTO_OAUTH_CLIENT_ID}",
322
+ "scopes": ["mcp:read", "mcp:write"],
323
+ "tokenEndpointAuthMethod": "none"
324
+ }
264
325
  }
265
326
  ]
266
327
  },
@@ -333,11 +394,12 @@
333
394
  "displayName": "NVIDIA NIM (free)",
334
395
  "iconUrl": "https://www.google.com/s2/favicons?domain=nvidia.com&sz=128",
335
396
  "envVarName": "NVIDIA_API_KEY",
336
- "upstreamBaseUrl": "https://integrate.api.nvidia.com",
397
+ "upstreamBaseUrl": "https://integrate.api.nvidia.com/v1",
337
398
  "apiKeyInstructions": "Get your API key from <a href=\"https://build.nvidia.com/settings/api-keys\" target=\"_blank\" class=\"text-blue-600 hover:underline\">NVIDIA Build</a>",
338
399
  "apiKeyPlaceholder": "nvapi-...",
339
400
  "sdkCompat": "openai",
340
- "modelsEndpoint": "/v1/models"
401
+ "modelsEndpoint": "/v1/models",
402
+ "defaultModel": "nvidia/moonshotai/kimi-k2.5"
341
403
  }
342
404
  ]
343
405
  },
@@ -438,9 +500,7 @@
438
500
  "authType": "oauth",
439
501
  "oauth": {
440
502
  "authUrl": "https://openrouter.ai/auth",
441
- "tokenUrl": "https://openrouter.ai/api/v1/auth/keys",
442
- "clientId": "${env:OPENROUTER_CLIENT_ID}",
443
- "clientSecret": "${env:OPENROUTER_CLIENT_SECRET}"
503
+ "tokenUrl": "https://openrouter.ai/api/v1/auth/keys"
444
504
  },
445
505
  "apiDomains": ["openrouter.ai"],
446
506
  "apiBase": "https://openrouter.ai/api/v1",
@@ -1,20 +1,9 @@
1
- # Slack Configuration
2
- SLACK_SIGNING_SECRET={{SLACK_SIGNING_SECRET}}
3
- SLACK_BOT_TOKEN={{SLACK_BOT_TOKEN}}
4
- SLACK_APP_TOKEN={{SLACK_APP_TOKEN}}
5
-
6
- # Telegram Configuration
7
- TELEGRAM_ENABLED={{TELEGRAM_ENABLED}}
8
- TELEGRAM_BOT_TOKEN={{TELEGRAM_BOT_TOKEN}}
9
- TELEGRAM_ALLOW_FROM={{TELEGRAM_ALLOW_FROM}}
10
-
11
- # Anthropic Configuration
12
- ANTHROPIC_API_KEY={{ANTHROPIC_API_KEY}}
13
-
14
1
  # Gateway Configuration
15
- PUBLIC_GATEWAY_URL={{PUBLIC_GATEWAY_URL}}
2
+ GATEWAY_PORT={{GATEWAY_PORT}}
3
+ DEPLOYMENT_MODE={{DEPLOYMENT_MODE}}
16
4
 
17
5
  # Security
6
+ ADMIN_PASSWORD={{ADMIN_PASSWORD}}
18
7
  ENCRYPTION_KEY={{ENCRYPTION_KEY}}
19
8
 
20
9
  # Worker Network Access Control
@@ -5,6 +5,7 @@
5
5
 
6
6
  # Generated files
7
7
  .lobu/
8
+ data/
8
9
 
9
10
  # Workspace data
10
11
  workspaces/
@@ -7,8 +7,8 @@ Lobu instance created with `@lobu/cli` v{{CLI_VERSION}}
7
7
  Make sure you have Docker CLI installed.
8
8
 
9
9
  ```bash
10
- # Start the services (automatically builds worker image on first run)
11
- docker compose up -d
10
+ # Start the services
11
+ lobu dev -d
12
12
 
13
13
  # View logs
14
14
  docker compose logs -f
@@ -17,8 +17,6 @@ docker compose logs -f
17
17
  docker compose down
18
18
  ```
19
19
 
20
- **Note**: The first startup will take a few minutes to build the worker image. Subsequent starts will be much faster.
21
-
22
20
  ## Upgrading to Latest Version
23
21
 
24
22
  ### Update Gateway and Pre-built Images
@@ -48,11 +46,12 @@ Check for new environment variables in release notes or the [Lobu documentation]
48
46
  ### Environment Variables
49
47
 
50
48
  Edit `.env` to configure:
51
- - `SLACK_BOT_TOKEN` - Your Slack bot token
52
- - `SLACK_APP_TOKEN` - Your Slack app token
53
- - `SLACK_SIGNING_SECRET` - Your Slack signing secret
54
- - `ANTHROPIC_API_KEY` - Your Anthropic API key (optional if users provide their own)
55
49
  - `PUBLIC_GATEWAY_URL` - Public URL for OAuth callbacks
50
+ - `WORKER_ALLOWED_DOMAINS` - Allowed domains for worker network access
51
+
52
+ ### Platform Connections
53
+
54
+ Platforms (Slack, Telegram, Discord, WhatsApp, Teams) are configured via the admin page at `{PUBLIC_GATEWAY_URL}/agents`. No platform-specific env vars needed — just paste your bot token in the UI.
56
55
 
57
56
  ### Worker Customization
58
57
 
@@ -0,0 +1,3 @@
1
+ /** Parse markdown and return ANSI-styled terminal text. */
2
+ export declare function renderMarkdown(text: string): string;
3
+ //# sourceMappingURL=markdown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/utils/markdown.ts"],"names":[],"mappings":"AAMA,2DAA2D;AAC3D,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGnD"}
@@ -0,0 +1,10 @@
1
+ import { marked } from "marked";
2
+ // @ts-expect-error -- no type declarations
3
+ import { markedTerminal } from "marked-terminal";
4
+ marked.use(markedTerminal());
5
+ /** Parse markdown and return ANSI-styled terminal text. */
6
+ export function renderMarkdown(text) {
7
+ const result = marked.parse(text);
8
+ return result.replace(/\n+$/, "");
9
+ }
10
+ //# sourceMappingURL=markdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/utils/markdown.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,MAAM,EAAE,MAAM,QAAQ,CAAC;AACtD,2CAA2C;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,CAAC,GAAG,CAAC,cAAc,EAAqB,CAAC,CAAC;AAEhD,2DAA2D;AAC3D,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAW,CAAC;IAC5C,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACpC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lobu/cli",
3
- "version": "3.0.3",
3
+ "version": "3.0.4",
4
4
  "description": "CLI for deploying and managing AI agents on Lobu",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -22,9 +22,11 @@
22
22
  "author": "Burak Emre",
23
23
  "license": "Apache-2.0",
24
24
  "dependencies": {
25
+ "chalk": "^5.3.0",
25
26
  "commander": "^12.0.0",
26
27
  "inquirer": "^9.2.14",
27
- "chalk": "^5.3.0",
28
+ "marked": "^17.0.4",
29
+ "marked-terminal": "^7.3.0",
28
30
  "open": "^10.1.0",
29
31
  "ora": "^8.0.1",
30
32
  "smol-toml": "^1.3.1",