@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.
Files changed (100) hide show
  1. package/dist/commands/_lib/apply/apply-cmd.d.ts +36 -0
  2. package/dist/commands/_lib/apply/apply-cmd.d.ts.map +1 -1
  3. package/dist/commands/_lib/apply/apply-cmd.js +548 -40
  4. package/dist/commands/_lib/apply/apply-cmd.js.map +1 -1
  5. package/dist/commands/_lib/apply/client.d.ts +179 -0
  6. package/dist/commands/_lib/apply/client.d.ts.map +1 -1
  7. package/dist/commands/_lib/apply/client.js +308 -28
  8. package/dist/commands/_lib/apply/client.js.map +1 -1
  9. package/dist/commands/_lib/apply/desired-state.d.ts +134 -3
  10. package/dist/commands/_lib/apply/desired-state.d.ts.map +1 -1
  11. package/dist/commands/_lib/apply/desired-state.js +700 -86
  12. package/dist/commands/_lib/apply/desired-state.js.map +1 -1
  13. package/dist/commands/_lib/apply/diff.d.ts +61 -3
  14. package/dist/commands/_lib/apply/diff.d.ts.map +1 -1
  15. package/dist/commands/_lib/apply/diff.js +382 -92
  16. package/dist/commands/_lib/apply/diff.js.map +1 -1
  17. package/dist/commands/_lib/apply/prompt.d.ts +6 -0
  18. package/dist/commands/_lib/apply/prompt.d.ts.map +1 -1
  19. package/dist/commands/_lib/apply/prompt.js +16 -0
  20. package/dist/commands/_lib/apply/prompt.js.map +1 -1
  21. package/dist/commands/_lib/apply/render.d.ts +9 -0
  22. package/dist/commands/_lib/apply/render.d.ts.map +1 -1
  23. package/dist/commands/_lib/apply/render.js +80 -3
  24. package/dist/commands/_lib/apply/render.js.map +1 -1
  25. package/dist/commands/chat.d.ts.map +1 -1
  26. package/dist/commands/chat.js +9 -2
  27. package/dist/commands/chat.js.map +1 -1
  28. package/dist/commands/dev.d.ts +8 -0
  29. package/dist/commands/dev.d.ts.map +1 -1
  30. package/dist/commands/dev.js +118 -5
  31. package/dist/commands/dev.js.map +1 -1
  32. package/dist/commands/eval.d.ts.map +1 -1
  33. package/dist/commands/eval.js +16 -5
  34. package/dist/commands/eval.js.map +1 -1
  35. package/dist/commands/init.d.ts +2 -0
  36. package/dist/commands/init.d.ts.map +1 -1
  37. package/dist/commands/init.js +24 -0
  38. package/dist/commands/init.js.map +1 -1
  39. package/dist/commands/memory/_lib/schema.d.ts +28 -1
  40. package/dist/commands/memory/_lib/schema.d.ts.map +1 -1
  41. package/dist/commands/memory/_lib/schema.js +120 -4
  42. package/dist/commands/memory/_lib/schema.js.map +1 -1
  43. package/dist/commands/memory/_lib/seed-cmd.d.ts.map +1 -1
  44. package/dist/commands/memory/_lib/seed-cmd.js +41 -18
  45. package/dist/commands/memory/_lib/seed-cmd.js.map +1 -1
  46. package/dist/commands/org.d.ts +4 -0
  47. package/dist/commands/org.d.ts.map +1 -1
  48. package/dist/commands/org.js +10 -0
  49. package/dist/commands/org.js.map +1 -1
  50. package/dist/commands/token.d.ts +9 -0
  51. package/dist/commands/token.d.ts.map +1 -1
  52. package/dist/commands/token.js +54 -0
  53. package/dist/commands/token.js.map +1 -1
  54. package/dist/connectors/README.md +2 -2
  55. package/dist/connectors/apple_health.ts +138 -0
  56. package/dist/connectors/apple_screen_time.ts +82 -0
  57. package/dist/connectors/browser-scraper-utils.ts +35 -3
  58. package/dist/connectors/capterra.ts +5 -1
  59. package/dist/connectors/g2.ts +5 -1
  60. package/dist/connectors/github.ts +15 -38
  61. package/dist/connectors/glassdoor.ts +5 -1
  62. package/dist/connectors/google_calendar.ts +14 -4
  63. package/dist/connectors/google_gmail.ts +6 -3
  64. package/dist/connectors/google_play.ts +10 -3
  65. package/dist/connectors/index.ts +5 -0
  66. package/dist/connectors/linkedin.ts +32 -9
  67. package/dist/connectors/local_directory.ts +91 -0
  68. package/dist/connectors/revolut.ts +572 -0
  69. package/dist/connectors/trustpilot.ts +5 -1
  70. package/dist/connectors/website.ts +1 -1
  71. package/dist/connectors/whatsapp.ts +9 -1
  72. package/dist/connectors/whatsapp_local.ts +125 -0
  73. package/dist/connectors/x.ts +17 -7
  74. package/dist/db/migrations/20260510220000_connector_required_capability.sql +47 -0
  75. package/dist/db/migrations/20260512000000_device_worker_connection_binding.sql +113 -0
  76. package/dist/db/migrations/20260512131703_connections_slug.sql +131 -0
  77. package/dist/db/migrations/20260513000000_chat_user_identities.sql +24 -0
  78. package/dist/db/migrations/20260513120000_auth_profiles_device_binding.sql +50 -0
  79. package/dist/db/migrations/20260513150000_auth_profiles_cdp_url.sql +43 -0
  80. package/dist/db/migrations/20260513200000_notifications_as_events.sql +86 -0
  81. package/dist/db/migrations/20260514000000_scheduled_jobs.sql +97 -0
  82. package/dist/db/migrations/20260514120000_auth_profiles_connector_key_nullable.sql +42 -0
  83. package/dist/eval/types.d.ts +2 -0
  84. package/dist/eval/types.d.ts.map +1 -1
  85. package/dist/index.d.ts +11 -0
  86. package/dist/index.d.ts.map +1 -1
  87. package/dist/index.js +68 -114
  88. package/dist/index.js.map +1 -1
  89. package/dist/internal/gateway-url.d.ts +14 -0
  90. package/dist/internal/gateway-url.d.ts.map +1 -1
  91. package/dist/internal/gateway-url.js +19 -0
  92. package/dist/internal/gateway-url.js.map +1 -1
  93. package/dist/internal/index.d.ts +1 -1
  94. package/dist/internal/index.d.ts.map +1 -1
  95. package/dist/internal/index.js +1 -1
  96. package/dist/internal/index.js.map +1 -1
  97. package/dist/server.bundle.mjs +32494 -30475
  98. package/dist/start-local.bundle.mjs +10840 -7912
  99. package/dist/templates/TESTING.md.tmpl +9 -9
  100. package/package.json +6 -6
