@lobu/cli 3.0.4 → 3.0.6

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 (74) hide show
  1. package/README.md +17 -221
  2. package/dist/api/context.d.ts +0 -2
  3. package/dist/api/context.d.ts.map +1 -1
  4. package/dist/api/context.js +2 -2
  5. package/dist/api/context.js.map +1 -1
  6. package/dist/commands/chat.d.ts +7 -2
  7. package/dist/commands/chat.d.ts.map +1 -1
  8. package/dist/commands/chat.js +111 -25
  9. package/dist/commands/chat.js.map +1 -1
  10. package/dist/commands/dev.d.ts +3 -2
  11. package/dist/commands/dev.d.ts.map +1 -1
  12. package/dist/commands/dev.js +17 -165
  13. package/dist/commands/dev.js.map +1 -1
  14. package/dist/commands/init.d.ts.map +1 -1
  15. package/dist/commands/init.js +132 -59
  16. package/dist/commands/init.js.map +1 -1
  17. package/dist/commands/skills/info.d.ts.map +1 -1
  18. package/dist/commands/skills/info.js +0 -9
  19. package/dist/commands/skills/info.js.map +1 -1
  20. package/dist/commands/skills/list.d.ts.map +1 -1
  21. package/dist/commands/skills/list.js +5 -6
  22. package/dist/commands/skills/list.js.map +1 -1
  23. package/dist/commands/skills/registry.d.ts +1 -11
  24. package/dist/commands/skills/registry.d.ts.map +1 -1
  25. package/dist/commands/skills/registry.js +0 -3
  26. package/dist/commands/skills/registry.js.map +1 -1
  27. package/dist/commands/status.js +1 -1
  28. package/dist/config/loader.d.ts +0 -18
  29. package/dist/config/loader.d.ts.map +1 -1
  30. package/dist/config/loader.js +2 -62
  31. package/dist/config/loader.js.map +1 -1
  32. package/dist/index.js +8 -15
  33. package/dist/index.js.map +1 -1
  34. package/dist/mcp-servers.json +8 -8
  35. package/dist/system-skills.json +52 -309
  36. package/dist/templates/README.md.tmpl +4 -4
  37. package/dist/templates/TESTING.md.tmpl +19 -19
  38. package/package.json +1 -2
  39. package/dist/__tests__/login.test.d.ts +0 -2
  40. package/dist/__tests__/login.test.d.ts.map +0 -1
  41. package/dist/__tests__/login.test.js +0 -173
  42. package/dist/__tests__/login.test.js.map +0 -1
  43. package/dist/api/client.d.ts +0 -11
  44. package/dist/api/client.d.ts.map +0 -1
  45. package/dist/api/client.js +0 -33
  46. package/dist/api/client.js.map +0 -1
  47. package/dist/commands/launch.d.ts +0 -6
  48. package/dist/commands/launch.d.ts.map +0 -1
  49. package/dist/commands/launch.js +0 -26
  50. package/dist/commands/launch.js.map +0 -1
  51. package/dist/config/agents-manifest.d.ts +0 -92
  52. package/dist/config/agents-manifest.d.ts.map +0 -1
  53. package/dist/config/agents-manifest.js +0 -7
  54. package/dist/config/agents-manifest.js.map +0 -1
  55. package/dist/config/platform-schemas.d.ts +0 -120
  56. package/dist/config/platform-schemas.d.ts.map +0 -1
  57. package/dist/config/platform-schemas.js +0 -97
  58. package/dist/config/platform-schemas.js.map +0 -1
  59. package/dist/config/transformer.d.ts +0 -14
  60. package/dist/config/transformer.d.ts.map +0 -1
  61. package/dist/config/transformer.js +0 -46
  62. package/dist/config/transformer.js.map +0 -1
  63. package/dist/mcp-servers.d.ts +0 -11
  64. package/dist/mcp-servers.d.ts.map +0 -1
  65. package/dist/mcp-servers.js +0 -27
  66. package/dist/mcp-servers.js.map +0 -1
  67. package/dist/types.d.ts +0 -76
  68. package/dist/types.d.ts.map +0 -1
  69. package/dist/types.js +0 -2
  70. package/dist/types.js.map +0 -1
  71. package/dist/utils/config.d.ts +0 -2
  72. package/dist/utils/config.d.ts.map +0 -1
  73. package/dist/utils/config.js +0 -13
  74. package/dist/utils/config.js.map +0 -1
