@lobu/cli 6.1.1 → 7.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/dist/commands/_lib/apply/apply-cmd.d.ts +36 -0
- package/dist/commands/_lib/apply/apply-cmd.d.ts.map +1 -1
- package/dist/commands/_lib/apply/apply-cmd.js +548 -40
- package/dist/commands/_lib/apply/apply-cmd.js.map +1 -1
- package/dist/commands/_lib/apply/client.d.ts +179 -0
- package/dist/commands/_lib/apply/client.d.ts.map +1 -1
- package/dist/commands/_lib/apply/client.js +308 -28
- package/dist/commands/_lib/apply/client.js.map +1 -1
- package/dist/commands/_lib/apply/desired-state.d.ts +134 -3
- package/dist/commands/_lib/apply/desired-state.d.ts.map +1 -1
- package/dist/commands/_lib/apply/desired-state.js +700 -86
- package/dist/commands/_lib/apply/desired-state.js.map +1 -1
- package/dist/commands/_lib/apply/diff.d.ts +61 -3
- package/dist/commands/_lib/apply/diff.d.ts.map +1 -1
- package/dist/commands/_lib/apply/diff.js +382 -92
- package/dist/commands/_lib/apply/diff.js.map +1 -1
- package/dist/commands/_lib/apply/prompt.d.ts +6 -0
- package/dist/commands/_lib/apply/prompt.d.ts.map +1 -1
- package/dist/commands/_lib/apply/prompt.js +16 -0
- package/dist/commands/_lib/apply/prompt.js.map +1 -1
- package/dist/commands/_lib/apply/render.d.ts +9 -0
- package/dist/commands/_lib/apply/render.d.ts.map +1 -1
- package/dist/commands/_lib/apply/render.js +80 -3
- package/dist/commands/_lib/apply/render.js.map +1 -1
- package/dist/commands/chat.d.ts.map +1 -1
- package/dist/commands/chat.js +9 -2
- package/dist/commands/chat.js.map +1 -1
- package/dist/commands/dev.d.ts +8 -0
- package/dist/commands/dev.d.ts.map +1 -1
- package/dist/commands/dev.js +118 -5
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/eval.d.ts.map +1 -1
- package/dist/commands/eval.js +16 -5
- package/dist/commands/eval.js.map +1 -1
- package/dist/commands/init.d.ts +2 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +24 -0
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/memory/_lib/schema.d.ts +28 -1
- package/dist/commands/memory/_lib/schema.d.ts.map +1 -1
- package/dist/commands/memory/_lib/schema.js +120 -4
- package/dist/commands/memory/_lib/schema.js.map +1 -1
- package/dist/commands/memory/_lib/seed-cmd.d.ts.map +1 -1
- package/dist/commands/memory/_lib/seed-cmd.js +41 -18
- package/dist/commands/memory/_lib/seed-cmd.js.map +1 -1
- package/dist/commands/org.d.ts +4 -0
- package/dist/commands/org.d.ts.map +1 -1
- package/dist/commands/org.js +10 -0
- package/dist/commands/org.js.map +1 -1
- package/dist/commands/token.d.ts +9 -0
- package/dist/commands/token.d.ts.map +1 -1
- package/dist/commands/token.js +54 -0
- package/dist/commands/token.js.map +1 -1
- package/dist/connectors/README.md +2 -2
- package/dist/connectors/apple_health.ts +138 -0
- package/dist/connectors/apple_screen_time.ts +82 -0
- package/dist/connectors/browser-scraper-utils.ts +35 -3
- package/dist/connectors/capterra.ts +5 -1
- package/dist/connectors/g2.ts +5 -1
- package/dist/connectors/github.ts +15 -38
- package/dist/connectors/glassdoor.ts +5 -1
- package/dist/connectors/google_calendar.ts +14 -4
- package/dist/connectors/google_gmail.ts +6 -3
- package/dist/connectors/google_play.ts +10 -3
- package/dist/connectors/index.ts +5 -0
- package/dist/connectors/linkedin.ts +32 -9
- package/dist/connectors/local_directory.ts +91 -0
- package/dist/connectors/revolut.ts +572 -0
- package/dist/connectors/trustpilot.ts +5 -1
- package/dist/connectors/website.ts +1 -1
- package/dist/connectors/whatsapp.ts +9 -1
- package/dist/connectors/whatsapp_local.ts +125 -0
- package/dist/connectors/x.ts +17 -7
- package/dist/db/migrations/20260510220000_connector_required_capability.sql +47 -0
- package/dist/db/migrations/20260512000000_device_worker_connection_binding.sql +113 -0
- package/dist/db/migrations/20260512131703_connections_slug.sql +131 -0
- package/dist/db/migrations/20260513000000_chat_user_identities.sql +24 -0
- package/dist/db/migrations/20260513120000_auth_profiles_device_binding.sql +50 -0
- package/dist/db/migrations/20260513150000_auth_profiles_cdp_url.sql +43 -0
- package/dist/db/migrations/20260513200000_notifications_as_events.sql +86 -0
- package/dist/db/migrations/20260514000000_scheduled_jobs.sql +97 -0
- package/dist/db/migrations/20260514120000_auth_profiles_connector_key_nullable.sql +42 -0
- package/dist/eval/types.d.ts +2 -0
- package/dist/eval/types.d.ts.map +1 -1
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +68 -114
- package/dist/index.js.map +1 -1
- package/dist/internal/gateway-url.d.ts +14 -0
- package/dist/internal/gateway-url.d.ts.map +1 -1
- package/dist/internal/gateway-url.js +19 -0
- package/dist/internal/gateway-url.js.map +1 -1
- package/dist/internal/index.d.ts +1 -1
- package/dist/internal/index.d.ts.map +1 -1
- package/dist/internal/index.js +1 -1
- package/dist/internal/index.js.map +1 -1
- package/dist/server.bundle.mjs +32494 -30475
- package/dist/start-local.bundle.mjs +10840 -7912
- package/dist/templates/TESTING.md.tmpl +9 -9
- package/package.json +6 -6
|
@@ -4,6 +4,19 @@ import { ApiError } from "../../memory/_lib/errors.js";
|
|
|
4
4
|
function isRecord(value) {
|
|
5
5
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
6
6
|
}
|
|
7
|
+
/**
|
|
8
|
+
* Read the first array-valued key from a response body. Endpoints that may
|
|
9
|
+
* return either a snake_case or camelCase collection key go through this so the
|
|
10
|
+
* `body.snake ?? body.camel ?? []` triple isn't repeated at every call site.
|
|
11
|
+
*/
|
|
12
|
+
function pickArray(body, ...keys) {
|
|
13
|
+
for (const key of keys) {
|
|
14
|
+
const value = body[key];
|
|
15
|
+
if (Array.isArray(value))
|
|
16
|
+
return value;
|
|
17
|
+
}
|
|
18
|
+
return [];
|
|
19
|
+
}
|
|
7
20
|
function extractApiError(parsed, status, statusText) {
|
|
8
21
|
if (typeof parsed.error === "string") {
|
|
9
22
|
return { message: parsed.error };
|
|
@@ -70,6 +83,33 @@ export class ApplyClient {
|
|
|
70
83
|
}
|
|
71
84
|
return { status: res.status, body: parsed };
|
|
72
85
|
}
|
|
86
|
+
// ── Organization ──────────────────────────────────────────────────────────
|
|
87
|
+
/**
|
|
88
|
+
* Orgs the authenticated user belongs to, read from the OAuth userinfo
|
|
89
|
+
* endpoint — the same source `lobu org list` uses. Used to check whether the
|
|
90
|
+
* `[memory].org` slug already resolves to one of the operator's orgs. Does
|
|
91
|
+
* not depend on `this.orgSlug`. (`lobu apply` can't create an org headlessly
|
|
92
|
+
* — that needs a logged-in browser session — so there is no `createOrg`.)
|
|
93
|
+
*/
|
|
94
|
+
async listOrgs() {
|
|
95
|
+
const { body } = await this.request("GET", `/oauth/userinfo`);
|
|
96
|
+
const orgs = Array.isArray(body.organizations) ? body.organizations : [];
|
|
97
|
+
const out = [];
|
|
98
|
+
for (const entry of orgs) {
|
|
99
|
+
if (!isRecord(entry))
|
|
100
|
+
continue;
|
|
101
|
+
const id = typeof entry.id === "string" ? entry.id : "";
|
|
102
|
+
const slug = typeof entry.slug === "string" ? entry.slug : "";
|
|
103
|
+
if (!id || !slug)
|
|
104
|
+
continue;
|
|
105
|
+
out.push({
|
|
106
|
+
id,
|
|
107
|
+
slug,
|
|
108
|
+
...(typeof entry.name === "string" ? { name: entry.name } : {}),
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
return out;
|
|
112
|
+
}
|
|
73
113
|
// ── Agents ────────────────────────────────────────────────────────────────
|
|
74
114
|
async listAgents() {
|
|
75
115
|
const { body } = await this.request("GET", `/api/${this.orgSlug}/agents`);
|
|
@@ -125,61 +165,67 @@ export class ApplyClient {
|
|
|
125
165
|
const { body } = await this.request("PUT", `/api/${this.orgSlug}/agents/${encodeURIComponent(agentId)}/platforms/by-stable-id/${encodeURIComponent(stableId)}`, payload);
|
|
126
166
|
return body;
|
|
127
167
|
}
|
|
168
|
+
/**
|
|
169
|
+
* Reconcile a platform's declarative channel bindings.
|
|
170
|
+
*
|
|
171
|
+
* Server contract:
|
|
172
|
+
* POST /:agentId/platforms/:platformId/sync-channels
|
|
173
|
+
* body: { channels: string[] } // each "<teamId>/<channelId>"
|
|
174
|
+
* response: { bound: string[], removed: string[] }
|
|
175
|
+
*/
|
|
176
|
+
async syncPlatformChannels(agentId, platformId, channels) {
|
|
177
|
+
const { body } = await this.request("POST", `/api/${this.orgSlug}/agents/${encodeURIComponent(agentId)}/platforms/${encodeURIComponent(platformId)}/sync-channels`, { channels });
|
|
178
|
+
return { bound: body.bound ?? [], removed: body.removed ?? [] };
|
|
179
|
+
}
|
|
128
180
|
// ── Memory schema ─────────────────────────────────────────────────────────
|
|
129
181
|
async listEntityTypes() {
|
|
130
182
|
const { body } = await this.request("POST", `/api/${this.orgSlug}/manage_entity_schema`, {
|
|
131
183
|
schema_type: "entity_type",
|
|
132
184
|
action: "list",
|
|
133
185
|
});
|
|
134
|
-
return body
|
|
186
|
+
return pickArray(body, "entity_types", "entityTypes");
|
|
135
187
|
}
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
188
|
+
/**
|
|
189
|
+
* The `manage_entity_schema` admin tool exposes separate `create` / `update`
|
|
190
|
+
* actions and surfaces duplicates as a structured error code rather than a
|
|
191
|
+
* 4xx. Probe with `create`; on a duplicate-named-resource code, retry with
|
|
192
|
+
* `update`.
|
|
193
|
+
*/
|
|
194
|
+
async upsertSchemaResource(schemaType, payload) {
|
|
195
|
+
const url = `/api/${this.orgSlug}/manage_entity_schema`;
|
|
140
196
|
try {
|
|
141
|
-
await this.request("POST",
|
|
142
|
-
schema_type:
|
|
197
|
+
await this.request("POST", url, {
|
|
198
|
+
schema_type: schemaType,
|
|
143
199
|
action: "create",
|
|
144
|
-
...
|
|
200
|
+
...payload,
|
|
145
201
|
});
|
|
146
202
|
return { created: true };
|
|
147
203
|
}
|
|
148
204
|
catch (err) {
|
|
149
205
|
if (err instanceof ApiError && isDuplicateError(err)) {
|
|
150
|
-
await this.request("POST",
|
|
206
|
+
await this.request("POST", url, {
|
|
207
|
+
schema_type: schemaType,
|
|
208
|
+
action: "update",
|
|
209
|
+
...payload,
|
|
210
|
+
});
|
|
151
211
|
return { updated: true };
|
|
152
212
|
}
|
|
153
213
|
throw err;
|
|
154
214
|
}
|
|
155
215
|
}
|
|
216
|
+
async upsertEntityType(entity) {
|
|
217
|
+
return this.upsertSchemaResource("entity_type", entity);
|
|
218
|
+
}
|
|
156
219
|
async listRelationshipTypes() {
|
|
157
220
|
const { body } = await this.request("POST", `/api/${this.orgSlug}/manage_entity_schema`, {
|
|
158
221
|
schema_type: "relationship_type",
|
|
159
222
|
action: "list",
|
|
160
223
|
});
|
|
161
|
-
return body
|
|
224
|
+
return pickArray(body, "relationship_types", "relationshipTypes");
|
|
162
225
|
}
|
|
163
226
|
async upsertRelationshipType(rel) {
|
|
164
227
|
const { rules, ...payload } = rel;
|
|
165
|
-
|
|
166
|
-
try {
|
|
167
|
-
await this.request("POST", `/api/${this.orgSlug}/manage_entity_schema`, {
|
|
168
|
-
schema_type: "relationship_type",
|
|
169
|
-
action: "create",
|
|
170
|
-
...payload,
|
|
171
|
-
});
|
|
172
|
-
result = { created: true };
|
|
173
|
-
}
|
|
174
|
-
catch (err) {
|
|
175
|
-
if (err instanceof ApiError && isDuplicateError(err)) {
|
|
176
|
-
await this.request("POST", `/api/${this.orgSlug}/manage_entity_schema`, { schema_type: "relationship_type", action: "update", ...payload });
|
|
177
|
-
result = { updated: true };
|
|
178
|
-
}
|
|
179
|
-
else {
|
|
180
|
-
throw err;
|
|
181
|
-
}
|
|
182
|
-
}
|
|
228
|
+
const result = await this.upsertSchemaResource("relationship_type", payload);
|
|
183
229
|
// Register rules separately via add_rule. Backend treats add_rule as
|
|
184
230
|
// idempotent; duplicate-add surfaces a structured error we can swallow.
|
|
185
231
|
if (rules?.length) {
|
|
@@ -202,6 +248,240 @@ export class ApplyClient {
|
|
|
202
248
|
}
|
|
203
249
|
return result;
|
|
204
250
|
}
|
|
251
|
+
// ── Watchers ──────────────────────────────────────────────────────────────
|
|
252
|
+
async listWatchers() {
|
|
253
|
+
const { body } = await this.request("GET", `/api/${this.orgSlug}/watchers`);
|
|
254
|
+
return body.watchers ?? [];
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* Create a watcher owned by `agentId`. `extraction_schema` is sent as a JSON
|
|
258
|
+
* object — the `manage_watchers` tool accepts `Type.Any()` there and
|
|
259
|
+
* normalizes string-or-object internally. Duplicate-slug surfaces as a
|
|
260
|
+
* structured error the caller swallows for idempotency.
|
|
261
|
+
*/
|
|
262
|
+
async createWatcher(payload) {
|
|
263
|
+
await this.request("POST", `/api/${this.orgSlug}/manage_watchers`, {
|
|
264
|
+
action: "create",
|
|
265
|
+
slug: payload.slug,
|
|
266
|
+
agent_id: payload.agentId,
|
|
267
|
+
...(payload.name ? { name: payload.name } : {}),
|
|
268
|
+
...(payload.description ? { description: payload.description } : {}),
|
|
269
|
+
prompt: payload.prompt,
|
|
270
|
+
extraction_schema: payload.extraction_schema,
|
|
271
|
+
...(payload.schedule ? { schedule: payload.schedule } : {}),
|
|
272
|
+
...(payload.sources?.length ? { sources: payload.sources } : {}),
|
|
273
|
+
});
|
|
274
|
+
}
|
|
275
|
+
// ── Connector definitions ─────────────────────────────────────────────────
|
|
276
|
+
async connectionsTool(body) {
|
|
277
|
+
const { body: parsed } = await this.request("POST", `/api/${this.orgSlug}/manage_connections`, body);
|
|
278
|
+
return parsed;
|
|
279
|
+
}
|
|
280
|
+
async feedsTool(body) {
|
|
281
|
+
const { body: parsed } = await this.request("POST", `/api/${this.orgSlug}/manage_feeds`, body);
|
|
282
|
+
return parsed;
|
|
283
|
+
}
|
|
284
|
+
async authProfilesTool(body) {
|
|
285
|
+
const { body: parsed } = await this.request("POST", `/api/${this.orgSlug}/manage_auth_profiles`, body);
|
|
286
|
+
return parsed;
|
|
287
|
+
}
|
|
288
|
+
/** Installed org connectors + (with `includeInstallable`) the bundled catalog. */
|
|
289
|
+
async listConnectorDefinitions(includeInstallable = true) {
|
|
290
|
+
const body = await this.connectionsTool({
|
|
291
|
+
action: "list_connector_definitions",
|
|
292
|
+
include_installable: includeInstallable,
|
|
293
|
+
});
|
|
294
|
+
return body.connector_definitions ?? [];
|
|
295
|
+
}
|
|
296
|
+
/**
|
|
297
|
+
* Idempotent connector install. The CLI passes raw TypeScript source
|
|
298
|
+
* (`compiled: false`) or a `source_url`; the server compiles + extracts
|
|
299
|
+
* metadata and returns the resolved `connectorKey` plus `updated` (false
|
|
300
|
+
* when the installed code is byte-identical).
|
|
301
|
+
*/
|
|
302
|
+
async installConnector(payload) {
|
|
303
|
+
const body = await this.connectionsTool({
|
|
304
|
+
action: "install_connector",
|
|
305
|
+
...(payload.sourceCode !== undefined
|
|
306
|
+
? { source_code: payload.sourceCode, compiled: false }
|
|
307
|
+
: {}),
|
|
308
|
+
...(payload.sourceUrl ? { source_url: payload.sourceUrl } : {}),
|
|
309
|
+
...(payload.sourceUri ? { source_uri: payload.sourceUri } : {}),
|
|
310
|
+
});
|
|
311
|
+
return {
|
|
312
|
+
connectorKey: body.connector_key ?? "",
|
|
313
|
+
updated: body.updated ?? false,
|
|
314
|
+
...(body.version ? { version: body.version } : {}),
|
|
315
|
+
};
|
|
316
|
+
}
|
|
317
|
+
async uninstallConnector(connectorKey) {
|
|
318
|
+
await this.connectionsTool({
|
|
319
|
+
action: "uninstall_connector",
|
|
320
|
+
connector_key: connectorKey,
|
|
321
|
+
});
|
|
322
|
+
}
|
|
323
|
+
// ── Auth profiles ─────────────────────────────────────────────────────────
|
|
324
|
+
async listAuthProfiles() {
|
|
325
|
+
const body = await this.authProfilesTool({ action: "list_auth_profiles" });
|
|
326
|
+
return body.auth_profiles ?? [];
|
|
327
|
+
}
|
|
328
|
+
async getAuthProfileBySlug(slug) {
|
|
329
|
+
try {
|
|
330
|
+
const body = await this.authProfilesTool({ action: "get_auth_profile", auth_profile_slug: slug });
|
|
331
|
+
return body.auth_profile ?? null;
|
|
332
|
+
}
|
|
333
|
+
catch (err) {
|
|
334
|
+
if (err instanceof ApiError && err.status === 404)
|
|
335
|
+
return null;
|
|
336
|
+
throw err;
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
async createAuthProfile(payload) {
|
|
340
|
+
const body = await this.authProfilesTool({
|
|
341
|
+
action: "create_auth_profile",
|
|
342
|
+
connector_key: payload.connector,
|
|
343
|
+
profile_kind: payload.kind,
|
|
344
|
+
display_name: payload.name ?? payload.slug,
|
|
345
|
+
slug: payload.slug,
|
|
346
|
+
...(payload.credentials && Object.keys(payload.credentials).length > 0
|
|
347
|
+
? { credentials: payload.credentials }
|
|
348
|
+
: {}),
|
|
349
|
+
});
|
|
350
|
+
return {
|
|
351
|
+
created: true,
|
|
352
|
+
updated: false,
|
|
353
|
+
...(body.auth_profile?.status
|
|
354
|
+
? { status: body.auth_profile.status }
|
|
355
|
+
: {}),
|
|
356
|
+
...(body.connect_url ? { connectUrl: body.connect_url } : {}),
|
|
357
|
+
};
|
|
358
|
+
}
|
|
359
|
+
async updateAuthProfile(payload) {
|
|
360
|
+
const body = await this.authProfilesTool({
|
|
361
|
+
action: "update_auth_profile",
|
|
362
|
+
auth_profile_slug: payload.slug,
|
|
363
|
+
...(payload.name ? { display_name: payload.name } : {}),
|
|
364
|
+
...(payload.credentials && Object.keys(payload.credentials).length > 0
|
|
365
|
+
? { credentials: payload.credentials }
|
|
366
|
+
: {}),
|
|
367
|
+
});
|
|
368
|
+
return {
|
|
369
|
+
created: false,
|
|
370
|
+
updated: true,
|
|
371
|
+
...(body.auth_profile?.status
|
|
372
|
+
? { status: body.auth_profile.status }
|
|
373
|
+
: {}),
|
|
374
|
+
...(body.connect_url ? { connectUrl: body.connect_url } : {}),
|
|
375
|
+
};
|
|
376
|
+
}
|
|
377
|
+
/** Re-issue a connect token for an existing interactive-auth profile. */
|
|
378
|
+
async reconnectAuthProfile(slug) {
|
|
379
|
+
const body = await this.authProfilesTool({
|
|
380
|
+
action: "update_auth_profile",
|
|
381
|
+
auth_profile_slug: slug,
|
|
382
|
+
reconnect: true,
|
|
383
|
+
});
|
|
384
|
+
return body.connect_url;
|
|
385
|
+
}
|
|
386
|
+
async deleteAuthProfile(slug) {
|
|
387
|
+
await this.authProfilesTool({
|
|
388
|
+
action: "delete_auth_profile",
|
|
389
|
+
auth_profile_slug: slug,
|
|
390
|
+
});
|
|
391
|
+
}
|
|
392
|
+
// ── Connections ───────────────────────────────────────────────────────────
|
|
393
|
+
async listConnections() {
|
|
394
|
+
const body = await this.connectionsTool({ action: "list", limit: 500 });
|
|
395
|
+
return body.connections ?? [];
|
|
396
|
+
}
|
|
397
|
+
async createConnection(payload) {
|
|
398
|
+
const body = await this.connectionsTool({
|
|
399
|
+
action: "create",
|
|
400
|
+
connector_key: payload.connector,
|
|
401
|
+
slug: payload.slug,
|
|
402
|
+
...(payload.name ? { display_name: payload.name } : {}),
|
|
403
|
+
...(payload.authProfileSlug
|
|
404
|
+
? { auth_profile_slug: payload.authProfileSlug }
|
|
405
|
+
: {}),
|
|
406
|
+
...(payload.appAuthProfileSlug
|
|
407
|
+
? { app_auth_profile_slug: payload.appAuthProfileSlug }
|
|
408
|
+
: {}),
|
|
409
|
+
...(payload.config ? { config: payload.config } : {}),
|
|
410
|
+
});
|
|
411
|
+
if (!body.connection) {
|
|
412
|
+
throw new ApiError(`create connection "${payload.slug}" returned no connection payload`);
|
|
413
|
+
}
|
|
414
|
+
return body.connection;
|
|
415
|
+
}
|
|
416
|
+
async updateConnection(connectionId, payload) {
|
|
417
|
+
const body = await this.connectionsTool({
|
|
418
|
+
action: "update",
|
|
419
|
+
connection_id: connectionId,
|
|
420
|
+
...(payload.name !== undefined ? { display_name: payload.name } : {}),
|
|
421
|
+
...(payload.authProfileSlug !== undefined
|
|
422
|
+
? { auth_profile_slug: payload.authProfileSlug }
|
|
423
|
+
: {}),
|
|
424
|
+
...(payload.appAuthProfileSlug !== undefined
|
|
425
|
+
? { app_auth_profile_slug: payload.appAuthProfileSlug }
|
|
426
|
+
: {}),
|
|
427
|
+
// `lobu apply` is declarative — replace, don't merge, so removed
|
|
428
|
+
// manifest keys disappear remotely (server defaults to merge).
|
|
429
|
+
...(payload.config !== undefined
|
|
430
|
+
? { config: payload.config, replace_config: true }
|
|
431
|
+
: {}),
|
|
432
|
+
});
|
|
433
|
+
if (!body.connection) {
|
|
434
|
+
throw new ApiError(`update connection #${connectionId} returned no connection payload`);
|
|
435
|
+
}
|
|
436
|
+
return body.connection;
|
|
437
|
+
}
|
|
438
|
+
async deleteConnection(connectionId) {
|
|
439
|
+
await this.connectionsTool({
|
|
440
|
+
action: "delete",
|
|
441
|
+
connection_id: connectionId,
|
|
442
|
+
});
|
|
443
|
+
}
|
|
444
|
+
// ── Feeds (managed per-connection) ────────────────────────────────────────
|
|
445
|
+
async listFeeds(connectionId) {
|
|
446
|
+
const body = await this.feedsTool({
|
|
447
|
+
action: "list_feeds",
|
|
448
|
+
connection_id: connectionId,
|
|
449
|
+
limit: 500,
|
|
450
|
+
});
|
|
451
|
+
return body.feeds ?? [];
|
|
452
|
+
}
|
|
453
|
+
async createFeed(payload) {
|
|
454
|
+
const body = await this.feedsTool({
|
|
455
|
+
action: "create_feed",
|
|
456
|
+
connection_id: payload.connectionId,
|
|
457
|
+
feed_key: payload.feedKey,
|
|
458
|
+
...(payload.name ? { display_name: payload.name } : {}),
|
|
459
|
+
...(payload.schedule ? { schedule: payload.schedule } : {}),
|
|
460
|
+
...(payload.config ? { config: payload.config } : {}),
|
|
461
|
+
});
|
|
462
|
+
if (!body.feed) {
|
|
463
|
+
throw new ApiError(`create feed "${payload.feedKey}" returned no feed payload`);
|
|
464
|
+
}
|
|
465
|
+
return body.feed;
|
|
466
|
+
}
|
|
467
|
+
async updateFeed(feedId, payload) {
|
|
468
|
+
const body = await this.feedsTool({
|
|
469
|
+
action: "update_feed",
|
|
470
|
+
feed_id: feedId,
|
|
471
|
+
...(payload.name !== undefined ? { display_name: payload.name } : {}),
|
|
472
|
+
...(payload.schedule !== undefined ? { schedule: payload.schedule } : {}),
|
|
473
|
+
...(payload.config !== undefined
|
|
474
|
+
? { config: payload.config, replace_config: true }
|
|
475
|
+
: {}),
|
|
476
|
+
});
|
|
477
|
+
if (!body.feed) {
|
|
478
|
+
throw new ApiError(`update feed #${feedId} returned no feed payload`);
|
|
479
|
+
}
|
|
480
|
+
return body.feed;
|
|
481
|
+
}
|
|
482
|
+
async deleteFeed(feedId) {
|
|
483
|
+
await this.feedsTool({ action: "delete_feed", feed_id: feedId });
|
|
484
|
+
}
|
|
205
485
|
}
|
|
206
486
|
/**
|
|
207
487
|
* Recognise duplicate-name errors from the admin tools without substring
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../src/commands/_lib/apply/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../src/commands/_lib/apply/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAkIvD,8EAA8E;AAE9E,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED;;;;GAIG;AACH,SAAS,SAAS,CAAI,IAA6B,EAAE,GAAG,IAAc;IACpE,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,OAAO,KAAY,CAAC;IAChD,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,eAAe,CACtB,MAA+B,EAC/B,MAAc,EACd,UAAkB;IAElB,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QACrC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;IACnC,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,OAAO,GACX,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,KAAK,QAAQ;YACtC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO;YACtB,CAAC,CAAC,QAAQ,MAAM,IAAI,UAAU,EAAE,CAAC;QACrC,MAAM,IAAI,GACR,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QACxE,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;IAChD,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,QAAQ,MAAM,IAAI,UAAU,EAAE,EAAE,CAAC;AACrD,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,GAAa,EACb,GAAW;IAEX,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAC;QAC1C,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,QAAQ,CAAC,qBAAqB,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IACvE,CAAC;AACH,CAAC;AAUD;;;;;;GAMG;AACH,MAAM,OAAO,WAAW;IACL,UAAU,CAAS;IACnB,OAAO,CAAS;IAChB,KAAK,CAAS;IACd,SAAS,CAAe;IAEzC,YAAY,GAAsB,EAAE,YAA0B,KAAK;QACjE,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,4EAA4E;IAEpE,KAAK,CAAC,OAAO,CACnB,MAAmD,EACnD,IAAY,EACZ,IAAc,EACd,aAAuB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QAEtC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,EAAE,CAAC;QACxC,MAAM,IAAI,GAAgB;YACxB,MAAM;YACN,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,UAAU,IAAI,CAAC,KAAK,EAAE;aACtC;SACF,CAAC;QACF,IAAI,IAAI,KAAK,SAAS;YAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAEjD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YAChD,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,eAAe,CACvC,MAAM,EACN,GAAG,CAAC,MAAM,EACV,GAAG,CAAC,UAAU,CACf,CAAC;YACF,MAAM,IAAI,QAAQ,CAChB,GAAG,MAAM,IAAI,IAAI,YAAY,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EACjE,GAAG,CAAC,MAAM,CACX,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChE,MAAM,IAAI,QAAQ,CAChB,GAAG,MAAM,IAAI,IAAI,oBAAoB,MAAM,CAAC,KAAK,EAAE,EACnD,GAAG,CAAC,MAAM,CACX,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,MAAW,EAAE,CAAC;IACnD,CAAC;IAED,6EAA6E;IAE7E;;;;;;OAMG;IACH,KAAK,CAAC,QAAQ;QACZ,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CACjC,KAAK,EACL,iBAAiB,CAClB,CAAC;QACF,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,MAAM,GAAG,GAAgB,EAAE,CAAC;QAC5B,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;YACzB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,SAAS;YAC/B,MAAM,EAAE,GAAG,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxD,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9D,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI;gBAAE,SAAS;YAC3B,GAAG,CAAC,IAAI,CAAC;gBACP,EAAE;gBACF,IAAI;gBACJ,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAChE,CAAC,CAAC;QACL,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,6EAA6E;IAE7E,KAAK,CAAC,UAAU;QACd,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CACjC,KAAK,EACL,QAAQ,IAAI,CAAC,OAAO,SAAS,CAC9B,CAAC;QACF,OAAO,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,WAAW,CAAC,KAIjB;QACC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CACjC,MAAM;QACN,sEAAsE;QACtE,4EAA4E;QAC5E,QAAQ,IAAI,CAAC,OAAO,SAAS,EAC7B,KAAK,EACL,CAAC,GAAG,EAAE,GAAG,CAAC,CACX,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,OAAe,EACf,KAA8C;QAE9C,MAAM,IAAI,CAAC,OAAO,CAChB,OAAO,EACP,QAAQ,IAAI,CAAC,OAAO,WAAW,kBAAkB,CAAC,OAAO,CAAC,EAAE,EAC5D,KAAK,CACN,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,OAAe;QACpC,IAAI,CAAC;YACH,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CACjC,KAAK,EACL,QAAQ,IAAI,CAAC,OAAO,WAAW,kBAAkB,CAAC,OAAO,CAAC,SAAS,CACpE,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;gBAAE,OAAO,IAAI,CAAC;YAC/D,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,OAAe,EACf,QAAgC;QAEhC,MAAM,IAAI,CAAC,OAAO,CAChB,OAAO,EACP,QAAQ,IAAI,CAAC,OAAO,WAAW,kBAAkB,CAAC,OAAO,CAAC,SAAS,EACnE,QAAQ,CACT,CAAC;IACJ,CAAC;IAED,6EAA6E;IAE7E,KAAK,CAAC,aAAa,CAAC,OAAe;QACjC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CACjC,KAAK,EACL,QAAQ,IAAI,CAAC,OAAO,WAAW,kBAAkB,CAAC,OAAO,CAAC,YAAY,CACvE,CAAC;QACF,OAAO,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC;IAC9B,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,cAAc,CAClB,OAAe,EACf,QAAgB,EAChB,OAA4E;QAE5E,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CACjC,KAAK,EACL,QAAQ,IAAI,CAAC,OAAO,WAAW,kBAAkB,CAAC,OAAO,CAAC,2BAA2B,kBAAkB,CAAC,QAAQ,CAAC,EAAE,EACnH,OAAO,CACR,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,oBAAoB,CACxB,OAAe,EACf,UAAkB,EAClB,QAAkB;QAElB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAIjC,MAAM,EACN,QAAQ,IAAI,CAAC,OAAO,WAAW,kBAAkB,CAAC,OAAO,CAAC,cAAc,kBAAkB,CAAC,UAAU,CAAC,gBAAgB,EACtH,EAAE,QAAQ,EAAE,CACb,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;IAClE,CAAC;IAED,6EAA6E;IAE7E,KAAK,CAAC,eAAe;QACnB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAGhC,MAAM,EAAE,QAAQ,IAAI,CAAC,OAAO,uBAAuB,EAAE;YACtD,WAAW,EAAE,aAAa;YAC1B,MAAM,EAAE,MAAM;SACf,CAAC,CAAC;QACH,OAAO,SAAS,CAAC,IAAI,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC;IACxD,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,oBAAoB,CAChC,UAA+C,EAC/C,OAAgC;QAEhC,MAAM,GAAG,GAAG,QAAQ,IAAI,CAAC,OAAO,uBAAuB,CAAC;QACxD,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE;gBAC9B,WAAW,EAAE,UAAU;gBACvB,MAAM,EAAE,QAAQ;gBAChB,GAAG,OAAO;aACX,CAAC,CAAC;YACH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC3B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,QAAQ,IAAI,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrD,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE;oBAC9B,WAAW,EAAE,UAAU;oBACvB,MAAM,EAAE,QAAQ;oBAChB,GAAG,OAAO;iBACX,CAAC,CAAC;gBACH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YAC3B,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,MAMtB;QACC,OAAO,IAAI,CAAC,oBAAoB,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,qBAAqB;QACzB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAGhC,MAAM,EAAE,QAAQ,IAAI,CAAC,OAAO,uBAAuB,EAAE;YACtD,WAAW,EAAE,mBAAmB;YAChC,MAAM,EAAE,MAAM;SACf,CAAC,CAAC;QACH,OAAO,SAAS,CAAC,IAAI,EAAE,oBAAoB,EAAE,mBAAmB,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,GAK5B;QACC,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,GAAG,GAAG,CAAC;QAClC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAC5C,mBAAmB,EACnB,OAAO,CACR,CAAC;QAEF,qEAAqE;QACrE,wEAAwE;QACxE,IAAI,KAAK,EAAE,MAAM,EAAE,CAAC;YAClB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,OAAO,CAChB,MAAM,EACN,QAAQ,IAAI,CAAC,OAAO,uBAAuB,EAC3C;wBACE,WAAW,EAAE,mBAAmB;wBAChC,MAAM,EAAE,UAAU;wBAClB,IAAI,EAAE,GAAG,CAAC,IAAI;wBACd,uBAAuB,EAAE,IAAI,CAAC,MAAM;wBACpC,uBAAuB,EAAE,IAAI,CAAC,MAAM;qBACrC,CACF,CAAC;gBACJ,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,IAAI,GAAG,YAAY,QAAQ,IAAI,gBAAgB,CAAC,GAAG,CAAC;wBAAE,SAAS;oBAC/D,MAAM,GAAG,CAAC;gBACZ,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,6EAA6E;IAE7E,KAAK,CAAC,YAAY;QAChB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CACjC,KAAK,EACL,QAAQ,IAAI,CAAC,OAAO,WAAW,CAChC,CAAC;QACF,OAAO,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;IAC7B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,aAAa,CAAC,OASnB;QACC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,IAAI,CAAC,OAAO,kBAAkB,EAAE;YACjE,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,QAAQ,EAAE,OAAO,CAAC,OAAO;YACzB,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpE,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;YAC5C,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3D,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACjE,CAAC,CAAC;IACL,CAAC;IAED,6EAA6E;IAErE,KAAK,CAAC,eAAe,CAAI,IAA6B;QAC5D,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CACzC,MAAM,EACN,QAAQ,IAAI,CAAC,OAAO,qBAAqB,EACzC,IAAI,CACL,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,SAAS,CAAI,IAA6B;QACtD,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CACzC,MAAM,EACN,QAAQ,IAAI,CAAC,OAAO,eAAe,EACnC,IAAI,CACL,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAI,IAA6B;QAC7D,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CACzC,MAAM,EACN,QAAQ,IAAI,CAAC,OAAO,uBAAuB,EAC3C,IAAI,CACL,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,kFAAkF;IAClF,KAAK,CAAC,wBAAwB,CAC5B,kBAAkB,GAAG,IAAI;QAEzB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAEpC;YACD,MAAM,EAAE,4BAA4B;YACpC,mBAAmB,EAAE,kBAAkB;SACxC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,qBAAqB,IAAI,EAAE,CAAC;IAC1C,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,gBAAgB,CAAC,OAKtB;QACC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAKpC;YACD,MAAM,EAAE,mBAAmB;YAC3B,GAAG,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS;gBAClC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE;gBACtD,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/D,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChE,CAAC,CAAC;QACH,OAAO;YACL,YAAY,EAAE,IAAI,CAAC,aAAa,IAAI,EAAE;YACtC,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,KAAK;YAC9B,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACnD,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,YAAoB;QAC3C,MAAM,IAAI,CAAC,eAAe,CAAC;YACzB,MAAM,EAAE,qBAAqB;YAC7B,aAAa,EAAE,YAAY;SAC5B,CAAC,CAAC;IACL,CAAC;IAED,6EAA6E;IAE7E,KAAK,CAAC,gBAAgB;QACpB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAErC,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,IAAY;QACrC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAErC,EAAE,MAAM,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5D,OAAO,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC;QACnC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;gBAAE,OAAO,IAAI,CAAC;YAC/D,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,OAMvB;QACC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAGrC;YACD,MAAM,EAAE,qBAAqB;YAC7B,aAAa,EAAE,OAAO,CAAC,SAAS;YAChC,YAAY,EAAE,OAAO,CAAC,IAAI;YAC1B,YAAY,EAAE,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI;YAC1C,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,GAAG,CAAC,OAAO,CAAC,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC;gBACpE,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE;gBACtC,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,CAAC;QACH,OAAO;YACL,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,KAAK;YACd,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM;gBAC3B,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;gBACtC,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9D,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,OAIvB;QACC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAGrC;YACD,MAAM,EAAE,qBAAqB;YAC7B,iBAAiB,EAAE,OAAO,CAAC,IAAI;YAC/B,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvD,GAAG,CAAC,OAAO,CAAC,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC;gBACpE,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE;gBACtC,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,CAAC;QACH,OAAO;YACL,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,IAAI;YACb,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM;gBAC3B,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;gBACtC,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9D,CAAC;IACJ,CAAC;IAED,yEAAyE;IACzE,KAAK,CAAC,oBAAoB,CAAC,IAAY;QACrC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAA2B;YACjE,MAAM,EAAE,qBAAqB;YAC7B,iBAAiB,EAAE,IAAI;YACvB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,IAAY;QAClC,MAAM,IAAI,CAAC,gBAAgB,CAAC;YAC1B,MAAM,EAAE,qBAAqB;YAC7B,iBAAiB,EAAE,IAAI;SACxB,CAAC,CAAC;IACL,CAAC;IAED,6EAA6E;IAE7E,KAAK,CAAC,eAAe;QACnB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAEpC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,OAOtB;QACC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAoC;YACzE,MAAM,EAAE,QAAQ;YAChB,aAAa,EAAE,OAAO,CAAC,SAAS;YAChC,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvD,GAAG,CAAC,OAAO,CAAC,eAAe;gBACzB,CAAC,CAAC,EAAE,iBAAiB,EAAE,OAAO,CAAC,eAAe,EAAE;gBAChD,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,OAAO,CAAC,kBAAkB;gBAC5B,CAAC,CAAC,EAAE,qBAAqB,EAAE,OAAO,CAAC,kBAAkB,EAAE;gBACvD,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtD,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,IAAI,QAAQ,CAChB,sBAAsB,OAAO,CAAC,IAAI,kCAAkC,CACrE,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,gBAAgB,CACpB,YAAoB,EACpB,OAKC;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAoC;YACzE,MAAM,EAAE,QAAQ;YAChB,aAAa,EAAE,YAAY;YAC3B,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrE,GAAG,CAAC,OAAO,CAAC,eAAe,KAAK,SAAS;gBACvC,CAAC,CAAC,EAAE,iBAAiB,EAAE,OAAO,CAAC,eAAe,EAAE;gBAChD,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,OAAO,CAAC,kBAAkB,KAAK,SAAS;gBAC1C,CAAC,CAAC,EAAE,qBAAqB,EAAE,OAAO,CAAC,kBAAkB,EAAE;gBACvD,CAAC,CAAC,EAAE,CAAC;YACP,iEAAiE;YACjE,+DAA+D;YAC/D,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS;gBAC9B,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE;gBAClD,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,IAAI,QAAQ,CAChB,sBAAsB,YAAY,iCAAiC,CACpE,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,YAAoB;QACzC,MAAM,IAAI,CAAC,eAAe,CAAC;YACzB,MAAM,EAAE,QAAQ;YAChB,aAAa,EAAE,YAAY;SAC5B,CAAC,CAAC;IACL,CAAC;IAED,6EAA6E;IAE7E,KAAK,CAAC,SAAS,CAAC,YAAoB;QAClC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAA2B;YAC1D,MAAM,EAAE,YAAY;YACpB,aAAa,EAAE,YAAY;YAC3B,KAAK,EAAE,GAAG;SACX,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAMhB;QACC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAwB;YACvD,MAAM,EAAE,aAAa;YACrB,aAAa,EAAE,OAAO,CAAC,YAAY;YACnC,QAAQ,EAAE,OAAO,CAAC,OAAO;YACzB,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvD,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3D,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtD,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,IAAI,QAAQ,CAChB,gBAAgB,OAAO,CAAC,OAAO,4BAA4B,CAC5D,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,UAAU,CACd,MAAc,EACd,OAIC;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAwB;YACvD,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,MAAM;YACf,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrE,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzE,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS;gBAC9B,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE;gBAClD,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,IAAI,QAAQ,CAAC,gBAAgB,MAAM,2BAA2B,CAAC,CAAC;QACxE,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAc;QAC7B,MAAM,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IACnE,CAAC;CACF;AAED;;;;;;;;;;;;GAYG;AACH,SAAS,gBAAgB,CAAC,GAAa;IACrC,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;QAC5E,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QAC1C,IACE,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC;YACxC,OAAO,CAAC,QAAQ,CAAC,4BAA4B,CAAC;YAC9C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EACpC,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,sEAAsE;QACtE,8DAA8D;QAC9D,uDAAuD;QACvD,OAAO,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC;IACxE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAUD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAIxC;IACC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,MAAM,gBAAgB,CAAC;QAC5D,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,MAAM,EAAE,IAAI,CAAC,GAAG;QAChB,SAAS,EAAE,IAAI,CAAC,SAAS;KAC1B,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,IAAI,WAAW,CAC5B,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,EAC9B,IAAI,CAAC,SAAS,CACf,CAAC;IACF,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;AACzC,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ConnectorDefinition } from "@lobu/connector-sdk";
|
|
1
2
|
import type { AgentSettings } from "@lobu/core";
|
|
2
3
|
export declare function buildStablePlatformId(agentId: string, type: string, name?: string): string;
|
|
3
4
|
export interface DesiredAgentMetadata {
|
|
@@ -12,6 +13,8 @@ export interface DesiredPlatform {
|
|
|
12
13
|
name?: string;
|
|
13
14
|
/** Raw config from lobu.toml — values may still contain `$VAR` references. */
|
|
14
15
|
config: Record<string, string>;
|
|
16
|
+
/** Declarative channel bindings (`"<teamId>/<channelId>"`); Slack only. */
|
|
17
|
+
channels?: string[];
|
|
15
18
|
}
|
|
16
19
|
export interface DesiredEntityType {
|
|
17
20
|
slug: string;
|
|
@@ -31,6 +34,75 @@ export interface DesiredRelationshipType {
|
|
|
31
34
|
}>;
|
|
32
35
|
metadata?: Record<string, unknown>;
|
|
33
36
|
}
|
|
37
|
+
export interface DesiredWatcher {
|
|
38
|
+
slug: string;
|
|
39
|
+
/** Owning agent id. Every watcher belongs to exactly one agent. */
|
|
40
|
+
agent: string;
|
|
41
|
+
name?: string;
|
|
42
|
+
description?: string;
|
|
43
|
+
schedule?: string;
|
|
44
|
+
prompt: string;
|
|
45
|
+
/** Parsed JSON Schema object describing the LLM output. */
|
|
46
|
+
extractionSchema: Record<string, unknown>;
|
|
47
|
+
/** Optional SQL data sources; server applies a default when omitted. */
|
|
48
|
+
sources?: Array<{
|
|
49
|
+
name: string;
|
|
50
|
+
query: string;
|
|
51
|
+
}>;
|
|
52
|
+
}
|
|
53
|
+
export interface DesiredFeed {
|
|
54
|
+
/** Feed key from the connector definition (`FeedDefinition.key`). */
|
|
55
|
+
feedKey: string;
|
|
56
|
+
name?: string;
|
|
57
|
+
schedule?: string;
|
|
58
|
+
config?: Record<string, unknown>;
|
|
59
|
+
}
|
|
60
|
+
export interface DesiredConnection {
|
|
61
|
+
/** Stable public identifier — diff key. */
|
|
62
|
+
slug: string;
|
|
63
|
+
/** Connector key (e.g. `github`, `hackernews`). */
|
|
64
|
+
connector: string;
|
|
65
|
+
name?: string;
|
|
66
|
+
/** Slug of the runtime/account auth profile (`auth:` in the manifest). */
|
|
67
|
+
authProfileSlug?: string;
|
|
68
|
+
/** Slug of the OAuth-app auth profile (`app_auth:` in the manifest). */
|
|
69
|
+
appAuthProfileSlug?: string;
|
|
70
|
+
config?: Record<string, unknown>;
|
|
71
|
+
feeds: DesiredFeed[];
|
|
72
|
+
/** Relative path of the YAML file the doc came from (for error messages). */
|
|
73
|
+
sourceFile: string;
|
|
74
|
+
}
|
|
75
|
+
export type DesiredAuthProfileKind = "env" | "oauth_app" | "oauth_account" | "browser_session";
|
|
76
|
+
export interface DesiredAuthProfile {
|
|
77
|
+
/** Stable slug — diff key. */
|
|
78
|
+
slug: string;
|
|
79
|
+
connector: string;
|
|
80
|
+
kind: DesiredAuthProfileKind;
|
|
81
|
+
name?: string;
|
|
82
|
+
/**
|
|
83
|
+
* key→value credentials. Values may be `$ENV` references (collected into
|
|
84
|
+
* `requiredSecrets`). Only meaningful for `kind: env | oauth_app`; must be
|
|
85
|
+
* absent/empty for `oauth_account | browser_session`.
|
|
86
|
+
*/
|
|
87
|
+
credentials?: Record<string, string>;
|
|
88
|
+
sourceFile: string;
|
|
89
|
+
}
|
|
90
|
+
export interface DesiredConnectorDefinition {
|
|
91
|
+
/** Connector key — diff key (`null` until the server compiles a `.ts`). */
|
|
92
|
+
key: string | null;
|
|
93
|
+
/** Local `.ts` path (absolute) — mutually exclusive with `sourceUrl`. */
|
|
94
|
+
sourcePath?: string;
|
|
95
|
+
/** Remote URL — mutually exclusive with `sourcePath`. */
|
|
96
|
+
sourceUrl?: string;
|
|
97
|
+
/**
|
|
98
|
+
* Raw TypeScript source read from `sourcePath`, pushed verbatim to the
|
|
99
|
+
* server (which compiles, extracts metadata, and returns the real `key`).
|
|
100
|
+
* Absent when `sourceUrl` is used.
|
|
101
|
+
*/
|
|
102
|
+
sourceCode?: string;
|
|
103
|
+
/** For error messages — the `.connector.ts` file or `type: connector` doc. */
|
|
104
|
+
sourceFile: string;
|
|
105
|
+
}
|
|
34
106
|
export interface DesiredAgent {
|
|
35
107
|
metadata: DesiredAgentMetadata;
|
|
36
108
|
/**
|
|
@@ -47,22 +119,81 @@ export interface DesiredAgent {
|
|
|
47
119
|
}
|
|
48
120
|
export interface DesiredState {
|
|
49
121
|
agents: DesiredAgent[];
|
|
122
|
+
/**
|
|
123
|
+
* `[memory]` metadata from lobu.toml — the org slug `lobu apply` defaults to,
|
|
124
|
+
* the resolved `organization_id` (written back once known), and the
|
|
125
|
+
* name/description shown when telling the operator to create the org.
|
|
126
|
+
*/
|
|
127
|
+
memory?: {
|
|
128
|
+
org?: string;
|
|
129
|
+
organizationId?: string;
|
|
130
|
+
name?: string;
|
|
131
|
+
description?: string;
|
|
132
|
+
};
|
|
50
133
|
memorySchema: {
|
|
51
134
|
entityTypes: DesiredEntityType[];
|
|
52
135
|
relationshipTypes: DesiredRelationshipType[];
|
|
53
136
|
};
|
|
137
|
+
/** Watchers declared under `[memory].models` YAML files. */
|
|
138
|
+
watchers: DesiredWatcher[];
|
|
54
139
|
/**
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
140
|
+
* Data-source connectors declared in `[memory].connectors` dir:
|
|
141
|
+
* `*.connector.ts` files (+ `type: connector` manifests), `type: connection`
|
|
142
|
+
* docs, and `type: auth_profile` docs.
|
|
143
|
+
*/
|
|
144
|
+
connectors: {
|
|
145
|
+
definitions: DesiredConnectorDefinition[];
|
|
146
|
+
authProfiles: DesiredAuthProfile[];
|
|
147
|
+
connections: DesiredConnection[];
|
|
148
|
+
};
|
|
149
|
+
/**
|
|
150
|
+
* Names of env vars referenced as `$NAME` anywhere in lobu.toml or in
|
|
151
|
+
* connector auth-profile credentials. The CLI surfaces these to the user
|
|
152
|
+
* before mutating remote state so missing secrets fail loud instead of
|
|
153
|
+
* expanding to empty strings.
|
|
58
154
|
*/
|
|
59
155
|
requiredSecrets: string[];
|
|
60
156
|
}
|
|
157
|
+
export interface ResolvedConnectorSchemas {
|
|
158
|
+
/** Connector key → `optionsSchema` (JSON Schema), if declared. */
|
|
159
|
+
optionsSchema?: Record<string, unknown>;
|
|
160
|
+
/** Every feed key declared by the connector (`connector.feeds` keys). */
|
|
161
|
+
feedKeys: Set<string>;
|
|
162
|
+
/** Feed key → `configSchema` (JSON Schema), for keys that declare one. */
|
|
163
|
+
feedConfigSchemas: Map<string, Record<string, unknown>>;
|
|
164
|
+
/** Allowed auth-profile kinds for the connector (from `authSchema.methods`). */
|
|
165
|
+
authKinds: Set<string>;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Build per-connector validation schemas from a connector definition. Accepts
|
|
169
|
+
* either a typed `ConnectorDefinition` (from `@lobu/connector-sdk`) or the
|
|
170
|
+
* snake_cased shape the server's `manage_connections list_connector_definitions`
|
|
171
|
+
* returns (`options_schema`, `feeds_schema`, `auth_schema`).
|
|
172
|
+
*/
|
|
173
|
+
export declare function resolveConnectorSchemas(def: ConnectorDefinition | {
|
|
174
|
+
options_schema?: Record<string, unknown> | null;
|
|
175
|
+
feeds_schema?: Record<string, unknown> | null;
|
|
176
|
+
auth_schema?: Record<string, unknown> | null;
|
|
177
|
+
}): ResolvedConnectorSchemas;
|
|
178
|
+
/**
|
|
179
|
+
* Validate a single connection (+ its feeds) and its referenced auth-profile
|
|
180
|
+
* kinds against a resolved connector schema. Pass `null` to skip schema
|
|
181
|
+
* checks (e.g. a connector that only exists as a local `.ts` not yet
|
|
182
|
+
* compiled by the server) — structural checks have already run at load time.
|
|
183
|
+
*/
|
|
184
|
+
export declare function validateConnectionAgainstConnector(connection: DesiredConnection, authProfiles: ReadonlyMap<string, DesiredAuthProfile>, schemas: ResolvedConnectorSchemas | null): void;
|
|
185
|
+
export declare function validateAuthProfileAgainstConnector(profile: DesiredAuthProfile, schemas: ResolvedConnectorSchemas | null): void;
|
|
61
186
|
export interface LoadDesiredStateOptions {
|
|
62
187
|
/** Project root (directory containing `lobu.toml`). */
|
|
63
188
|
cwd: string;
|
|
64
189
|
/** Env to resolve `$VAR` refs against; defaults to `process.env`. */
|
|
65
190
|
env?: NodeJS.ProcessEnv;
|
|
191
|
+
/**
|
|
192
|
+
* When set, only the named resource family is loaded — `"agents"` and
|
|
193
|
+
* `"memory"` both skip the `connectors/` dir (and its `$VAR` credential
|
|
194
|
+
* expansion), so `--only agents` doesn't require connector secrets.
|
|
195
|
+
*/
|
|
196
|
+
only?: "agents" | "memory";
|
|
66
197
|
}
|
|
67
198
|
export declare function loadDesiredState(opts: LoadDesiredStateOptions): Promise<{
|
|
68
199
|
state: DesiredState;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"desired-state.d.ts","sourceRoot":"","sources":["../../../../src/commands/_lib/apply/desired-state.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAkC,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"desired-state.d.ts","sourceRoot":"","sources":["../../../../src/commands/_lib/apply/desired-state.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,mBAAmB,EAEpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,aAAa,EAAkC,MAAM,YAAY,CAAC;AAqDhF,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,MAAM,GACZ,MAAM,CAIR;AAID,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,0EAA0E;IAC1E,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8EAA8E;IAC9E,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,mEAAmE;IACnE,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,2DAA2D;IAC3D,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,wEAAwE;IACxE,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClD;AAED,MAAM,WAAW,WAAW;IAC1B,qEAAqE;IACrE,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,iBAAiB;IAChC,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,0EAA0E;IAC1E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wEAAwE;IACxE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,6EAA6E;IAC7E,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,sBAAsB,GAC9B,KAAK,GACL,WAAW,GACX,eAAe,GACf,iBAAiB,CAAC;AAEtB,MAAM,WAAW,kBAAkB;IACjC,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,sBAAsB,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,0BAA0B;IACzC,2EAA2E;IAC3E,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,yEAAyE;IACzE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8EAA8E;IAC9E,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,oBAAoB,CAAC;IAC/B;;;;;;;;OAQG;IACH,QAAQ,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IACjC,SAAS,EAAE,eAAe,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB;;;;OAIG;IACH,MAAM,CAAC,EAAE;QACP,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,YAAY,EAAE;QACZ,WAAW,EAAE,iBAAiB,EAAE,CAAC;QACjC,iBAAiB,EAAE,uBAAuB,EAAE,CAAC;KAC9C,CAAC;IACF,4DAA4D;IAC5D,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B;;;;OAIG;IACH,UAAU,EAAE;QACV,WAAW,EAAE,0BAA0B,EAAE,CAAC;QAC1C,YAAY,EAAE,kBAAkB,EAAE,CAAC;QACnC,WAAW,EAAE,iBAAiB,EAAE,CAAC;KAClC,CAAC;IACF;;;;;OAKG;IACH,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAgpCD,MAAM,WAAW,wBAAwB;IACvC,kEAAkE;IAClE,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,yEAAyE;IACzE,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACtB,0EAA0E;IAC1E,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACxD,gFAAgF;IAChF,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACxB;AAwBD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EACC,mBAAmB,GACnB;IACE,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAChD,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC9C,GACJ,wBAAwB,CAmC1B;AAqCD;;;;;GAKG;AACH,wBAAgB,kCAAkC,CAChD,UAAU,EAAE,iBAAiB,EAC7B,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,kBAAkB,CAAC,EACrD,OAAO,EAAE,wBAAwB,GAAG,IAAI,GACvC,IAAI,CAoDN;AAqBD,wBAAgB,mCAAmC,CACjD,OAAO,EAAE,kBAAkB,EAC3B,OAAO,EAAE,wBAAwB,GAAG,IAAI,GACvC,IAAI,CAON;AAID,MAAM,WAAW,uBAAuB;IACtC,uDAAuD;IACvD,GAAG,EAAE,MAAM,CAAC;IACZ,qEAAqE;IACrE,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB;;;;OAIG;IACH,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;CAC5B;AAED,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,uBAAuB,GAC5B,OAAO,CAAC;IAAE,KAAK,EAAE,YAAY,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CA4EtD"}
|