@@ -1,3 +1,4 @@
1
+ import { ValidationError } from "../../memory/_lib/errors.js";
1
2
  // ── Equality helpers ───────────────────────────────────────────────────────
2
3
  /**
3
4
  * Stable structural equality for JSON-shaped values. Sorts object keys before
@@ -25,35 +26,68 @@ function canonical(value) {
25
26
  }
26
27
  return JSON.stringify(value);
27
28
  }
28
- // ── Per-resource diff ──────────────────────────────────────────────────────
29
- function diffAgent(desired, remote) {
30
- if (!remote) {
31
- return { kind: "agent", verb: "create", id: desired.agentId, desired };
32
- }
33
- const changed = [];
34
- if (desired.name !== remote.name)
35
- changed.push("name");
36
- if ((desired.description ?? "") !== (remote.description ?? "")) {
37
- changed.push("description");
29
+ /** `(a ?? "") !== (b ?? "")` — the canonical optional-string comparison. */
30
+ function stringChanged(a, b) {
31
+ return (a ?? "") !== (b ?? "");
32
+ }
33
+ /**
34
+ * The shared create / noop / update shape behind most `diffX` functions.
35
+ * `extras` is merged into every row (create/noop/update); `updateExtras`
36
+ * adds verb-specific props derived from the changed-field list (e.g.
37
+ * `willRestart`). `changedFields` is attached automatically on update.
38
+ */
39
+ function buildDiffRow(opts) {
40
+ const extras = opts.extras ?? {};
41
+ if (!opts.remote) {
42
+ return {
43
+ kind: opts.kind,
44
+ verb: "create",
45
+ id: opts.id,
46
+ desired: opts.desired,
47
+ ...extras,
48
+ };
38
49
  }
50
+ const remote = opts.remote;
51
+ const changed = opts.fields
52
+ .filter((f) => f.changed(opts.desired, remote))
53
+ .map((f) => f.name);
39
54
  if (changed.length === 0) {
40
55
  return {
41
- kind: "agent",
56
+ kind: opts.kind,
42
57
  verb: "noop",
43
- id: desired.agentId,
44
- desired,
58
+ id: opts.id,
59
+ desired: opts.desired,
45
60
  remote,
61
+ ...extras,
46
62
  };
47
63
  }
48
64
  return {
49
- kind: "agent",
65
+ kind: opts.kind,
50
66
  verb: "update",
51
- id: desired.agentId,
52
- desired,
67
+ id: opts.id,
68
+ desired: opts.desired,
53
69
  remote,
54
70
  changedFields: changed,
71
+ ...extras,
72
+ ...(opts.updateExtras?.(changed) ?? {}),
55
73
  };
56
74
  }