@@ -1,173 +0,0 @@
1
- import { afterEach, beforeEach, describe, expect, mock, spyOn, test, } from "bun:test";
2
- describe("loginCommand", () => {
3
- const originalFetch = globalThis.fetch;
4
- let consoleLog;
5
- beforeEach(() => {
6
- mock.restore();
7
- consoleLog = spyOn(console, "log").mockImplementation(() => undefined);
8
- });
9
- afterEach(() => {
10
- globalThis.fetch = originalFetch;
11
- consoleLog.mockRestore();
12
- });
13
- test("uses device-first login when the gateway returns device mode", async () => {
14
- const saveCredentials = mock(async () => undefined);
15
- const loadCredentials = mock(async () => null);
16
- const openMock = mock(async () => undefined);
17
- const spinner = {
18
- start: mock(() => spinner),
19
- fail: mock(() => spinner),
20
- succeed: mock(() => spinner),
21
- };
22
- mock.module("open", () => ({
23
- default: openMock,
24
- }));
25
- mock.module("ora", () => ({
26
- default: mock(() => spinner),
27
- }));
28
- mock.module("../api/context.js", () => ({
29
- resolveContext: mock(async () => ({
30
- name: "dev",
31
- apiUrl: "https://lobu.example.com/api/v1",
32
- })),
33
- }));
34
- mock.module("../api/credentials.js", () => ({
35
- loadCredentials,
36
- saveCredentials,
37
- }));
38
- let calls = 0;
39
- globalThis.fetch = mock(async (input) => {
40
- const url = String(input);
41
- calls += 1;
42
- if (url.endsWith("/auth/cli/start")) {
43
- return new Response(JSON.stringify({
44
- mode: "device",
45
- deviceAuthId: "device-123",
46
- userCode: "ABCD-EFGH",
47
- verificationUri: "https://issuer.example.com/device",
48
- verificationUriComplete: "https://issuer.example.com/device?user_code=ABCD-EFGH",
49
- interval: 1,
50
- expiresAt: Date.now() + 10_000,
51
- }), { status: 200, headers: { "content-type": "application/json" } });
52
- }
53
- if (url.endsWith("/auth/cli/poll")) {
54
- return new Response(JSON.stringify({
55
- status: "complete",
56
- accessToken: "lobu-access-token",
57
- refreshToken: "lobu-refresh-token",
58
- expiresAt: Date.now() + 3600_000,
59
- user: {
60
- userId: "user-123",
61
- email: "user@example.com",
62
- name: "Example User",
63
- },
64
- }), { status: 200, headers: { "content-type": "application/json" } });
65
- }
66
- throw new Error(`Unexpected fetch: ${url}`);
67
- });
68
- const { loginCommand } = await import(`../commands/login.ts?device=${Date.now()}`);
69
- await loginCommand({});
70
- expect(calls).toBe(2);
71
- expect(openMock).toHaveBeenCalledWith("https://issuer.example.com/device?user_code=ABCD-EFGH");
72
- expect(saveCredentials).toHaveBeenCalledTimes(1);
73
- expect(spinner.succeed).toHaveBeenCalledTimes(1);
74
- });
75
- test("falls back to browser login when the gateway returns browser mode", async () => {
76
- const saveCredentials = mock(async () => undefined);
77
- const loadCredentials = mock(async () => null);
78
- const openMock = mock(async () => undefined);
79
- const spinner = {
80
- start: mock(() => spinner),
81
- fail: mock(() => spinner),
82
- succeed: mock(() => spinner),
83
- };
84
- mock.module("open", () => ({
85
- default: openMock,
86
- }));
87
- mock.module("ora", () => ({
88
- default: mock(() => spinner),
89
- }));
90
- mock.module("../api/context.js", () => ({
91
- resolveContext: mock(async () => ({
92
- name: "prod",
93
- apiUrl: "https://lobu.example.com/api/v1",
94
- })),
95
- }));
96
- mock.module("../api/credentials.js", () => ({
97
- loadCredentials,
98
- saveCredentials,
99
- }));
100
- globalThis.fetch = mock(async (input) => {
101
- const url = String(input);
102
- if (url.endsWith("/auth/cli/start")) {
103
- return new Response(JSON.stringify({
104
- mode: "browser",
105
- requestId: "request-123",
106
- loginUrl: "https://lobu.example.com/login",
107
- pollIntervalMs: 1,
108
- expiresAt: Date.now() + 10_000,
109
- }), { status: 200, headers: { "content-type": "application/json" } });
110
- }
111
- if (url.endsWith("/auth/cli/poll")) {
112
- return new Response(JSON.stringify({
113
- status: "complete",
114
- accessToken: "lobu-access-token",
115
- refreshToken: "lobu-refresh-token",
116
- expiresAt: Date.now() + 3600_000,
117
- user: {
118
- userId: "user-456",
119
- email: "prod@example.com",
120
- name: "Prod User",
121
- },
122
- }), { status: 200, headers: { "content-type": "application/json" } });
123
- }
124
- throw new Error(`Unexpected fetch: ${url}`);
125
- });
126
- const { loginCommand } = await import(`../commands/login.ts?browser=${Date.now()}`);
127
- await loginCommand({});
128
- expect(openMock).toHaveBeenCalledWith("https://lobu.example.com/login");
129
- expect(saveCredentials).toHaveBeenCalledTimes(1);
130
- expect(spinner.succeed).toHaveBeenCalledTimes(1);
131
- });
132
- test("uses the explicit admin-password fallback when requested", async () => {
133
- const saveCredentials = mock(async () => undefined);
134
- const loadCredentials = mock(async () => null);
135
- const promptMock = mock(async () => ({ password: "dev-secret" }));
136
- mock.module("inquirer", () => ({
137
- default: {
138
- prompt: promptMock,
139
- },
140
- }));
141
- mock.module("../api/context.js", () => ({
142
- resolveContext: mock(async () => ({
143
- name: "dev",
144
- apiUrl: "https://lobu.example.com/api/v1",
145
- })),
146
- }));
147
- mock.module("../api/credentials.js", () => ({
148
- loadCredentials,
149
- saveCredentials,
150
- }));
151
- globalThis.fetch = mock(async (input) => {
152
- const url = String(input);
153
- if (url.endsWith("/auth/cli/admin-login")) {
154
- return new Response(JSON.stringify({
155
- status: "complete",
156
- accessToken: "lobu-access-token",
157
- refreshToken: "lobu-refresh-token",
158
- expiresAt: Date.now() + 3600_000,
159
- user: {
160
- userId: "admin",
161
- name: "Admin (dev)",
162
- },
163
- }), { status: 200, headers: { "content-type": "application/json" } });
164
- }
165
- throw new Error(`Unexpected fetch: ${url}`);
166
- });
167
- const { loginCommand } = await import(`../commands/login.ts?admin=${Date.now()}`);
168
- await loginCommand({ adminPassword: true });
169
- expect(promptMock).toHaveBeenCalledTimes(1);
170
- expect(saveCredentials).toHaveBeenCalledTimes(1);
171
- });
172
- });
173
- //# sourceMappingURL=login.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"login.test.js","sourceRoot":"","sources":["../../src/__tests__/login.test.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- export interface ApiResponse<T = unknown> {
2
- ok: boolean;
3
- data?: T;
4
- error?: string;
5
- }
6
- /**
7
- * HTTP client for community.lobu.ai API.
8
- * Stub for Phase 1 — most endpoints don't exist yet.
9
- */
10
- export declare function apiRequest<T = unknown>(path: string, options?: RequestInit): Promise<ApiResponse<T>>;
11
- //# sourceMappingURL=client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,OAAO;IACtC,EAAE,EAAE,OAAO,CAAC;IACZ,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAAC,CAAC,GAAG,OAAO,EAC1C,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CA0BzB"}
@@ -1,33 +0,0 @@
1
- import { resolveContext } from "./context.js";
2
- import { getToken } from "./credentials.js";
3
- /**
4
- * HTTP client for community.lobu.ai API.
5
- * Stub for Phase 1 — most endpoints don't exist yet.
6
- */
7
- export async function apiRequest(path, options = {}) {
8
- const token = await getToken();
9
- const context = await resolveContext();
10
- const url = `${context.apiUrl}${path}`;
11
- const headers = {
12
- "Content-Type": "application/json",
13
- "X-Lobu-Org": "default",
14
- ...(token ? { Authorization: `Bearer ${token}` } : {}),
15
- ...options.headers,
16
- };
17
- try {
18
- const response = await fetch(url, { ...options, headers });
19
- if (!response.ok) {
20
- const body = await response.text();
21
- return { ok: false, error: `${response.status}: ${body}` };
22
- }
23
- const data = (await response.json());
24
- return { ok: true, data };
25
- }
26
- catch (err) {
27
- return {
28
- ok: false,
29
- error: err instanceof Error ? err.message : String(err),
30
- };
31
- }
32
- }
33
- //# sourceMappingURL=client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAQ5C;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,IAAY,EACZ,UAAuB,EAAE;IAEzB,MAAM,KAAK,GAAG,MAAM,QAAQ,EAAE,CAAC;IAC/B,MAAM,OAAO,GAAG,MAAM,cAAc,EAAE,CAAC;IACvC,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC;IAEvC,MAAM,OAAO,GAA2B;QACtC,cAAc,EAAE,kBAAkB;QAClC,YAAY,EAAE,SAAS;QACvB,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtD,GAAI,OAAO,CAAC,OAA8C;KAC3D,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;QAC3D,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC,MAAM,KAAK,IAAI,EAAE,EAAE,CAAC;QAC7D,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAM,CAAC;QAC1C,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC5B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;SACxD,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -1,6 +0,0 @@
1
- export declare function launchCommand(cwd: string, options: {
2
- dryRun?: boolean;
3
- env?: string;
4
- message?: string;
5
- }): Promise<void>;
6
- //# sourceMappingURL=launch.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"launch.d.ts","sourceRoot":"","sources":["../../src/commands/launch.ts"],"names":[],"mappings":"AAIA,wBAAsB,aAAa,CACjC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5D,OAAO,CAAC,IAAI,CAAC,CA+Bf"}
@@ -1,26 +0,0 @@
1
- import chalk from "chalk";
2
- import { isLoadError, loadConfig } from "../config/loader.js";
3
- import { validateCommand } from "./validate.js";
4
- export async function launchCommand(cwd, options) {
5
- const valid = await validateCommand(cwd);
6
- if (!valid) {
7
- process.exit(1);
8
- }
9
- const result = await loadConfig(cwd);
10
- if (isLoadError(result)) {
11
- process.exit(1);
12
- }
13
- const agentCount = Object.keys(result.config.agents).length;
14
- console.log(chalk.dim(` ${agentCount} agent(s) configured`));
15
- if (options.dryRun) {
16
- console.log(chalk.dim("\n Dry run — no changes applied.\n"));
17
- return;
18
- }
19
- console.log(chalk.bold.cyan("\n Lobu Cloud is in early access.\n"));
20
- console.log(chalk.bold(" Get started:"));
21
- console.log(` Schedule a call ${chalk.cyan("https://cal.com/burakemre/lobu")}`);
22
- console.log(` Self-host now ${chalk.cyan("https://lobu.ai/docs/deployment")}`);
23
- console.log(` REST API docs ${chalk.cyan("https://community.lobu.ai/api/docs")}`);
24
- console.log(chalk.dim(`\n Run locally with: ${chalk.white("lobu dev")}\n`));
25
- }
26
- //# sourceMappingURL=launch.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"launch.js","sourceRoot":"","sources":["../../src/commands/launch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,GAAW,EACX,OAA6D;IAE7D,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,CAAC;IACzC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,UAAU,sBAAsB,CAAC,CAAC,CAAC;IAE9D,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC,CAAC;QAC9D,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC,CAAC;IACrE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CACT,0BAA0B,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,EAAE,CACzE,CAAC;IACF,OAAO,CAAC,GAAG,CACT,0BAA0B,KAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,EAAE,CAC1E,CAAC;IACF,OAAO,CAAC,GAAG,CACT,0BAA0B,KAAK,CAAC,IAAI,CAAC,oCAAoC,CAAC,EAAE,CAC7E,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,yBAAyB,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/E,CAAC"}
@@ -1,92 +0,0 @@
1
- /**
2
- * Agents manifest — written to .lobu/agents.json by the CLI,
3
- * read by the gateway on startup to seed agent settings into Redis.
4
- */
5
- export interface AgentsManifest {
6
- version: 1;
7
- agents: AgentManifestEntry[];
8
- }
9
- export interface AgentManifestEntry {
10
- agentId: string;
11
- name: string;
12
- description?: string;
13
- settings: {
14
- identityMd?: string;
15
- soulMd?: string;
16
- userMd?: string;
17
- installedProviders?: Array<{
18
- providerId: string;
19
- }>;
20
- modelSelection?: {
21
- mode: "auto" | "pinned";
22
- pinnedModel?: string;
23
- };
24
- providerModelPreferences?: Record<string, string>;
25
- nixConfig?: {
26
- packages?: string[];
27
- flakeUrl?: string;
28
- };
29
- skillsConfig?: {
30
- skills: Array<{
31
- repo: string;
32
- name: string;
33
- description?: string;
34
- content: string;
35
- enabled: boolean;
36
- system?: boolean;
37
- integrations?: Array<{
38
- id: string;
39
- label?: string;
40
- authType?: string;
41
- scopesConfig?: {
42
- default: string[];
43
- available: string[];
44
- };
45
- scopes?: string[];
46
- apiDomains?: string[];
47
- }>;
48
- mcpServers?: Array<{
49
- id: string;
50
- name?: string;
51
- url?: string;
52
- type?: string;
53
- command?: string;
54
- args?: string[];
55
- }>;
56
- nixPackages?: string[];
57
- permissions?: string[];
58
- providers?: string[];
59
- modelPreference?: string;
60
- thinkingLevel?: "off" | "low" | "medium" | "high";
61
- }>;
62
- };
63
- networkConfig?: {
64
- allowedDomains?: string[];
65
- deniedDomains?: string[];
66
- };
67
- mcpServers?: Record<string, {
68
- url?: string;
69
- command?: string;
70
- args?: string[];
71
- env?: Record<string, string>;
72
- headers?: Record<string, string>;
73
- oauth?: {
74
- authUrl: string;
75
- tokenUrl: string;
76
- clientId?: string;
77
- clientSecret?: string;
78
- scopes?: string[];
79
- tokenEndpointAuthMethod?: string;
80
- };
81
- }>;
82
- };
83
- credentials?: Array<{
84
- providerId: string;
85
- key: string;
86
- }>;
87
- connections?: Array<{
88
- type: string;
89
- config: Record<string, string>;
90
- }>;
91
- }
92
- //# sourceMappingURL=agents-manifest.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agents-manifest.d.ts","sourceRoot":"","sources":["../../src/config/agents-manifest.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- /**
2
- * Agents manifest — written to .lobu/agents.json by the CLI,
3
- * read by the gateway on startup to seed agent settings into Redis.
4
- */
5
- // NOTE: Keep in sync with packages/gateway/src/services/agent-seeder.ts
6
- export {};
7
- //# sourceMappingURL=agents-manifest.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agents-manifest.js","sourceRoot":"","sources":["../../src/config/agents-manifest.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wEAAwE"}
@@ -1,120 +0,0 @@
1
- /**
2
- * Platform config schemas and env var mapping for lobu.toml.
3
- * Mirrors @lobu/core/platform-schemas — kept in sync manually since CLI
4
- * can't depend on @lobu/core due to TypeScript rootDir constraints.
5
- */
6
- import { z } from "zod";
7
- export declare const SUPPORTED_PLATFORMS: readonly ["telegram", "slack", "discord", "whatsapp", "teams"];
8
- export type SupportedPlatform = (typeof SUPPORTED_PLATFORMS)[number];
9
- export declare const TelegramConfigSchema: z.ZodObject<{
10
- botToken: z.ZodOptional<z.ZodString>;
11
- mode: z.ZodOptional<z.ZodEnum<["auto", "webhook", "polling"]>>;
12
- secretToken: z.ZodOptional<z.ZodString>;
13
- userName: z.ZodOptional<z.ZodString>;
14
- apiBaseUrl: z.ZodOptional<z.ZodString>;
15
- }, "strip", z.ZodTypeAny, {
16
- botToken?: string | undefined;
17
- mode?: "auto" | "webhook" | "polling" | undefined;
18
- secretToken?: string | undefined;
19
- userName?: string | undefined;
20
- apiBaseUrl?: string | undefined;
21
- }, {
22
- botToken?: string | undefined;
23
- mode?: "auto" | "webhook" | "polling" | undefined;
24
- secretToken?: string | undefined;
25
- userName?: string | undefined;
26
- apiBaseUrl?: string | undefined;
27
- }>;
28
- export declare const SlackConfigSchema: z.ZodObject<{
29
- botToken: z.ZodOptional<z.ZodString>;
30
- botUserId: z.ZodOptional<z.ZodString>;
31
- signingSecret: z.ZodOptional<z.ZodString>;
32
- clientId: z.ZodOptional<z.ZodString>;
33
- clientSecret: z.ZodOptional<z.ZodString>;
34
- encryptionKey: z.ZodOptional<z.ZodString>;
35
- installationKeyPrefix: z.ZodOptional<z.ZodString>;
36
- userName: z.ZodOptional<z.ZodString>;
37
- }, "strip", z.ZodTypeAny, {
38
- botToken?: string | undefined;
39
- userName?: string | undefined;
40
- botUserId?: string | undefined;
41
- signingSecret?: string | undefined;
42
- clientId?: string | undefined;
43
- clientSecret?: string | undefined;
44
- encryptionKey?: string | undefined;
45
- installationKeyPrefix?: string | undefined;
46
- }, {
47
- botToken?: string | undefined;
48
- userName?: string | undefined;
49
- botUserId?: string | undefined;
50
- signingSecret?: string | undefined;
51
- clientId?: string | undefined;
52
- clientSecret?: string | undefined;
53
- encryptionKey?: string | undefined;
54
- installationKeyPrefix?: string | undefined;
55
- }>;
56
- export declare const DiscordConfigSchema: z.ZodObject<{
57
- botToken: z.ZodOptional<z.ZodString>;
58
- applicationId: z.ZodOptional<z.ZodString>;
59
- publicKey: z.ZodOptional<z.ZodString>;
60
- mentionRoleIds: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
61
- userName: z.ZodOptional<z.ZodString>;
62
- }, "strip", z.ZodTypeAny, {
63
- botToken?: string | undefined;
64
- userName?: string | undefined;
65
- applicationId?: string | undefined;
66
- publicKey?: string | undefined;
67
- mentionRoleIds?: string[] | undefined;
68
- }, {
69
- botToken?: string | undefined;
70
- userName?: string | undefined;
71
- applicationId?: string | undefined;
72
- publicKey?: string | undefined;
73
- mentionRoleIds?: string[] | undefined;
74
- }>;
75
- export declare const WhatsAppConfigSchema: z.ZodObject<{
76
- accessToken: z.ZodOptional<z.ZodString>;
77
- phoneNumberId: z.ZodOptional<z.ZodString>;
78
- appSecret: z.ZodOptional<z.ZodString>;
79
- verifyToken: z.ZodOptional<z.ZodString>;
80
- apiVersion: z.ZodOptional<z.ZodString>;
81
- userName: z.ZodOptional<z.ZodString>;
82
- }, "strip", z.ZodTypeAny, {
83
- userName?: string | undefined;
84
- accessToken?: string | undefined;
85
- phoneNumberId?: string | undefined;
86
- appSecret?: string | undefined;
87
- verifyToken?: string | undefined;
88
- apiVersion?: string | undefined;
89
- }, {
90
- userName?: string | undefined;
91
- accessToken?: string | undefined;
92
- phoneNumberId?: string | undefined;
93
- appSecret?: string | undefined;
94
- verifyToken?: string | undefined;
95
- apiVersion?: string | undefined;
96
- }>;
97
- export declare const TeamsConfigSchema: z.ZodObject<{
98
- appId: z.ZodOptional<z.ZodString>;
99
- appPassword: z.ZodOptional<z.ZodString>;
100
- appTenantId: z.ZodOptional<z.ZodString>;
101
- appType: z.ZodOptional<z.ZodEnum<["MultiTenant", "SingleTenant"]>>;
102
- userName: z.ZodOptional<z.ZodString>;
103
- }, "strip", z.ZodTypeAny, {
104
- userName?: string | undefined;
105
- appId?: string | undefined;
106
- appPassword?: string | undefined;
107
- appTenantId?: string | undefined;
108
- appType?: "MultiTenant" | "SingleTenant" | undefined;
109
- }, {
110
- userName?: string | undefined;
111
- appId?: string | undefined;
112
- appPassword?: string | undefined;
113
- appTenantId?: string | undefined;
114
- appType?: "MultiTenant" | "SingleTenant" | undefined;
115
- }>;
116
- /**
117
- * Maps each platform + field to the corresponding environment variable name.
118
- */
119
- export declare const PLATFORM_ENV_MAP: Record<SupportedPlatform, Record<string, string>>;
120
- //# sourceMappingURL=platform-schemas.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"platform-schemas.d.ts","sourceRoot":"","sources":["../../src/config/platform-schemas.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,mBAAmB,gEAMtB,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAErE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;EAM/B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;EAS5B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;EAM9B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;EAO/B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;EAM5B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CACnC,iBAAiB,EACjB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAyCvB,CAAC"}
@@ -1,97 +0,0 @@
1
- /**
2
- * Platform config schemas and env var mapping for lobu.toml.
3
- * Mirrors @lobu/core/platform-schemas — kept in sync manually since CLI
4
- * can't depend on @lobu/core due to TypeScript rootDir constraints.
5
- */
6
- import { z } from "zod";
7
- export const SUPPORTED_PLATFORMS = [
8
- "telegram",
9
- "slack",
10
- "discord",
11
- "whatsapp",
12
- "teams",
13
- ];
14
- export const TelegramConfigSchema = z.object({
15
- botToken: z.string().optional(),
16
- mode: z.enum(["auto", "webhook", "polling"]).optional(),
17
- secretToken: z.string().optional(),
18
- userName: z.string().optional(),
19
- apiBaseUrl: z.string().optional(),
20
- });
21
- export const SlackConfigSchema = z.object({
22
- botToken: z.string().optional(),
23
- botUserId: z.string().optional(),
24
- signingSecret: z.string().optional(),
25
- clientId: z.string().optional(),
26
- clientSecret: z.string().optional(),
27
- encryptionKey: z.string().optional(),
28
- installationKeyPrefix: z.string().optional(),
29
- userName: z.string().optional(),
30
- });
31
- export const DiscordConfigSchema = z.object({
32
- botToken: z.string().optional(),
33
- applicationId: z.string().optional(),
34
- publicKey: z.string().optional(),
35
- mentionRoleIds: z.array(z.string()).optional(),
36
- userName: z.string().optional(),
37
- });
38
- export const WhatsAppConfigSchema = z.object({
39
- accessToken: z.string().optional(),
40
- phoneNumberId: z.string().optional(),
41
- appSecret: z.string().optional(),
42
- verifyToken: z.string().optional(),
43
- apiVersion: z.string().optional(),
44
- userName: z.string().optional(),
45
- });
46
- export const TeamsConfigSchema = z.object({
47
- appId: z.string().optional(),
48
- appPassword: z.string().optional(),
49
- appTenantId: z.string().optional(),
50
- appType: z.enum(["MultiTenant", "SingleTenant"]).optional(),
51
- userName: z.string().optional(),
52
- });
53
- /**
54
- * Maps each platform + field to the corresponding environment variable name.
55
- */
56
- export const PLATFORM_ENV_MAP = {
57
- telegram: {
58
- botToken: "TELEGRAM_BOT_TOKEN",
59
- mode: "TELEGRAM_MODE",
60
- secretToken: "TELEGRAM_SECRET_TOKEN",
61
- userName: "TELEGRAM_USERNAME",
62
- apiBaseUrl: "TELEGRAM_API_BASE_URL",
63
- },
64
- slack: {
65
- botToken: "SLACK_BOT_TOKEN",
66
- botUserId: "SLACK_BOT_USER_ID",
67
- signingSecret: "SLACK_SIGNING_SECRET",
68
- clientId: "SLACK_CLIENT_ID",
69
- clientSecret: "SLACK_CLIENT_SECRET",
70
- encryptionKey: "SLACK_ENCRYPTION_KEY",
71
- installationKeyPrefix: "SLACK_INSTALLATION_KEY_PREFIX",
72
- userName: "SLACK_USERNAME",
73
- },
74
- discord: {
75
- botToken: "DISCORD_BOT_TOKEN",
76
- applicationId: "DISCORD_APPLICATION_ID",
77
- publicKey: "DISCORD_PUBLIC_KEY",
78
- mentionRoleIds: "DISCORD_MENTION_ROLE_IDS",
79
- userName: "DISCORD_USERNAME",
80
- },
81
- whatsapp: {
82
- accessToken: "WHATSAPP_ACCESS_TOKEN",
83
- phoneNumberId: "WHATSAPP_PHONE_NUMBER_ID",
84
- appSecret: "WHATSAPP_APP_SECRET",
85
- verifyToken: "WHATSAPP_VERIFY_TOKEN",
86
- apiVersion: "WHATSAPP_API_VERSION",
87
- userName: "WHATSAPP_USERNAME",
88
- },
89
- teams: {
90
- appId: "TEAMS_APP_ID",
91
- appPassword: "TEAMS_APP_PASSWORD",
92
- appTenantId: "TEAMS_APP_TENANT_ID",
93
- appType: "TEAMS_APP_TYPE",
94
- userName: "TEAMS_USERNAME",
95
- },
96
- };
97
- //# sourceMappingURL=platform-schemas.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"platform-schemas.js","sourceRoot":"","sources":["../../src/config/platform-schemas.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- import type { LobuTomlConfig, McpServerEntry } from "./schema.js";
2
- export interface TransformResult {
3
- envVars: Record<string, string>;
4
- mcpConfig: Record<string, McpServerEntry> | null;
5
- }
6
- /**
7
- * Transform lobu.toml config into docker-compose environment variables
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.
12
- */
13
- export declare function transformConfig(config: LobuTomlConfig): TransformResult;
14
- //# sourceMappingURL=transformer.d.ts.map
@@ -1 +0,0 @@
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"}