@lobu/cli 4.3.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.
- package/README.md +11 -26
- package/dist/__tests__/chat.integration.test.js +19 -19
- package/dist/__tests__/chat.integration.test.js.map +1 -1
- package/dist/__tests__/dev.test.d.ts +2 -0
- package/dist/__tests__/dev.test.d.ts.map +1 -0
- package/dist/__tests__/dev.test.js +25 -0
- package/dist/__tests__/dev.test.js.map +1 -0
- package/dist/__tests__/init-memory.test.js +1 -14
- package/dist/__tests__/init-memory.test.js.map +1 -1
- package/dist/__tests__/token.test.d.ts +2 -0
- package/dist/__tests__/token.test.d.ts.map +1 -0
- package/dist/__tests__/token.test.js +52 -0
- package/dist/__tests__/token.test.js.map +1 -0
- package/dist/bundled-skills/lobu/SKILL.md +95 -7
- package/dist/commands/_lib/apply/__tests__/client.test.d.ts +2 -0
- package/dist/commands/_lib/apply/__tests__/client.test.d.ts.map +1 -0
- package/dist/commands/_lib/apply/__tests__/client.test.js +23 -0
- package/dist/commands/_lib/apply/__tests__/client.test.js.map +1 -0
- package/dist/commands/_lib/apply/__tests__/desired-state.test.d.ts +2 -0
- package/dist/commands/_lib/apply/__tests__/desired-state.test.d.ts.map +1 -0
- package/dist/commands/_lib/apply/__tests__/desired-state.test.js +140 -0
- package/dist/commands/_lib/apply/__tests__/desired-state.test.js.map +1 -0
- package/dist/commands/_lib/apply/__tests__/diff.test.d.ts +2 -0
- package/dist/commands/_lib/apply/__tests__/diff.test.d.ts.map +1 -0
- package/dist/commands/_lib/apply/__tests__/diff.test.js +378 -0
- package/dist/commands/_lib/apply/__tests__/diff.test.js.map +1 -0
- package/dist/commands/_lib/apply/apply-cmd.d.ts +12 -0
- package/dist/commands/_lib/apply/apply-cmd.d.ts.map +1 -0
- package/dist/commands/_lib/apply/apply-cmd.js +183 -0
- package/dist/commands/_lib/apply/apply-cmd.js.map +1 -0
- package/dist/commands/_lib/apply/client.d.ts +130 -0
- package/dist/commands/_lib/apply/client.d.ts.map +1 -0
- package/dist/commands/_lib/apply/client.js +243 -0
- package/dist/commands/_lib/apply/client.js.map +1 -0
- package/dist/commands/_lib/apply/desired-state.d.ts +71 -0
- package/dist/commands/_lib/apply/desired-state.d.ts.map +1 -0
- package/dist/commands/_lib/apply/desired-state.js +600 -0
- package/dist/commands/_lib/apply/desired-state.js.map +1 -0
- package/dist/commands/_lib/apply/diff.d.ts +76 -0
- package/dist/commands/_lib/apply/diff.d.ts.map +1 -0
- package/dist/commands/_lib/apply/diff.js +323 -0
- package/dist/commands/_lib/apply/diff.js.map +1 -0
- package/dist/commands/_lib/apply/prompt.d.ts +13 -0
- package/dist/commands/_lib/apply/prompt.d.ts.map +1 -0
- package/dist/commands/_lib/apply/prompt.js +19 -0
- package/dist/commands/_lib/apply/prompt.js.map +1 -0
- package/dist/commands/_lib/apply/render.d.ts +9 -0
- package/dist/commands/_lib/apply/render.d.ts.map +1 -0
- package/dist/commands/_lib/apply/render.js +92 -0
- package/dist/commands/_lib/apply/render.js.map +1 -0
- package/dist/commands/agent.d.ts +27 -0
- package/dist/commands/agent.d.ts.map +1 -0
- package/dist/commands/agent.js +111 -0
- package/dist/commands/agent.js.map +1 -0
- package/dist/commands/apply.d.ts +3 -0
- package/dist/commands/apply.d.ts.map +1 -0
- package/dist/commands/apply.js +5 -0
- package/dist/commands/apply.js.map +1 -0
- package/dist/commands/chat.d.ts.map +1 -1
- package/dist/commands/chat.js +5 -5
- package/dist/commands/chat.js.map +1 -1
- package/dist/commands/dev.d.ts +8 -3
- package/dist/commands/dev.d.ts.map +1 -1
- package/dist/commands/dev.js +128 -124
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/doctor.d.ts +6 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +75 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/eval.d.ts +1 -0
- package/dist/commands/eval.d.ts.map +1 -1
- package/dist/commands/eval.js +7 -4
- package/dist/commands/eval.js.map +1 -1
- package/dist/commands/init.d.ts +2 -9
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +35 -249
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/login.d.ts +11 -3
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +109 -251
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/logout.d.ts.map +1 -1
- package/dist/commands/logout.js +12 -11
- package/dist/commands/logout.js.map +1 -1
- package/dist/commands/memory/_lib/agent-detect.d.ts +9 -0
- package/dist/commands/memory/_lib/agent-detect.d.ts.map +1 -0
- package/dist/commands/memory/_lib/agent-detect.js +82 -0
- package/dist/commands/memory/_lib/agent-detect.js.map +1 -0
- package/dist/commands/memory/_lib/browser-auth-cmd.d.ts +19 -0
- package/dist/commands/memory/_lib/browser-auth-cmd.d.ts.map +1 -0
- package/dist/commands/memory/_lib/browser-auth-cmd.js +635 -0
- package/dist/commands/memory/_lib/browser-auth-cmd.js.map +1 -0
- package/dist/commands/memory/_lib/browser.d.ts +2 -0
- package/dist/commands/memory/_lib/browser.d.ts.map +1 -0
- package/dist/commands/memory/_lib/browser.js +26 -0
- package/dist/commands/memory/_lib/browser.js.map +1 -0
- package/dist/commands/memory/_lib/errors.d.ts +13 -0
- package/dist/commands/memory/_lib/errors.d.ts.map +1 -0
- package/dist/commands/memory/_lib/errors.js +23 -0
- package/dist/commands/memory/_lib/errors.js.map +1 -0
- package/dist/commands/memory/_lib/init-wizard.d.ts +12 -0
- package/dist/commands/memory/_lib/init-wizard.d.ts.map +1 -0
- package/dist/commands/memory/_lib/init-wizard.js +182 -0
- package/dist/commands/memory/_lib/init-wizard.js.map +1 -0
- package/dist/commands/memory/_lib/install-targets.d.ts +15 -0
- package/dist/commands/memory/_lib/install-targets.d.ts.map +1 -0
- package/dist/commands/memory/_lib/install-targets.js +209 -0
- package/dist/commands/memory/_lib/install-targets.js.map +1 -0
- package/dist/commands/memory/_lib/mcp.d.ts +20 -0
- package/dist/commands/memory/_lib/mcp.d.ts.map +1 -0
- package/dist/commands/memory/_lib/mcp.js +182 -0
- package/dist/commands/memory/_lib/mcp.js.map +1 -0
- package/dist/commands/memory/_lib/openclaw-auth.d.ts +41 -0
- package/dist/commands/memory/_lib/openclaw-auth.d.ts.map +1 -0
- package/dist/commands/memory/_lib/openclaw-auth.js +133 -0
- package/dist/commands/memory/_lib/openclaw-auth.js.map +1 -0
- package/dist/commands/memory/_lib/openclaw-auth.test.d.ts +2 -0
- package/dist/commands/memory/_lib/openclaw-auth.test.d.ts.map +1 -0
- package/dist/commands/memory/_lib/openclaw-auth.test.js +9 -0
- package/dist/commands/memory/_lib/openclaw-auth.test.js.map +1 -0
- package/dist/commands/memory/_lib/openclaw-cmd.d.ts +15 -0
- package/dist/commands/memory/_lib/openclaw-cmd.d.ts.map +1 -0
- package/dist/commands/memory/_lib/openclaw-cmd.js +208 -0
- package/dist/commands/memory/_lib/openclaw-cmd.js.map +1 -0
- package/dist/commands/memory/_lib/output.d.ts +5 -0
- package/dist/commands/memory/_lib/output.d.ts.map +1 -0
- package/dist/commands/memory/_lib/output.js +17 -0
- package/dist/commands/memory/_lib/output.js.map +1 -0
- package/dist/commands/memory/_lib/schema.d.ts +93 -0
- package/dist/commands/memory/_lib/schema.d.ts.map +1 -0
- package/dist/commands/memory/_lib/schema.js +192 -0
- package/dist/commands/memory/_lib/schema.js.map +1 -0
- package/dist/commands/memory/_lib/seed-cmd.d.ts +9 -0
- package/dist/commands/memory/_lib/seed-cmd.d.ts.map +1 -0
- package/dist/commands/memory/_lib/seed-cmd.js +516 -0
- package/dist/commands/memory/_lib/seed-cmd.js.map +1 -0
- package/dist/commands/memory/browser-auth.d.ts +3 -0
- package/dist/commands/memory/browser-auth.d.ts.map +1 -0
- package/dist/commands/memory/browser-auth.js +5 -0
- package/dist/commands/memory/browser-auth.js.map +1 -0
- package/dist/commands/memory/configure.d.ts +3 -0
- package/dist/commands/memory/configure.d.ts.map +1 -0
- package/dist/commands/memory/configure.js +5 -0
- package/dist/commands/memory/configure.js.map +1 -0
- package/dist/commands/memory/health.d.ts +3 -0
- package/dist/commands/memory/health.d.ts.map +1 -0
- package/dist/commands/memory/health.js +5 -0
- package/dist/commands/memory/health.js.map +1 -0
- package/dist/commands/memory/init.d.ts +8 -0
- package/dist/commands/memory/init.d.ts.map +1 -0
- package/dist/commands/memory/init.js +65 -0
- package/dist/commands/memory/init.js.map +1 -0
- package/dist/commands/memory/org.d.ts +7 -0
- package/dist/commands/memory/org.d.ts.map +1 -0
- package/dist/commands/memory/org.js +22 -0
- package/dist/commands/memory/org.js.map +1 -0
- package/dist/commands/memory/run.d.ts +8 -0
- package/dist/commands/memory/run.d.ts.map +1 -0
- package/dist/commands/memory/run.js +58 -0
- package/dist/commands/memory/run.js.map +1 -0
- package/dist/commands/memory/seed.d.ts +3 -0
- package/dist/commands/memory/seed.d.ts.map +1 -0
- package/dist/commands/memory/seed.js +5 -0
- package/dist/commands/memory/seed.js.map +1 -0
- package/dist/commands/org.d.ts +10 -0
- package/dist/commands/org.d.ts.map +1 -0
- package/dist/commands/org.js +34 -0
- package/dist/commands/org.js.map +1 -0
- package/dist/commands/{connections/platforms.d.ts → platforms/platform-prompts.d.ts} +5 -5
- package/dist/commands/platforms/platform-prompts.d.ts.map +1 -0
- package/dist/commands/{connections/platforms.js → platforms/platform-prompts.js} +24 -24
- package/dist/commands/platforms/platform-prompts.js.map +1 -0
- package/dist/commands/status.d.ts +4 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +15 -84
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/token.d.ts +17 -0
- package/dist/commands/token.d.ts.map +1 -0
- package/dist/commands/token.js +55 -0
- package/dist/commands/token.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +303 -88
- package/dist/index.js.map +1 -1
- package/dist/internal/__tests__/api-client.test.d.ts +2 -0
- package/dist/internal/__tests__/api-client.test.d.ts.map +1 -0
- package/dist/internal/__tests__/api-client.test.js +95 -0
- package/dist/internal/__tests__/api-client.test.js.map +1 -0
- package/dist/internal/__tests__/context.test.d.ts +2 -0
- package/dist/internal/__tests__/context.test.d.ts.map +1 -0
- package/dist/internal/__tests__/context.test.js +77 -0
- package/dist/internal/__tests__/context.test.js.map +1 -0
- package/dist/internal/api-client.d.ts +39 -0
- package/dist/internal/api-client.d.ts.map +1 -0
- package/dist/internal/api-client.js +217 -0
- package/dist/internal/api-client.js.map +1 -0
- package/dist/internal/context.d.ts +10 -1
- package/dist/internal/context.d.ts.map +1 -1
- package/dist/internal/context.js +109 -2
- package/dist/internal/context.js.map +1 -1
- package/dist/internal/credentials.d.ts +12 -2
- package/dist/internal/credentials.d.ts.map +1 -1
- package/dist/internal/credentials.js +47 -54
- package/dist/internal/credentials.js.map +1 -1
- package/dist/internal/gateway-url.d.ts +4 -4
- package/dist/internal/gateway-url.d.ts.map +1 -1
- package/dist/internal/gateway-url.js +6 -5
- package/dist/internal/gateway-url.js.map +1 -1
- package/dist/internal/index.d.ts +5 -3
- package/dist/internal/index.d.ts.map +1 -1
- package/dist/internal/index.js +3 -2
- package/dist/internal/index.js.map +1 -1
- package/dist/internal/local-env.d.ts +2 -0
- package/dist/internal/local-env.d.ts.map +1 -0
- package/dist/internal/local-env.js +32 -0
- package/dist/internal/local-env.js.map +1 -0
- package/dist/internal/oauth.d.ts +82 -0
- package/dist/internal/oauth.d.ts.map +1 -0
- package/dist/internal/oauth.js +234 -0
- package/dist/internal/oauth.js.map +1 -0
- package/dist/server.bundle.mjs +72219 -0
- package/dist/templates/.env.tmpl +7 -3
- package/dist/templates/README.md.tmpl +20 -53
- package/package.json +60 -6
- package/dist/__tests__/skills.test.d.ts +0 -2
- package/dist/__tests__/skills.test.d.ts.map +0 -1
- package/dist/__tests__/skills.test.js +0 -33
- package/dist/__tests__/skills.test.js.map +0 -1
- package/dist/commands/connections/add.d.ts +0 -2
- package/dist/commands/connections/add.d.ts.map +0 -1
- package/dist/commands/connections/add.js +0 -46
- package/dist/commands/connections/add.js.map +0 -1
- package/dist/commands/connections/list.d.ts +0 -2
- package/dist/commands/connections/list.d.ts.map +0 -1
- package/dist/commands/connections/list.js +0 -25
- package/dist/commands/connections/list.js.map +0 -1
- package/dist/commands/connections/platforms.d.ts.map +0 -1
- package/dist/commands/connections/platforms.js.map +0 -1
- package/dist/commands/providers/add.d.ts +0 -2
- package/dist/commands/providers/add.d.ts.map +0 -1
- package/dist/commands/providers/add.js +0 -50
- package/dist/commands/providers/add.js.map +0 -1
- package/dist/commands/providers/list.d.ts +0 -2
- package/dist/commands/providers/list.d.ts.map +0 -1
- package/dist/commands/providers/list.js +0 -22
- package/dist/commands/providers/list.js.map +0 -1
- package/dist/commands/secrets.d.ts +0 -8
- package/dist/commands/secrets.d.ts.map +0 -1
- package/dist/commands/secrets.js +0 -98
- package/dist/commands/secrets.js.map +0 -1
- package/dist/commands/skills/add.d.ts +0 -5
- package/dist/commands/skills/add.d.ts.map +0 -1
- package/dist/commands/skills/add.js +0 -27
- package/dist/commands/skills/add.js.map +0 -1
- package/dist/commands/skills/list.d.ts +0 -2
- package/dist/commands/skills/list.d.ts.map +0 -1
- package/dist/commands/skills/list.js +0 -19
- package/dist/commands/skills/list.js.map +0 -1
- package/dist/commands/skills/registry.d.ts +0 -19
- package/dist/commands/skills/registry.d.ts.map +0 -1
- package/dist/commands/skills/registry.js +0 -76
- package/dist/commands/skills/registry.js.map +0 -1
- package/dist/config/agent-helpers.d.ts +0 -38
- package/dist/config/agent-helpers.d.ts.map +0 -1
- package/dist/config/agent-helpers.js +0 -58
- package/dist/config/agent-helpers.js.map +0 -1
- package/dist/templates/Dockerfile.worker.tmpl +0 -29
package/README.md
CHANGED
|
@@ -1,30 +1,17 @@
|
|
|
1
1
|
# @lobu/cli
|
|
2
2
|
|
|
3
|
-
CLI tool for
|
|
3
|
+
CLI tool for running Lobu locally and managing Lobu agents through the same REST API as the web app.
|
|
4
4
|
|
|
5
5
|
## Quick Start
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
8
|
npx @lobu/cli@latest init my-bot
|
|
9
9
|
cd my-bot
|
|
10
|
-
|
|
10
|
+
# edit .env to set DATABASE_URL
|
|
11
|
+
npx @lobu/cli@latest run
|
|
11
12
|
```
|
|
12
13
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
Install the Lobu starter skill into a local `skills/` directory:
|
|
16
|
-
|
|
17
|
-
```bash
|
|
18
|
-
npx @lobu/cli@latest skills list
|
|
19
|
-
npx @lobu/cli@latest skills add lobu
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
Install the Owletto starter skill separately with the Owletto CLI:
|
|
23
|
-
|
|
24
|
-
```bash
|
|
25
|
-
npx owletto@latest skills add owletto
|
|
26
|
-
npx owletto@latest init
|
|
27
|
-
```
|
|
14
|
+
Lobu boots as a single Node process. Postgres is a user-provided external (managed instance or local — `brew services start postgresql`).
|
|
28
15
|
|
|
29
16
|
## Commands
|
|
30
17
|
|
|
@@ -32,16 +19,14 @@ npx owletto@latest init
|
|
|
32
19
|
|
|
33
20
|
Scaffold a new Lobu project with interactive prompts:
|
|
34
21
|
|
|
35
|
-
- **Project name**
|
|
22
|
+
- **Project name**
|
|
36
23
|
- **Gateway port** and optional **public URL** (for OAuth callbacks)
|
|
37
|
-
- **Admin password**
|
|
38
24
|
- **Worker network access** (isolated, allowlist, or unrestricted)
|
|
39
25
|
- **AI provider** selection from the bundled provider registry + API key
|
|
40
|
-
- **
|
|
41
|
-
- **
|
|
42
|
-
- **Memory** selection (filesystem, Lobu Cloud, Owletto Local, or custom Owletto URL)
|
|
26
|
+
- **Messaging platform** (Telegram, Slack, Discord, WhatsApp, Teams, Google Chat, or none)
|
|
27
|
+
- **Memory** selection (filesystem, Lobu Cloud, or custom Owletto URL)
|
|
43
28
|
|
|
44
|
-
**Generates:** `
|
|
29
|
+
**Generates:** `lobu.toml`, `.env` (with `DATABASE_URL` placeholder), `agents/<name>/` (`IDENTITY.md`, `SOUL.md`, `USER.md`, `skills/`, `evals/`), `skills/`, `AGENTS.md`, `TESTING.md`, `README.md`, `.gitignore`.
|
|
45
30
|
|
|
46
31
|
When Owletto-backed memory is enabled, `lobu init` also scaffolds the file-first memory layout:
|
|
47
32
|
|
|
@@ -49,11 +34,11 @@ When Owletto-backed memory is enabled, `lobu init` also scaffolds the file-first
|
|
|
49
34
|
- `models/`
|
|
50
35
|
- `data/`
|
|
51
36
|
|
|
52
|
-
For
|
|
37
|
+
For a custom Owletto deployment, `.env` keeps `MEMORY_URL` as the optional base MCP URL override.
|
|
53
38
|
|
|
54
|
-
|
|
39
|
+
### `lobu run`
|
|
55
40
|
|
|
56
|
-
|
|
41
|
+
Boot the embedded Lobu stack — gateway + workers + embeddings + Owletto memory backend in a single Node process. `lobu.toml` is not required; set `DATABASE_URL` in the environment or `.env`, then the command spawns the bundled `@lobu/owletto-backend/dist/server.bundle.mjs`. Ctrl+C stops the process and any spawned worker subprocesses cleanly.
|
|
57
42
|
|
|
58
43
|
## License
|
|
59
44
|
|
|
@@ -13,7 +13,7 @@ const originalStdoutWrite = process.stdout.write.bind(process.stdout);
|
|
|
13
13
|
const originalStderrWrite = process.stderr.write.bind(process.stderr);
|
|
14
14
|
const originalConsoleError = console.error;
|
|
15
15
|
const originalToken = process.env.LOBU_API_TOKEN;
|
|
16
|
-
const exampleDir = join(import.meta.dir, "../../../../examples/
|
|
16
|
+
const exampleDir = join(import.meta.dir, "../../../../examples/market");
|
|
17
17
|
function createSseResponse(events) {
|
|
18
18
|
const encoder = new TextEncoder();
|
|
19
19
|
const payload = events
|
|
@@ -66,7 +66,7 @@ afterEach(() => {
|
|
|
66
66
|
});
|
|
67
67
|
describe("chatCommand example integration", () => {
|
|
68
68
|
test("uses the hr example agent and completes approval plus login interaction flow", async () => {
|
|
69
|
-
process.env.LOBU_API_TOKEN = "
|
|
69
|
+
process.env.LOBU_API_TOKEN = "test-token";
|
|
70
70
|
const stdout = [];
|
|
71
71
|
const stderr = [];
|
|
72
72
|
const createBodies = [];
|
|
@@ -147,7 +147,7 @@ describe("chatCommand example integration", () => {
|
|
|
147
147
|
});
|
|
148
148
|
expect(createBodies).toEqual([
|
|
149
149
|
{
|
|
150
|
-
agentId: "
|
|
150
|
+
agentId: "vc-tracking",
|
|
151
151
|
forceNew: true,
|
|
152
152
|
},
|
|
153
153
|
]);
|
|
@@ -170,21 +170,21 @@ describe("chatCommand example integration", () => {
|
|
|
170
170
|
expect(createInterfaceMock).toHaveBeenCalledTimes(1);
|
|
171
171
|
});
|
|
172
172
|
test("prints structured file-uploaded events in platform mode", async () => {
|
|
173
|
-
process.env.LOBU_API_TOKEN = "
|
|
173
|
+
process.env.LOBU_API_TOKEN = "test-token";
|
|
174
174
|
const stdout = [];
|
|
175
175
|
const stderr = [];
|
|
176
176
|
captureTerminal({ stdout, stderr });
|
|
177
177
|
globalThis.fetch = mock(async (input, init) => {
|
|
178
178
|
const url = String(input);
|
|
179
|
-
if (url === "http://gateway.test/api/v1/agents/
|
|
179
|
+
if (url === "http://gateway.test/api/v1/agents/vc-tracking/messages" &&
|
|
180
180
|
init?.method === "POST") {
|
|
181
181
|
return Response.json({
|
|
182
182
|
success: true,
|
|
183
|
-
eventsUrl: "/api/v1/agents/
|
|
183
|
+
eventsUrl: "/api/v1/agents/vc-tracking/events?platform=telegram",
|
|
184
184
|
});
|
|
185
185
|
}
|
|
186
186
|
if (url ===
|
|
187
|
-
"http://gateway.test/api/v1/agents/
|
|
187
|
+
"http://gateway.test/api/v1/agents/vc-tracking/events?platform=telegram" &&
|
|
188
188
|
!init?.method) {
|
|
189
189
|
return createSseResponse([
|
|
190
190
|
{
|
|
@@ -219,21 +219,21 @@ describe("chatCommand example integration", () => {
|
|
|
219
219
|
expect(stderr.join("")).toContain('"tool":"UploadUserFile"');
|
|
220
220
|
});
|
|
221
221
|
test("warns when a sandbox link is streamed without a file-uploaded event", async () => {
|
|
222
|
-
process.env.LOBU_API_TOKEN = "
|
|
222
|
+
process.env.LOBU_API_TOKEN = "test-token";
|
|
223
223
|
const stdout = [];
|
|
224
224
|
const stderr = [];
|
|
225
225
|
captureTerminal({ stdout, stderr });
|
|
226
226
|
globalThis.fetch = mock(async (input, init) => {
|
|
227
227
|
const url = String(input);
|
|
228
|
-
if (url === "http://gateway.test/api/v1/agents/
|
|
228
|
+
if (url === "http://gateway.test/api/v1/agents/vc-tracking/messages" &&
|
|
229
229
|
init?.method === "POST") {
|
|
230
230
|
return Response.json({
|
|
231
231
|
success: true,
|
|
232
|
-
eventsUrl: "/api/v1/agents/
|
|
232
|
+
eventsUrl: "/api/v1/agents/vc-tracking/events?platform=telegram",
|
|
233
233
|
});
|
|
234
234
|
}
|
|
235
235
|
if (url ===
|
|
236
|
-
"http://gateway.test/api/v1/agents/
|
|
236
|
+
"http://gateway.test/api/v1/agents/vc-tracking/events?platform=telegram" &&
|
|
237
237
|
!init?.method) {
|
|
238
238
|
return createSseResponse([
|
|
239
239
|
{
|
|
@@ -255,21 +255,21 @@ describe("chatCommand example integration", () => {
|
|
|
255
255
|
expect(stderr.join("")).toContain("no file-uploaded event was emitted");
|
|
256
256
|
});
|
|
257
257
|
test("streams raw output chunks without corrupting fragmented markdown", async () => {
|
|
258
|
-
process.env.LOBU_API_TOKEN = "
|
|
258
|
+
process.env.LOBU_API_TOKEN = "test-token";
|
|
259
259
|
const stdout = [];
|
|
260
260
|
const stderr = [];
|
|
261
261
|
captureTerminal({ stdout, stderr });
|
|
262
262
|
globalThis.fetch = mock(async (input, init) => {
|
|
263
263
|
const url = String(input);
|
|
264
|
-
if (url === "http://gateway.test/api/v1/agents/
|
|
264
|
+
if (url === "http://gateway.test/api/v1/agents/vc-tracking/messages" &&
|
|
265
265
|
init?.method === "POST") {
|
|
266
266
|
return Response.json({
|
|
267
267
|
success: true,
|
|
268
|
-
eventsUrl: "/api/v1/agents/
|
|
268
|
+
eventsUrl: "/api/v1/agents/vc-tracking/events?platform=telegram",
|
|
269
269
|
});
|
|
270
270
|
}
|
|
271
271
|
if (url ===
|
|
272
|
-
"http://gateway.test/api/v1/agents/
|
|
272
|
+
"http://gateway.test/api/v1/agents/vc-tracking/events?platform=telegram" &&
|
|
273
273
|
!init?.method) {
|
|
274
274
|
return createSseResponse([
|
|
275
275
|
{ event: "output", data: { content: "**Hello" } },
|
|
@@ -287,24 +287,24 @@ describe("chatCommand example integration", () => {
|
|
|
287
287
|
expect(stderr.join("")).not.toContain("file-uploaded");
|
|
288
288
|
});
|
|
289
289
|
test("streams platform-mode output for image and voice requests from the example agent", async () => {
|
|
290
|
-
process.env.LOBU_API_TOKEN = "
|
|
290
|
+
process.env.LOBU_API_TOKEN = "test-token";
|
|
291
291
|
const stdout = [];
|
|
292
292
|
const stderr = [];
|
|
293
293
|
const messageBodies = [];
|
|
294
294
|
captureTerminal({ stdout, stderr });
|
|
295
295
|
globalThis.fetch = mock(async (input, init) => {
|
|
296
296
|
const url = String(input);
|
|
297
|
-
if (url === "http://gateway.test/api/v1/agents/
|
|
297
|
+
if (url === "http://gateway.test/api/v1/agents/vc-tracking/messages" &&
|
|
298
298
|
init?.method === "POST") {
|
|
299
299
|
const body = JSON.parse(String(init.body));
|
|
300
300
|
messageBodies.push(body);
|
|
301
301
|
return Response.json({
|
|
302
302
|
success: true,
|
|
303
|
-
eventsUrl: "/api/v1/agents/
|
|
303
|
+
eventsUrl: "/api/v1/agents/vc-tracking/events?platform=telegram",
|
|
304
304
|
});
|
|
305
305
|
}
|
|
306
306
|
if (url ===
|
|
307
|
-
"http://gateway.test/api/v1/agents/
|
|
307
|
+
"http://gateway.test/api/v1/agents/vc-tracking/events?platform=telegram" &&
|
|
308
308
|
!init?.method) {
|
|
309
309
|
return createSseResponse([
|
|
310
310
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.integration.test.js","sourceRoot":"","sources":["../../src/__tests__/chat.integration.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"chat.integration.test.js","sourceRoot":"","sources":["../../src/__tests__/chat.integration.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dev.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/dev.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { afterEach, describe, expect, test } from "bun:test";
|
|
2
|
+
import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from "node:fs";
|
|
3
|
+
import { tmpdir } from "node:os";
|
|
4
|
+
import { join } from "node:path";
|
|
5
|
+
import { resolveBackendBundle } from "../commands/dev";
|
|
6
|
+
describe("lobu run backend bundle resolution", () => {
|
|
7
|
+
const tempDirs = [];
|
|
8
|
+
afterEach(() => {
|
|
9
|
+
while (tempDirs.length > 0) {
|
|
10
|
+
const dir = tempDirs.pop();
|
|
11
|
+
if (dir)
|
|
12
|
+
rmSync(dir, { recursive: true, force: true });
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
test("finds the backend bundle copied to the CLI dist root", () => {
|
|
16
|
+
const root = mkdtempSync(join(tmpdir(), "lobu-cli-dist-"));
|
|
17
|
+
tempDirs.push(root);
|
|
18
|
+
const commandsDir = join(root, "dist", "commands");
|
|
19
|
+
mkdirSync(commandsDir, { recursive: true });
|
|
20
|
+
const bundlePath = join(root, "dist", "server.bundle.mjs");
|
|
21
|
+
writeFileSync(bundlePath, "// bundle placeholder\n");
|
|
22
|
+
expect(resolveBackendBundle(commandsDir)).toBe(bundlePath);
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
//# sourceMappingURL=dev.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dev.test.js","sourceRoot":"","sources":["../../src/__tests__/dev.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEvD,QAAQ,CAAC,oCAAoC,EAAE,GAAG,EAAE;IAClD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC;YAC3B,IAAI,GAAG;gBAAE,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAChE,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC;QAC3D,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEpB,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QACnD,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAE5C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,mBAAmB,CAAC,CAAC;QAC3D,aAAa,CAAC,UAAU,EAAE,yBAAyB,CAAC,CAAC;QAErD,MAAM,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -2,7 +2,7 @@ import { afterEach, beforeEach, describe, expect, test } from "bun:test";
|
|
|
2
2
|
import { existsSync, mkdirSync, mkdtempSync, readFileSync, rmSync, } from "node:fs";
|
|
3
3
|
import { tmpdir } from "node:os";
|
|
4
4
|
import { join } from "node:path";
|
|
5
|
-
import {
|
|
5
|
+
import { generateLobuToml } from "../commands/init";
|
|
6
6
|
describe("init memory scaffolding", () => {
|
|
7
7
|
let projectDir;
|
|
8
8
|
beforeEach(() => {
|
|
@@ -41,18 +41,5 @@ describe("init memory scaffolding", () => {
|
|
|
41
41
|
expect(content).toContain('org = "support"');
|
|
42
42
|
expect(content).toContain('name = "Support"');
|
|
43
43
|
});
|
|
44
|
-
test("generateDockerCompose keeps MEMORY_URL as an optional base override", () => {
|
|
45
|
-
const content = generateDockerCompose({
|
|
46
|
-
projectName: "support",
|
|
47
|
-
gatewayPort: "8080",
|
|
48
|
-
dockerfilePath: "./Dockerfile.worker",
|
|
49
|
-
deploymentMode: "embedded",
|
|
50
|
-
includeOwlettoLocal: true,
|
|
51
|
-
});
|
|
52
|
-
expect(content).toContain("Optional Lobu memory base MCP URL override");
|
|
53
|
-
expect(content).toContain("MEMORY_URL: ${MEMORY_URL:-}");
|
|
54
|
-
expect(content).toContain("owletto:");
|
|
55
|
-
expect(content).toContain("owletto-postgres:");
|
|
56
|
-
});
|
|
57
44
|
});
|
|
58
45
|
//# sourceMappingURL=init-memory.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init-memory.test.js","sourceRoot":"","sources":["../../src/__tests__/init-memory.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AACzE,OAAO,EACL,UAAU,EACV,SAAS,EACT,WAAW,EACX,YAAY,EACZ,MAAM,GACP,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"init-memory.test.js","sourceRoot":"","sources":["../../src/__tests__/init-memory.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AACzE,OAAO,EACL,UAAU,EACV,SAAS,EACT,WAAW,EACX,YAAY,EACZ,MAAM,GACP,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,IAAI,UAAkB,CAAC;IAEvB,UAAU,CAAC,GAAG,EAAE;QACd,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,mBAAmB,CAAC,CAAC,CAAC;QAC9D,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;QACnF,MAAM,gBAAgB,CAAC,UAAU,EAAE;YACjC,SAAS,EAAE,SAAS;YACpB,cAAc,EAAE,wBAAwB;YACxC,oBAAoB,EAAE,IAAI;YAC1B,UAAU,EAAE,SAAS;YACrB,WAAW,EAAE,SAAS;YACtB,kBAAkB,EAAE,oBAAoB;SACzC,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,OAAO,CAAC,CAAC;QAErE,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;QAC9C,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QAC7C,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;QAC9C,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,oCAAoC,CAAC,CAAC;QAChE,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;QACjD,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QAC7C,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAC9C,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,yEAAyE,EAAE,KAAK,IAAI,EAAE;QACzF,MAAM,gBAAgB,CAAC,UAAU,EAAE;YACjC,SAAS,EAAE,SAAS;YACpB,cAAc,EAAE,YAAY;YAC5B,oBAAoB,EAAE,IAAI;SAC3B,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,OAAO,CAAC,CAAC;QAErE,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QAC7C,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/token.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { afterEach, describe, expect, mock, spyOn, test } from "bun:test";
|
|
2
|
+
import { tokenCreateCommand } from "../commands/token";
|
|
3
|
+
import * as context from "../internal/context";
|
|
4
|
+
import * as credentials from "../internal/credentials";
|
|
5
|
+
describe("token create", () => {
|
|
6
|
+
afterEach(() => {
|
|
7
|
+
mock.restore();
|
|
8
|
+
delete process.env.LOBU_API_TOKEN;
|
|
9
|
+
});
|
|
10
|
+
test("creates an org-scoped PAT using the current OAuth login", async () => {
|
|
11
|
+
spyOn(context, "resolveContext").mockResolvedValue({
|
|
12
|
+
name: "prod",
|
|
13
|
+
apiUrl: "https://app.lobu.ai/api/v1",
|
|
14
|
+
source: "config",
|
|
15
|
+
});
|
|
16
|
+
spyOn(credentials, "getToken").mockResolvedValue("oauth-access-token");
|
|
17
|
+
const fetchMock = mock(async (url, init) => {
|
|
18
|
+
expect(url).toBe("https://app.lobu.ai/api/acme/tokens");
|
|
19
|
+
expect(init?.method).toBe("POST");
|
|
20
|
+
expect(init?.headers).toMatchObject({
|
|
21
|
+
Authorization: "Bearer oauth-access-token",
|
|
22
|
+
});
|
|
23
|
+
expect(JSON.parse(String(init?.body))).toEqual({
|
|
24
|
+
name: "prod-server",
|
|
25
|
+
scope: "mcp:read mcp:write",
|
|
26
|
+
});
|
|
27
|
+
return new Response(JSON.stringify({
|
|
28
|
+
token: {
|
|
29
|
+
id: 1,
|
|
30
|
+
token: "owl_pat_test",
|
|
31
|
+
token_prefix: "owl_pat_test",
|
|
32
|
+
name: "prod-server",
|
|
33
|
+
scope: "mcp:read mcp:write",
|
|
34
|
+
expires_at: null,
|
|
35
|
+
created_at: "2026-01-01T00:00:00.000Z",
|
|
36
|
+
},
|
|
37
|
+
}), { status: 201, headers: { "Content-Type": "application/json" } });
|
|
38
|
+
});
|
|
39
|
+
const originalFetch = globalThis.fetch;
|
|
40
|
+
globalThis.fetch = fetchMock;
|
|
41
|
+
const writeSpy = spyOn(process.stdout, "write").mockImplementation(() => true);
|
|
42
|
+
try {
|
|
43
|
+
await tokenCreateCommand({ org: "acme", name: "prod-server", raw: true });
|
|
44
|
+
}
|
|
45
|
+
finally {
|
|
46
|
+
globalThis.fetch = originalFetch;
|
|
47
|
+
}
|
|
48
|
+
expect(fetchMock).toHaveBeenCalledTimes(1);
|
|
49
|
+
expect(writeSpy).toHaveBeenCalledWith("owl_pat_test\n");
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
//# sourceMappingURL=token.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token.test.js","sourceRoot":"","sources":["../../src/__tests__/token.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAC;AAC/C,OAAO,KAAK,WAAW,MAAM,yBAAyB,CAAC;AAEvD,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;QACzE,KAAK,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC,iBAAiB,CAAC;YACjD,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,4BAA4B;YACpC,MAAM,EAAE,QAAQ;SACjB,CAAC,CAAC;QACH,KAAK,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,CAAC;QAEvE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,EAAE,GAAW,EAAE,IAAkB,EAAE,EAAE;YAC/D,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;YACxD,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAClC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,aAAa,CAAC;gBAClC,aAAa,EAAE,2BAA2B;aAC3C,CAAC,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;gBAC7C,IAAI,EAAE,aAAa;gBACnB,KAAK,EAAE,oBAAoB;aAC5B,CAAC,CAAC;YACH,OAAO,IAAI,QAAQ,CACjB,IAAI,CAAC,SAAS,CAAC;gBACb,KAAK,EAAE;oBACL,EAAE,EAAE,CAAC;oBACL,KAAK,EAAE,cAAc;oBACrB,YAAY,EAAE,cAAc;oBAC5B,IAAI,EAAE,aAAa;oBACnB,KAAK,EAAE,oBAAoB;oBAC3B,UAAU,EAAE,IAAI;oBAChB,UAAU,EAAE,0BAA0B;iBACvC;aACF,CAAC,EACF,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,EAAE,CACjE,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,MAAM,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC;QACvC,UAAU,CAAC,KAAK,GAAG,SAAoC,CAAC;QACxD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,kBAAkB,CAChE,GAAG,EAAE,CAAC,IAAI,CACX,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,kBAAkB,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5E,CAAC;gBAAS,CAAC;YACT,UAAU,CAAC,KAAK,GAAG,aAAa,CAAC;QACnC,CAAC;QAED,MAAM,CAAC,SAAS,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: lobu
|
|
3
|
-
description: Build, run, and maintain Lobu agent projects
|
|
3
|
+
description: Build, run, and maintain Lobu agent projects, including lobu.toml, prompt files, local skills, evals, providers, connections, and Lobu memory workflows.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Lobu
|
|
7
7
|
|
|
8
|
-
Use this skill when the user is working on a Lobu project or wants to scaffold one.
|
|
8
|
+
Use this skill when the user is working on a Lobu project or wants to scaffold, run, validate, evaluate, or connect one. Also use it when the user wants persistent Lobu memory, MCP client setup, OpenClaw memory plugin configuration, knowledge search/save workflows, watchers, or browser-authenticated connectors.
|
|
9
9
|
|
|
10
10
|
## Core Model
|
|
11
11
|
|
|
12
|
-
- **Lobu** is the agent framework, runtime, and
|
|
13
|
-
- **Owletto** is a separate memory and integrations product. Install the Owletto skill separately when the user needs direct Owletto memory workflows.
|
|
12
|
+
- **Lobu** is the agent framework, runtime, deployment layer, and memory surface.
|
|
14
13
|
- Keep framework configuration in `lobu.toml`.
|
|
15
14
|
- Keep agent identity and behavior in `IDENTITY.md`, `SOUL.md`, and `USER.md`.
|
|
16
15
|
- Keep reusable capability bundles in `skills/<name>/SKILL.md` or `agents/<agent>/skills/<name>/SKILL.md`.
|
|
16
|
+
- Use `lobu login` for CLI authentication. Do not use a separate memory login command.
|
|
17
|
+
- Use `lobu memory ...` for memory operations, MCP client wiring, seeding, direct tool calls, and browser-auth capture.
|
|
17
18
|
|
|
18
19
|
## Project Checklist
|
|
19
20
|
|
|
@@ -27,11 +28,98 @@ Use this skill when the user is working on a Lobu project or wants to scaffold o
|
|
|
27
28
|
|
|
28
29
|
```bash
|
|
29
30
|
npx @lobu/cli@latest init my-agent
|
|
30
|
-
npx @lobu/cli@latest run
|
|
31
|
+
npx @lobu/cli@latest run
|
|
31
32
|
npx @lobu/cli@latest validate
|
|
32
33
|
npx @lobu/cli@latest eval
|
|
34
|
+
npx @lobu/cli@latest login
|
|
33
35
|
```
|
|
34
36
|
|
|
35
|
-
|
|
37
|
+
<!-- owletto-memory-guidance:start -->
|
|
38
|
+
## Memory Defaults
|
|
36
39
|
|
|
37
|
-
|
|
40
|
+
Your long-term memory is powered by Owletto. Do NOT use local files (memory/, MEMORY.md) for memory.
|
|
41
|
+
- Owletto automatically recalls relevant memories when you receive a message.
|
|
42
|
+
- To save something, call save_knowledge with the content and an appropriate semantic_type.
|
|
43
|
+
- To search, call search_knowledge. Results include view_url links to the web interface.
|
|
44
|
+
- NEVER construct Owletto URLs yourself. When the user asks for a link, call search_knowledge to get the correct view_url.
|
|
45
|
+
- When the user says "remember this", save it to Owletto immediately.
|
|
46
|
+
<!-- owletto-memory-guidance:end -->
|
|
47
|
+
|
|
48
|
+
## Lobu Memory
|
|
49
|
+
|
|
50
|
+
Configure project-scoped memory in `lobu.toml`:
|
|
51
|
+
|
|
52
|
+
```toml
|
|
53
|
+
[memory.owletto]
|
|
54
|
+
enabled = true
|
|
55
|
+
org = "my-org"
|
|
56
|
+
name = "My workspace"
|
|
57
|
+
models = "./models"
|
|
58
|
+
data = "./data"
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Then seed or operate the memory workspace with:
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
lobu login
|
|
65
|
+
lobu memory org set <org-slug>
|
|
66
|
+
lobu memory health --org <org-slug>
|
|
67
|
+
lobu memory seed --org <org-slug>
|
|
68
|
+
lobu memory run search_knowledge '{"query":"Acme"}' --org <org-slug>
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Use `search_knowledge` first when the user asks about a specific entity or workspace memory. Use `save_knowledge` to persist durable memory. To update existing knowledge, search first, then save with `supersedes_event_id` so the old row is tombstoned rather than deleted.
|
|
72
|
+
|
|
73
|
+
## MCP Client Setup
|
|
74
|
+
|
|
75
|
+
Use the actual MCP URL for the user's runtime. Never hardcode a hosted URL unless the user explicitly asks for that instance.
|
|
76
|
+
|
|
77
|
+
Common setup commands:
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
# Claude Code
|
|
81
|
+
claude mcp add --transport http lobu <mcp-url>
|
|
82
|
+
|
|
83
|
+
# Codex
|
|
84
|
+
codex mcp add lobu --url <mcp-url>
|
|
85
|
+
|
|
86
|
+
# Gemini CLI
|
|
87
|
+
gemini mcp add --transport http lobu <mcp-url>
|
|
88
|
+
|
|
89
|
+
# Interactive client wiring wizard
|
|
90
|
+
lobu memory init --url <mcp-url>
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
For ChatGPT, Claude Desktop, Cursor, and other browser-managed clients, paste the MCP URL into the client's MCP/connector settings and complete OAuth in the browser.
|
|
94
|
+
|
|
95
|
+
## OpenClaw Memory Plugin
|
|
96
|
+
|
|
97
|
+
For OpenClaw, install the plugin and let the Lobu CLI write plugin config:
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
openclaw plugins install owletto-openclaw-plugin
|
|
101
|
+
lobu login
|
|
102
|
+
lobu memory configure --url <mcp-url> --org <org-slug>
|
|
103
|
+
lobu memory health --url <mcp-url> --org <org-slug>
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
`lobu memory configure` writes a token command that uses `lobu token --raw`, so OpenClaw reuses the top-level Lobu login.
|
|
107
|
+
|
|
108
|
+
## Browser-Authenticated Connectors
|
|
109
|
+
|
|
110
|
+
For connectors that need cookies from a local browser session:
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
lobu memory browser-auth --connector <key> --auth-profile-slug <slug>
|
|
114
|
+
lobu memory browser-auth --connector <key> --auth-profile-slug <slug> --check
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
Use `--chrome-profile`, `--launch-cdp`, and `--dedicated-profile` only when the user needs a specific browser profile or dedicated remote-debugging profile.
|
|
118
|
+
|
|
119
|
+
## Tool Discipline
|
|
120
|
+
|
|
121
|
+
- Search before create to avoid duplicate entities.
|
|
122
|
+
- Never fabricate Lobu memory links. If a tool returns a view URL, use that URL.
|
|
123
|
+
- Use canonical MCP tool names only.
|
|
124
|
+
- Prefer read-only operations before mutations when validating connectivity.
|
|
125
|
+
- `events` is append-only: never delete rows directly; use tombstone/supersede flows.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.test.d.ts","sourceRoot":"","sources":["../../../../../src/commands/_lib/apply/__tests__/client.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { describe, expect, test } from "bun:test";
|
|
2
|
+
import { ApplyClient } from "../client.js";
|
|
3
|
+
describe("ApplyClient", () => {
|
|
4
|
+
test("patchAgentMetadata uses PATCH /agents/:agentId", async () => {
|
|
5
|
+
const calls = [];
|
|
6
|
+
const client = new ApplyClient({ apiBaseUrl: "https://example.test", orgSlug: "acme", token: "tok" }, (async (url, init) => {
|
|
7
|
+
calls.push({ url: String(url), init });
|
|
8
|
+
return new Response(JSON.stringify({ success: true }), { status: 200 });
|
|
9
|
+
}));
|
|
10
|
+
await client.patchAgentMetadata("triage", {
|
|
11
|
+
name: "Triage",
|
|
12
|
+
description: "Updated",
|
|
13
|
+
});
|
|
14
|
+
expect(calls).toHaveLength(1);
|
|
15
|
+
expect(calls[0]?.url).toBe("https://example.test/api/acme/agents/triage");
|
|
16
|
+
expect(calls[0]?.init?.method).toBe("PATCH");
|
|
17
|
+
expect(JSON.parse(String(calls[0]?.init?.body))).toEqual({
|
|
18
|
+
name: "Triage",
|
|
19
|
+
description: "Updated",
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
//# sourceMappingURL=client.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.test.js","sourceRoot":"","sources":["../../../../../src/commands/_lib/apply/__tests__/client.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,IAAI,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAChE,MAAM,KAAK,GAA+C,EAAE,CAAC;QAC7D,MAAM,MAAM,GAAG,IAAI,WAAW,CAC5B,EAAE,UAAU,EAAE,sBAAsB,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,EACrE,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YACnB,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;YACvC,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QAC1E,CAAC,CAAiB,CACnB,CAAC;QAEF,MAAM,MAAM,CAAC,kBAAkB,CAAC,QAAQ,EAAE;YACxC,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,SAAS;SACvB,CAAC,CAAC;QAEH,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;QAC1E,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACvD,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,SAAS;SACvB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"desired-state.test.d.ts","sourceRoot":"","sources":["../../../../../src/commands/_lib/apply/__tests__/desired-state.test.ts"],"names":[],"mappings":""}
|