75
+ // ── Per-resource diff ──────────────────────────────────────────────────────
76
+ function diffAgent(desired, remote) {
77
+ return buildDiffRow({
78
+ kind: "agent",
79
+ id: desired.agentId,
80
+ desired,
81
+ remote,
82
+ fields: [
83
+ { name: "name", changed: (d, r) => d.name !== r.name },
84
+ {
85
+ name: "description",
86
+ changed: (d, r) => stringChanged(d.description, r.description),
87
+ },
88
+ ],
89
+ });
90
+ }
57
91
  /**
58
92
  * Compare desired settings against what's currently stored.
59
93
  *
@@ -117,103 +151,154 @@ function diffSettings(agentId, desired, remote) {
117
151
  };
118
152
  }
119
153
  function diffPlatform(agentId, desired, remote) {
120
- if (!remote) {
121
- return {
122
- kind: "platform",
123
- verb: "create",
124
- id: desired.stableId,
125
- agentId,
126
- desired,
127
- willRestart: false,
128
- };
129
- }
130
- const changed = [];
131
- if (desired.type !== remote.platform)
132
- changed.push("type");
133
- // The route handler stores `platform` inside `config` for stable-id matching,
134
- // so a noop round-trip from GET will have an extra `platform` key the CLI
135
- // never wrote. Strip it before diffing so an unchanged platform doesn't
136
- // show as drift on every plan.
137
- const remoteConfig = { ...(remote.config ?? {}) };
138
- delete remoteConfig.platform;
139
- if (!deepEqual(desired.config, remoteConfig))
140
- changed.push("config");
141
- if (changed.length === 0) {
142
- return {
143
- kind: "platform",
144
- verb: "noop",
145
- id: desired.stableId,
146
- agentId,
147
- desired,
148
- remote,
149
- };
150
- }
151
- return {
154
+ return buildDiffRow({
152
155
  kind: "platform",
153
- verb: "update",
154
156
  id: desired.stableId,
155
- agentId,
156
157
  desired,
157
158
  remote,
158
- changedFields: changed,
159
- willRestart: changed.includes("config") || changed.includes("type"),
160
- };
159
+ extras: remote ? { agentId } : { agentId, willRestart: false },
160
+ fields: [
161
+ { name: "type", changed: (d, r) => d.type !== r.platform },
162
+ {
163
+ name: "config",
164
+ changed: (d, r) => {
165
+ // The route handler stores `platform` inside `config` for stable-id
166
+ // matching, so a noop round-trip from GET will have an extra
167
+ // `platform` key the CLI never wrote. Strip it before diffing so an
168
+ // unchanged platform doesn't show as drift on every plan.
169
+ const remoteConfig = { ...(r.config ?? {}) };
170
+ delete remoteConfig.platform;
171
+ return !deepEqual(d.config, remoteConfig);
172
+ },
173
+ },
174
+ ],
175
+ updateExtras: (changed) => ({
176
+ willRestart: changed.includes("config") || changed.includes("type"),
177
+ }),
178
+ });
161
179
  }
162
180
  function diffEntityType(desired, remote) {
181
+ return buildDiffRow({
182
+ kind: "entity-type",
183
+ id: desired.slug,
184
+ desired,
185
+ remote,
186
+ fields: [
187
+ { name: "name", changed: (d, r) => stringChanged(d.name, r.name) },
188
+ {
189
+ name: "description",
190
+ changed: (d, r) => stringChanged(d.description, r.description),
191
+ },
192
+ {
193
+ name: "required",
194
+ changed: (d, r) => !deepEqual(d.required ?? [], r.required ?? []),
195
+ },
196
+ {
197
+ name: "properties",
198
+ changed: (d, r) => !deepEqual(d.properties, r.properties),
199
+ },
200
+ ],
201
+ });
202
+ }
203
+ function diffRelationshipType(desired, remote) {
204
+ return buildDiffRow({
205
+ kind: "relationship-type",
206
+ id: desired.slug,
207
+ desired,
208
+ remote,
209
+ fields: [
210
+ { name: "name", changed: (d, r) => stringChanged(d.name, r.name) },
211
+ {
212
+ name: "description",
213
+ changed: (d, r) => stringChanged(d.description, r.description),
214
+ },
215
+ {
216
+ name: "rules",
217
+ changed: (d, r) => !deepEqual(d.rules ?? [], r.rules ?? []),
218
+ },
219
+ ],
220
+ });
221
+ }
222
+ /**
223
+ * Watchers are sync-on-create only: a model file declares a watcher, and the
224
+ * first apply creates it. Subsequent applies see the slug remotely and noop.
225
+ * Remote watchers without a desired model are reported as drift, never
226
+ * deleted — and we deliberately don't diff prompt/schema/schedule changes in
227
+ * v1, so editing a watcher in the UI won't be clobbered by apply.
228
+ */
229
+ function diffWatcher(desired, remote) {
163
230
  if (!remote) {
164
- return { kind: "entity-type", verb: "create", id: desired.slug, desired };
165
- }
166
- const changed = [];
167
- if ((desired.name ?? "") !== (remote.name ?? ""))
168
- changed.push("name");
169
- if ((desired.description ?? "") !== (remote.description ?? "")) {
170
- changed.push("description");
171
- }
172
- if (!deepEqual(desired.required ?? [], remote.required ?? [])) {
173
- changed.push("required");
174
- }
175
- if (!deepEqual(desired.properties, remote.properties)) {
176
- changed.push("properties");
177
- }
178
- if (changed.length === 0) {
179
- return {
180
- kind: "entity-type",
181
- verb: "noop",
182
- id: desired.slug,
183
- desired,
184
- remote,
185
- };
231
+ return { kind: "watcher", verb: "create", id: desired.slug, desired };
186
232
  }
187
233
  return {
188
- kind: "entity-type",
189
- verb: "update",
234
+ kind: "watcher",
235
+ verb: "noop",
190
236
  id: desired.slug,
191
237
  desired,
192
238
  remote,
193
- changedFields: changed,
194
239
  };
195
240
  }
196
- function diffRelationshipType(desired, remote) {
241
+ // ── Connectors ─────────────────────────────────────────────────────────────
242
+ const INTERACTIVE_AUTH_KINDS = new Set([
243
+ "oauth_account",
244
+ "browser_session",
245
+ ]);
246
+ function connectorDefinitionId(def) {
247
+ return def.key ?? def.sourceFile;
248
+ }
249
+ function diffConnectorDefinition(desired, installedKeys) {
250
+ const id = connectorDefinitionId(desired);
251
+ // The CLI can't compare source hashes (the server compiles, and the stored
252
+ // hash is of the *compiled* output) — so we always emit a "sync" row;
253
+ // `install_connector` is idempotent and reports `updated:false` on apply
254
+ // when the code is byte-identical, so this never churns remote state.
255
+ const installedRemotely = desired.key
256
+ ? installedKeys.has(desired.key)
257
+ : false;
258
+ return {
259
+ kind: "connector-definition",
260
+ // "update" (re-push) when already installed; `install_connector` is
261
+ // idempotent and reports `updated:false` if the code is unchanged.
262
+ verb: installedRemotely ? "update" : "create",
263
+ id,
264
+ desired,
265
+ installedRemotely,
266
+ };
267
+ }
268
+ function diffAuthProfile(desired, remote) {
197
269
  if (!remote) {
198
270
  return {
199
- kind: "relationship-type",
271
+ kind: "auth-profile",
200
272
  verb: "create",
201
273
  id: desired.slug,
202
274
  desired,
275
+ needsAuth: INTERACTIVE_AUTH_KINDS.has(desired.kind),
203
276
  };
204
277
  }
278
+ // `connector` / `kind` are immutable — `update_auth_profile` can't change
279
+ // them, so reusing a slug for a different connector/kind would silently push
280
+ // credentials into the wrong profile. Hard-stop instead.
281
+ if (remote.connector_key !== desired.connector ||
282
+ remote.profile_kind !== desired.kind) {
283
+ throw new ValidationError(`${desired.sourceFile}: auth_profile "${desired.slug}" is bound to ${remote.connector_key}/${remote.profile_kind} remotely, but the manifest declares ${desired.connector}/${desired.kind} — delete it manually or use a new slug`);
284
+ }
205
285
  const changed = [];
206
- if ((desired.name ?? "") !== (remote.name ?? ""))
286
+ if ((desired.name ?? "") !== (remote.display_name ?? "")) {
207
287
  changed.push("name");
208
- if ((desired.description ?? "") !== (remote.description ?? "")) {
209
- changed.push("description");
210
- }
211
- if (!deepEqual(desired.rules ?? [], remote.rules ?? [])) {
212
- changed.push("rules");
213
288
  }
214
- if (changed.length === 0) {
289
+ // Credentials can't be read back from the server (write-only secrets). For
290
+ // non-interactive kinds with declared credentials, always re-push them
291
+ // (idempotent) so rotated secrets propagate — show as a redacted "credentials"
292
+ // change. Interactive kinds never carry credentials in the manifest.
293
+ const declaresCredentials = !INTERACTIVE_AUTH_KINDS.has(desired.kind) &&
294
+ desired.credentials !== undefined &&
295
+ Object.keys(desired.credentials).length > 0;
296
+ if (declaresCredentials)
297
+ changed.push("credentials");
298
+ const needsAuth = INTERACTIVE_AUTH_KINDS.has(desired.kind) && remote.status !== "active";
299
+ if (changed.length === 0 && !needsAuth) {
215
300
  return {
216
- kind: "relationship-type",
301
+ kind: "auth-profile",
217
302
  verb: "noop",
218
303
  id: desired.slug,
219
304
  desired,
@@ -221,14 +306,78 @@ function diffRelationshipType(desired, remote) {
221
306
  };
222
307
  }
223
308
  return {
224
- kind: "relationship-type",
225
- verb: "update",
309
+ kind: "auth-profile",
310
+ verb: changed.length > 0 ? "update" : "noop",
226
311
  id: desired.slug,
227
312
  desired,
228
313
  remote,
229
- changedFields: changed,
314
+ ...(changed.length > 0 ? { changedFields: changed } : {}),
315
+ ...(needsAuth ? { needsAuth: true } : {}),
230
316
  };
231
317
  }
318
+ function diffConnection(desired, remote) {
319
+ if (!remote) {
320
+ return {
321
+ kind: "connection",
322
+ verb: "create",
323
+ id: desired.slug,
324
+ desired,
325
+ };
326
+ }
327
+ // `connector` is immutable — `update` can't change `connector_key`, so a
328
+ // slug bound to a different connector remotely must be a hard error, never
329
+ // an "update" that mutates auth/config on the wrong connector.
330
+ if (remote.connector_key !== desired.connector) {
331
+ throw new ValidationError(`${desired.sourceFile}: connection "${desired.slug}" is bound to connector "${remote.connector_key}" remotely, but the manifest declares "${desired.connector}" — delete it manually or use a new slug`);
332
+ }
333
+ return buildDiffRow({
334
+ kind: "connection",
335
+ id: desired.slug,
336
+ desired,
337
+ remote,
338
+ fields: [
339
+ {
340
+ name: "name",
341
+ changed: (d, r) => stringChanged(d.name, r.display_name),
342
+ },
343
+ {
344
+ name: "auth",
345
+ changed: (d, r) => (d.authProfileSlug ?? null) !== (r.auth_profile_slug ?? null),
346
+ },
347
+ {
348
+ name: "app_auth",
349
+ changed: (d, r) => (d.appAuthProfileSlug ?? null) !== (r.app_auth_profile_slug ?? null),
350
+ },
351
+ {
352
+ name: "config",
353
+ changed: (d, r) => !deepEqual(d.config ?? {}, r.config ?? {}),
354
+ },
355
+ ],
356
+ });
357
+ }
358
+ function diffFeed(connectionSlug, desired, remote) {
359
+ return buildDiffRow({
360
+ kind: "feed",
361
+ id: `${connectionSlug}/${desired.feedKey}`,
362
+ desired,
363
+ remote,
364
+ extras: { connectionSlug },
365
+ fields: [
366
+ {
367
+ name: "name",
368
+ changed: (d, r) => stringChanged(d.name, r.display_name),
369
+ },
370
+ {
371
+ name: "schedule",
372
+ changed: (d, r) => (d.schedule ?? null) !== (r.schedule ?? null),
373
+ },
374
+ {
375
+ name: "config",
376
+ changed: (d, r) => !deepEqual(d.config ?? {}, r.config ?? {}),
377
+ },
378
+ ],
379
+ });
380
+ }
232
381
  export function computeDiff(desired, remote, opts = {}) {
233
382
  const rows = [];
234
383
  const only = opts.only;
@@ -314,10 +463,151 @@ export function computeDiff(desired, remote, opts = {}) {
314
463
  });
315
464
  }
316
465
  }
466
+ const remoteWatcherBySlug = new Map(remote.watchers.map((w) => [w.slug, w]));
467
+ const desiredWatcherSlugs = new Set(desired.watchers.map((w) => w.slug));
468
+ for (const watcher of desired.watchers) {
469
+ rows.push(diffWatcher(watcher, remoteWatcherBySlug.get(watcher.slug)));
470
+ }
471
+ for (const remoteWatcher of remote.watchers) {
472
+ if (!desiredWatcherSlugs.has(remoteWatcher.slug)) {
473
+ rows.push({
474
+ kind: "watcher",
475
+ verb: "drift",
476
+ id: remoteWatcher.slug,
477
+ remote: remoteWatcher,
478
+ });
479
+ }
480
+ }
481
+ }
482
+ const notes = [];
483
+ // Connectors run only on a full apply (`--only agents|memory` skips them).
484
+ const desiredConnectors = desired.connectors ?? {
485
+ definitions: [],
486
+ authProfiles: [],
487
+ connections: [],
488
+ };
489
+ // Sort remote collections so drift rows + notes render deterministically
490
+ // regardless of server response ordering.
491
+ const remoteConnectorDefinitions = [
492
+ ...(remote.connectorDefinitions ?? []),
493
+ ].sort((a, b) => a.key.localeCompare(b.key));
494
+ const remoteAuthProfiles = [...(remote.authProfiles ?? [])].sort((a, b) => a.slug.localeCompare(b.slug));
495
+ const remoteConnections = [...(remote.connections ?? [])].sort((a, b) => a.slug.localeCompare(b.slug));
496
+ const remoteFeedsByConnectionId = remote.feedsByConnectionId ?? new Map();
497
+ if (!only) {
498
+ const installedKeys = new Set(remoteConnectorDefinitions.filter((d) => d.installed).map((d) => d.key));
499
+ const declaredKeys = new Set(desiredConnectors.definitions
500
+ .map((d) => d.key)
501
+ .filter((k) => !!k));
502
+ // Connectors referenced by a desired auth profile / connection are (or
503
+ // will be) installed in the org too — bundled ones included — so they
504
+ // aren't "undeclared".
505
+ const referencedConnectorKeys = new Set([
506
+ ...desiredConnectors.authProfiles.map((p) => p.connector),
507
+ ...desiredConnectors.connections.map((c) => c.connector),
508
+ ]);
509
+ // Auto-discovered `.connector.ts` files whose key the CLI can't know up
510
+ // front (the server compiles them). When any exist, suppress the
511
+ // "undeclared remote connector" notes entirely — we can't tell which
512
+ // remote connector corresponds to which local file.
513
+ const hasUnnamedLocalDefs = desiredConnectors.definitions.some((d) => d.key === null);
514
+ for (const def of desiredConnectors.definitions) {
515
+ rows.push(diffConnectorDefinition(def, installedKeys));
516
+ }
517
+ // Bundled connectors referenced by a desired auth-profile / connection that
518
+ // the org doesn't have installed yet — `lobu apply` will install them from
519
+ // the catalog's server-side `source_uri`. Surface them as plan rows so the
520
+ // operator approves these connector-definition mutations too. (Skipped when
521
+ // a locally-supplied connector declares the same key — that one wins.)
522
+ const installableByKey = new Map(remoteConnectorDefinitions
523
+ .filter((d) => d.installable && d.source_uri)
524
+ .map((d) => [d.key, d]));
525
+ for (const key of [...referencedConnectorKeys].sort()) {
526
+ if (installedKeys.has(key))
527
+ continue;
528
+ if (declaredKeys.has(key))
529
+ continue; // a local def supplies this key
530
+ const entry = installableByKey.get(key);
531
+ if (!entry?.source_uri)
532
+ continue;
533
+ rows.push({
534
+ kind: "connector-definition",
535
+ verb: "create",
536
+ id: key,
537
+ // No `desired` — this is a bundled install, handled by
538
+ // `installConnectorDefinitions`'s bundled-referenced loop, not the
539
+ // plan-row loop. The render falls back to `id` (the connector key).
540
+ });
541
+ }
542
+ // Conservative: never auto-uninstall remote connector definitions that
543
+ // aren't declared/referenced locally — just note them.
544
+ if (!hasUnnamedLocalDefs) {
545
+ for (const def of remoteConnectorDefinitions) {
546
+ if (def.installed &&
547
+ !declaredKeys.has(def.key) &&
548
+ !referencedConnectorKeys.has(def.key)) {
549
+ notes.push(`connector "${def.key}" is installed remotely but not declared in connectors/ — uninstall it manually if it's no longer wanted (lobu apply never auto-uninstalls connectors).`);
550
+ }
551
+ }
552
+ }
553
+ const remoteAuthBySlug = new Map(remoteAuthProfiles.map((p) => [p.slug, p]));
554
+ const desiredAuthSlugs = new Set(desiredConnectors.authProfiles.map((p) => p.slug));
555
+ for (const profile of desiredConnectors.authProfiles) {
556
+ rows.push(diffAuthProfile(profile, remoteAuthBySlug.get(profile.slug)));
557
+ }
558
+ for (const remoteProfile of remoteAuthProfiles) {
559
+ if (!desiredAuthSlugs.has(remoteProfile.slug)) {
560
+ rows.push({
561
+ kind: "auth-profile",
562
+ verb: "drift",
563
+ id: remoteProfile.slug,
564
+ remote: remoteProfile,
565
+ });
566
+ }
567
+ }
568
+ const remoteConnBySlug = new Map(remoteConnections.map((c) => [c.slug, c]));
569
+ const desiredConnSlugs = new Set(desiredConnectors.connections.map((c) => c.slug));
570
+ for (const conn of desiredConnectors.connections) {
571
+ const remoteConn = remoteConnBySlug.get(conn.slug);
572
+ rows.push(diffConnection(conn, remoteConn));
573
+ // Nested feeds — diffed by feed_key within the connection. Only diffable
574
+ // when the connection already exists remotely; for a new connection the
575
+ // feeds are created right after the connection-creation step.
576
+ const remoteFeeds = remoteConn
577
+ ? [...(remoteFeedsByConnectionId.get(remoteConn.id) ?? [])].sort((a, b) => a.feed_key.localeCompare(b.feed_key))
578
+ : [];
579
+ const remoteFeedByKey = new Map(remoteFeeds.map((f) => [f.feed_key, f]));
580
+ const desiredFeedKeys = new Set(conn.feeds.map((f) => f.feedKey));
581
+ for (const feed of conn.feeds) {
582
+ rows.push(diffFeed(conn.slug, feed, remoteFeedByKey.get(feed.feedKey)));
583
+ }
584
+ for (const remoteFeed of remoteFeeds) {
585
+ if (!desiredFeedKeys.has(remoteFeed.feed_key)) {
586
+ rows.push({
587
+ kind: "feed",
588
+ verb: "drift",
589
+ id: `${conn.slug}/${remoteFeed.feed_key}`,
590
+ connectionSlug: conn.slug,
591
+ remote: remoteFeed,
592
+ });
593
+ }
594
+ }
595
+ }
596
+ for (const remoteConn of remoteConnections) {
597
+ if (!desiredConnSlugs.has(remoteConn.slug)) {
598
+ rows.push({
599
+ kind: "connection",
600
+ verb: "drift",
601
+ id: remoteConn.slug,
602
+ remote: remoteConn,
603
+ });
604
+ }
605
+ }
317
606
  }
318
607
  const counts = { create: 0, update: 0, noop: 0, drift: 0 };
319
608
  for (const row of rows)
320
609
  counts[row.verb]++;
321
- return { rows, counts };
610
+ notes.sort();
611
+ return { rows, counts, notes };
322
612
  }
323
613
  //# sourceMappingURL=diff.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"diff.js","sourceRoot":"","sources":["../../../../src/commands/_lib/apply/diff.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diff.js","sourceRoot":"","sources":["../../../../src/commands/_lib/apply/diff.ts"],"names":[],"mappings":"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"}
@@ -10,4 +10,10 @@ export interface ConfirmOptions {
10
10
  * trying to read from a closed stdin and hanging.
11
11
  */
12
12
  export declare function confirmPlan(opts: ConfirmOptions): Promise<boolean>;
13
+ /**
14
+ * Confirm uploading + compiling custom connector source on the gateway.
15
+ * `yes` short-circuits to true; non-TTY without `--yes` throws rather than
16
+ * hanging on a closed stdin.
17
+ */
18
+ export declare function confirmCustomConnectors(yes: boolean): Promise<boolean>;
13
19
  //# sourceMappingURL=prompt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../../../src/commands/_lib/apply/prompt.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,cAAc;IAC7B,uEAAuE;IACvE,GAAG,EAAE,OAAO,CAAC;IACb,6EAA6E;IAC7E,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAWxE"}
1
+ {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../../../src/commands/_lib/apply/prompt.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,cAAc;IAC7B,uEAAuE;IACvE,GAAG,EAAE,OAAO,CAAC;IACb,6EAA6E;IAC7E,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAWxE;AAED;;;;GAIG;AACH,wBAAsB,uBAAuB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAW5E"}
@@ -16,4 +16,20 @@ export async function confirmPlan(opts) {
16
16
  default: false,
17
17
  });
18
18
  }
19
+ /**
20
+ * Confirm uploading + compiling custom connector source on the gateway.
21
+ * `yes` short-circuits to true; non-TTY without `--yes` throws rather than
22
+ * hanging on a closed stdin.
23
+ */
24
+ export async function confirmCustomConnectors(yes) {
25
+ if (yes)
26
+ return true;
27
+ if (!process.stdin.isTTY || !process.stdout.isTTY) {
28
+ throw new ValidationError("Custom connector source present and --yes was not supplied. Re-run with --yes once you've reviewed the connector code.");
29
+ }
30
+ return confirm({
31
+ message: "Compile & execute these connectors on the gateway?",
32
+ default: false,
33
+ });
34
+ }
19
35
  //# sourceMappingURL=prompt.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../../src/commands/_lib/apply/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAS9D;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAoB;IACpD,IAAI,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IAC1B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClD,MAAM,IAAI,eAAe,CACvB,8FAA8F,CAC/F,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC;QACb,OAAO,EAAE,gBAAgB,IAAI,CAAC,WAAW,GAAG;QAC5C,OAAO,EAAE,KAAK;KACf,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../../src/commands/_lib/apply/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAS9D;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAoB;IACpD,IAAI,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IAC1B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClD,MAAM,IAAI,eAAe,CACvB,8FAA8F,CAC/F,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC;QACb,OAAO,EAAE,gBAAgB,IAAI,CAAC,WAAW,GAAG;QAC5C,OAAO,EAAE,KAAK;KACf,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,GAAY;IACxD,IAAI,GAAG;QAAE,OAAO,IAAI,CAAC;IACrB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClD,MAAM,IAAI,eAAe,CACvB,wHAAwH,CACzH,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC;QACb,OAAO,EAAE,oDAAoD;QAC7D,OAAO,EAAE,KAAK;KACf,CAAC,CAAC;AACL,CAAC"}