@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.
Files changed (266) hide show
  1. package/README.md +11 -26
  2. package/dist/__tests__/chat.integration.test.js +19 -19
  3. package/dist/__tests__/chat.integration.test.js.map +1 -1
  4. package/dist/__tests__/dev.test.d.ts +2 -0
  5. package/dist/__tests__/dev.test.d.ts.map +1 -0
  6. package/dist/__tests__/dev.test.js +25 -0
  7. package/dist/__tests__/dev.test.js.map +1 -0
  8. package/dist/__tests__/init-memory.test.js +1 -14
  9. package/dist/__tests__/init-memory.test.js.map +1 -1
  10. package/dist/__tests__/token.test.d.ts +2 -0
  11. package/dist/__tests__/token.test.d.ts.map +1 -0
  12. package/dist/__tests__/token.test.js +52 -0
  13. package/dist/__tests__/token.test.js.map +1 -0
  14. package/dist/bundled-skills/lobu/SKILL.md +95 -7
  15. package/dist/commands/_lib/apply/__tests__/client.test.d.ts +2 -0
  16. package/dist/commands/_lib/apply/__tests__/client.test.d.ts.map +1 -0
  17. package/dist/commands/_lib/apply/__tests__/client.test.js +23 -0
  18. package/dist/commands/_lib/apply/__tests__/client.test.js.map +1 -0
  19. package/dist/commands/_lib/apply/__tests__/desired-state.test.d.ts +2 -0
  20. package/dist/commands/_lib/apply/__tests__/desired-state.test.d.ts.map +1 -0
  21. package/dist/commands/_lib/apply/__tests__/desired-state.test.js +140 -0
  22. package/dist/commands/_lib/apply/__tests__/desired-state.test.js.map +1 -0
  23. package/dist/commands/_lib/apply/__tests__/diff.test.d.ts +2 -0
  24. package/dist/commands/_lib/apply/__tests__/diff.test.d.ts.map +1 -0
  25. package/dist/commands/_lib/apply/__tests__/diff.test.js +378 -0
  26. package/dist/commands/_lib/apply/__tests__/diff.test.js.map +1 -0
  27. package/dist/commands/_lib/apply/apply-cmd.d.ts +12 -0
  28. package/dist/commands/_lib/apply/apply-cmd.d.ts.map +1 -0
  29. package/dist/commands/_lib/apply/apply-cmd.js +183 -0
  30. package/dist/commands/_lib/apply/apply-cmd.js.map +1 -0
  31. package/dist/commands/_lib/apply/client.d.ts +130 -0
  32. package/dist/commands/_lib/apply/client.d.ts.map +1 -0
  33. package/dist/commands/_lib/apply/client.js +243 -0
  34. package/dist/commands/_lib/apply/client.js.map +1 -0
  35. package/dist/commands/_lib/apply/desired-state.d.ts +71 -0
  36. package/dist/commands/_lib/apply/desired-state.d.ts.map +1 -0
  37. package/dist/commands/_lib/apply/desired-state.js +600 -0
  38. package/dist/commands/_lib/apply/desired-state.js.map +1 -0
  39. package/dist/commands/_lib/apply/diff.d.ts +76 -0
  40. package/dist/commands/_lib/apply/diff.d.ts.map +1 -0
  41. package/dist/commands/_lib/apply/diff.js +323 -0
  42. package/dist/commands/_lib/apply/diff.js.map +1 -0
  43. package/dist/commands/_lib/apply/prompt.d.ts +13 -0
  44. package/dist/commands/_lib/apply/prompt.d.ts.map +1 -0
  45. package/dist/commands/_lib/apply/prompt.js +19 -0
  46. package/dist/commands/_lib/apply/prompt.js.map +1 -0
  47. package/dist/commands/_lib/apply/render.d.ts +9 -0
  48. package/dist/commands/_lib/apply/render.d.ts.map +1 -0
  49. package/dist/commands/_lib/apply/render.js +92 -0
  50. package/dist/commands/_lib/apply/render.js.map +1 -0
  51. package/dist/commands/agent.d.ts +27 -0
  52. package/dist/commands/agent.d.ts.map +1 -0
  53. package/dist/commands/agent.js +111 -0
  54. package/dist/commands/agent.js.map +1 -0
  55. package/dist/commands/apply.d.ts +3 -0
  56. package/dist/commands/apply.d.ts.map +1 -0
  57. package/dist/commands/apply.js +5 -0
  58. package/dist/commands/apply.js.map +1 -0
  59. package/dist/commands/chat.d.ts.map +1 -1
  60. package/dist/commands/chat.js +5 -5
  61. package/dist/commands/chat.js.map +1 -1
  62. package/dist/commands/dev.d.ts +8 -3
  63. package/dist/commands/dev.d.ts.map +1 -1
  64. package/dist/commands/dev.js +128 -124
  65. package/dist/commands/dev.js.map +1 -1
  66. package/dist/commands/doctor.d.ts +6 -0
  67. package/dist/commands/doctor.d.ts.map +1 -0
  68. package/dist/commands/doctor.js +75 -0
  69. package/dist/commands/doctor.js.map +1 -0
  70. package/dist/commands/eval.d.ts +1 -0
  71. package/dist/commands/eval.d.ts.map +1 -1
  72. package/dist/commands/eval.js +7 -4
  73. package/dist/commands/eval.js.map +1 -1
  74. package/dist/commands/init.d.ts +2 -9
  75. package/dist/commands/init.d.ts.map +1 -1
  76. package/dist/commands/init.js +35 -249
  77. package/dist/commands/init.js.map +1 -1
  78. package/dist/commands/login.d.ts +11 -3
  79. package/dist/commands/login.d.ts.map +1 -1
  80. package/dist/commands/login.js +109 -251
  81. package/dist/commands/login.js.map +1 -1
  82. package/dist/commands/logout.d.ts.map +1 -1
  83. package/dist/commands/logout.js +12 -11
  84. package/dist/commands/logout.js.map +1 -1
  85. package/dist/commands/memory/_lib/agent-detect.d.ts +9 -0
  86. package/dist/commands/memory/_lib/agent-detect.d.ts.map +1 -0
  87. package/dist/commands/memory/_lib/agent-detect.js +82 -0
  88. package/dist/commands/memory/_lib/agent-detect.js.map +1 -0
  89. package/dist/commands/memory/_lib/browser-auth-cmd.d.ts +19 -0
  90. package/dist/commands/memory/_lib/browser-auth-cmd.d.ts.map +1 -0
  91. package/dist/commands/memory/_lib/browser-auth-cmd.js +635 -0
  92. package/dist/commands/memory/_lib/browser-auth-cmd.js.map +1 -0
  93. package/dist/commands/memory/_lib/browser.d.ts +2 -0
  94. package/dist/commands/memory/_lib/browser.d.ts.map +1 -0
  95. package/dist/commands/memory/_lib/browser.js +26 -0
  96. package/dist/commands/memory/_lib/browser.js.map +1 -0
  97. package/dist/commands/memory/_lib/errors.d.ts +13 -0
  98. package/dist/commands/memory/_lib/errors.d.ts.map +1 -0
  99. package/dist/commands/memory/_lib/errors.js +23 -0
  100. package/dist/commands/memory/_lib/errors.js.map +1 -0
  101. package/dist/commands/memory/_lib/init-wizard.d.ts +12 -0
  102. package/dist/commands/memory/_lib/init-wizard.d.ts.map +1 -0
  103. package/dist/commands/memory/_lib/init-wizard.js +182 -0
  104. package/dist/commands/memory/_lib/init-wizard.js.map +1 -0
  105. package/dist/commands/memory/_lib/install-targets.d.ts +15 -0
  106. package/dist/commands/memory/_lib/install-targets.d.ts.map +1 -0
  107. package/dist/commands/memory/_lib/install-targets.js +209 -0
  108. package/dist/commands/memory/_lib/install-targets.js.map +1 -0
  109. package/dist/commands/memory/_lib/mcp.d.ts +20 -0
  110. package/dist/commands/memory/_lib/mcp.d.ts.map +1 -0
  111. package/dist/commands/memory/_lib/mcp.js +182 -0
  112. package/dist/commands/memory/_lib/mcp.js.map +1 -0
  113. package/dist/commands/memory/_lib/openclaw-auth.d.ts +41 -0
  114. package/dist/commands/memory/_lib/openclaw-auth.d.ts.map +1 -0
  115. package/dist/commands/memory/_lib/openclaw-auth.js +133 -0
  116. package/dist/commands/memory/_lib/openclaw-auth.js.map +1 -0
  117. package/dist/commands/memory/_lib/openclaw-auth.test.d.ts +2 -0
  118. package/dist/commands/memory/_lib/openclaw-auth.test.d.ts.map +1 -0
  119. package/dist/commands/memory/_lib/openclaw-auth.test.js +9 -0
  120. package/dist/commands/memory/_lib/openclaw-auth.test.js.map +1 -0
  121. package/dist/commands/memory/_lib/openclaw-cmd.d.ts +15 -0
  122. package/dist/commands/memory/_lib/openclaw-cmd.d.ts.map +1 -0
  123. package/dist/commands/memory/_lib/openclaw-cmd.js +208 -0
  124. package/dist/commands/memory/_lib/openclaw-cmd.js.map +1 -0
  125. package/dist/commands/memory/_lib/output.d.ts +5 -0
  126. package/dist/commands/memory/_lib/output.d.ts.map +1 -0
  127. package/dist/commands/memory/_lib/output.js +17 -0
  128. package/dist/commands/memory/_lib/output.js.map +1 -0
  129. package/dist/commands/memory/_lib/schema.d.ts +93 -0
  130. package/dist/commands/memory/_lib/schema.d.ts.map +1 -0
  131. package/dist/commands/memory/_lib/schema.js +192 -0
  132. package/dist/commands/memory/_lib/schema.js.map +1 -0
  133. package/dist/commands/memory/_lib/seed-cmd.d.ts +9 -0
  134. package/dist/commands/memory/_lib/seed-cmd.d.ts.map +1 -0
  135. package/dist/commands/memory/_lib/seed-cmd.js +516 -0
  136. package/dist/commands/memory/_lib/seed-cmd.js.map +1 -0
  137. package/dist/commands/memory/browser-auth.d.ts +3 -0
  138. package/dist/commands/memory/browser-auth.d.ts.map +1 -0
  139. package/dist/commands/memory/browser-auth.js +5 -0
  140. package/dist/commands/memory/browser-auth.js.map +1 -0
  141. package/dist/commands/memory/configure.d.ts +3 -0
  142. package/dist/commands/memory/configure.d.ts.map +1 -0
  143. package/dist/commands/memory/configure.js +5 -0
  144. package/dist/commands/memory/configure.js.map +1 -0
  145. package/dist/commands/memory/health.d.ts +3 -0
  146. package/dist/commands/memory/health.d.ts.map +1 -0
  147. package/dist/commands/memory/health.js +5 -0
  148. package/dist/commands/memory/health.js.map +1 -0
  149. package/dist/commands/memory/init.d.ts +8 -0
  150. package/dist/commands/memory/init.d.ts.map +1 -0
  151. package/dist/commands/memory/init.js +65 -0
  152. package/dist/commands/memory/init.js.map +1 -0
  153. package/dist/commands/memory/org.d.ts +7 -0
  154. package/dist/commands/memory/org.d.ts.map +1 -0
  155. package/dist/commands/memory/org.js +22 -0
  156. package/dist/commands/memory/org.js.map +1 -0
  157. package/dist/commands/memory/run.d.ts +8 -0
  158. package/dist/commands/memory/run.d.ts.map +1 -0
  159. package/dist/commands/memory/run.js +58 -0
  160. package/dist/commands/memory/run.js.map +1 -0
  161. package/dist/commands/memory/seed.d.ts +3 -0
  162. package/dist/commands/memory/seed.d.ts.map +1 -0
  163. package/dist/commands/memory/seed.js +5 -0
  164. package/dist/commands/memory/seed.js.map +1 -0
  165. package/dist/commands/org.d.ts +10 -0
  166. package/dist/commands/org.d.ts.map +1 -0
  167. package/dist/commands/org.js +34 -0
  168. package/dist/commands/org.js.map +1 -0
  169. package/dist/commands/{connections/platforms.d.ts → platforms/platform-prompts.d.ts} +5 -5
  170. package/dist/commands/platforms/platform-prompts.d.ts.map +1 -0
  171. package/dist/commands/{connections/platforms.js → platforms/platform-prompts.js} +24 -24
  172. package/dist/commands/platforms/platform-prompts.js.map +1 -0
  173. package/dist/commands/status.d.ts +4 -1
  174. package/dist/commands/status.d.ts.map +1 -1
  175. package/dist/commands/status.js +15 -84
  176. package/dist/commands/status.js.map +1 -1
  177. package/dist/commands/token.d.ts +17 -0
  178. package/dist/commands/token.d.ts.map +1 -0
  179. package/dist/commands/token.js +55 -0
  180. package/dist/commands/token.js.map +1 -0
  181. package/dist/index.d.ts.map +1 -1
  182. package/dist/index.js +303 -88
  183. package/dist/index.js.map +1 -1
  184. package/dist/internal/__tests__/api-client.test.d.ts +2 -0
  185. package/dist/internal/__tests__/api-client.test.d.ts.map +1 -0
  186. package/dist/internal/__tests__/api-client.test.js +95 -0
  187. package/dist/internal/__tests__/api-client.test.js.map +1 -0
  188. package/dist/internal/__tests__/context.test.d.ts +2 -0
  189. package/dist/internal/__tests__/context.test.d.ts.map +1 -0
  190. package/dist/internal/__tests__/context.test.js +77 -0
  191. package/dist/internal/__tests__/context.test.js.map +1 -0
  192. package/dist/internal/api-client.d.ts +39 -0
  193. package/dist/internal/api-client.d.ts.map +1 -0
  194. package/dist/internal/api-client.js +217 -0
  195. package/dist/internal/api-client.js.map +1 -0
  196. package/dist/internal/context.d.ts +10 -1
  197. package/dist/internal/context.d.ts.map +1 -1
  198. package/dist/internal/context.js +109 -2
  199. package/dist/internal/context.js.map +1 -1
  200. package/dist/internal/credentials.d.ts +12 -2
  201. package/dist/internal/credentials.d.ts.map +1 -1
  202. package/dist/internal/credentials.js +47 -54
  203. package/dist/internal/credentials.js.map +1 -1
  204. package/dist/internal/gateway-url.d.ts +4 -4
  205. package/dist/internal/gateway-url.d.ts.map +1 -1
  206. package/dist/internal/gateway-url.js +6 -5
  207. package/dist/internal/gateway-url.js.map +1 -1
  208. package/dist/internal/index.d.ts +5 -3
  209. package/dist/internal/index.d.ts.map +1 -1
  210. package/dist/internal/index.js +3 -2
  211. package/dist/internal/index.js.map +1 -1
  212. package/dist/internal/local-env.d.ts +2 -0
  213. package/dist/internal/local-env.d.ts.map +1 -0
  214. package/dist/internal/local-env.js +32 -0
  215. package/dist/internal/local-env.js.map +1 -0
  216. package/dist/internal/oauth.d.ts +82 -0
  217. package/dist/internal/oauth.d.ts.map +1 -0
  218. package/dist/internal/oauth.js +234 -0
  219. package/dist/internal/oauth.js.map +1 -0
  220. package/dist/server.bundle.mjs +72219 -0
  221. package/dist/templates/.env.tmpl +7 -3
  222. package/dist/templates/README.md.tmpl +20 -53
  223. package/package.json +60 -6
  224. package/dist/__tests__/skills.test.d.ts +0 -2
  225. package/dist/__tests__/skills.test.d.ts.map +0 -1
  226. package/dist/__tests__/skills.test.js +0 -33
  227. package/dist/__tests__/skills.test.js.map +0 -1
  228. package/dist/commands/connections/add.d.ts +0 -2
  229. package/dist/commands/connections/add.d.ts.map +0 -1
  230. package/dist/commands/connections/add.js +0 -46
  231. package/dist/commands/connections/add.js.map +0 -1
  232. package/dist/commands/connections/list.d.ts +0 -2
  233. package/dist/commands/connections/list.d.ts.map +0 -1
  234. package/dist/commands/connections/list.js +0 -25
  235. package/dist/commands/connections/list.js.map +0 -1
  236. package/dist/commands/connections/platforms.d.ts.map +0 -1
  237. package/dist/commands/connections/platforms.js.map +0 -1
  238. package/dist/commands/providers/add.d.ts +0 -2
  239. package/dist/commands/providers/add.d.ts.map +0 -1
  240. package/dist/commands/providers/add.js +0 -50
  241. package/dist/commands/providers/add.js.map +0 -1
  242. package/dist/commands/providers/list.d.ts +0 -2
  243. package/dist/commands/providers/list.d.ts.map +0 -1
  244. package/dist/commands/providers/list.js +0 -22
  245. package/dist/commands/providers/list.js.map +0 -1
  246. package/dist/commands/secrets.d.ts +0 -8
  247. package/dist/commands/secrets.d.ts.map +0 -1
  248. package/dist/commands/secrets.js +0 -98
  249. package/dist/commands/secrets.js.map +0 -1
  250. package/dist/commands/skills/add.d.ts +0 -5
  251. package/dist/commands/skills/add.d.ts.map +0 -1
  252. package/dist/commands/skills/add.js +0 -27
  253. package/dist/commands/skills/add.js.map +0 -1
  254. package/dist/commands/skills/list.d.ts +0 -2
  255. package/dist/commands/skills/list.d.ts.map +0 -1
  256. package/dist/commands/skills/list.js +0 -19
  257. package/dist/commands/skills/list.js.map +0 -1
  258. package/dist/commands/skills/registry.d.ts +0 -19
  259. package/dist/commands/skills/registry.d.ts.map +0 -1
  260. package/dist/commands/skills/registry.js +0 -76
  261. package/dist/commands/skills/registry.js.map +0 -1
  262. package/dist/config/agent-helpers.d.ts +0 -38
  263. package/dist/config/agent-helpers.d.ts.map +0 -1
  264. package/dist/config/agent-helpers.js +0 -58
  265. package/dist/config/agent-helpers.js.map +0 -1
  266. package/dist/templates/Dockerfile.worker.tmpl +0 -29
@@ -0,0 +1,76 @@
1
+ import type { AgentSettings } from "@lobu/core";
2
+ import type { RemoteAgent, RemoteEntityType, RemotePlatform, RemoteRelationshipType } from "./client.js";
3
+ import type { DesiredAgent, DesiredEntityType, DesiredPlatform, DesiredRelationshipType } from "./desired-state.js";
4
+ export type DiffVerb = "create" | "update" | "noop" | "drift";
5
+ interface BaseRow {
6
+ verb: DiffVerb;
7
+ /** Stable identifier for matching messages and UI. */
8
+ id: string;
9
+ }
10
+ export interface AgentDiffRow extends BaseRow {
11
+ kind: "agent";
12
+ desired?: DesiredAgent["metadata"];
13
+ remote?: RemoteAgent;
14
+ /** Field-level changes when verb === "update". */
15
+ changedFields?: string[];
16
+ }
17
+ export interface SettingsDiffRow extends BaseRow {
18
+ kind: "settings";
19
+ desired?: Partial<AgentSettings>;
20
+ changedFields?: string[];
21
+ }
22
+ export interface PlatformDiffRow extends BaseRow {
23
+ kind: "platform";
24
+ agentId: string;
25
+ desired?: DesiredPlatform;
26
+ remote?: RemotePlatform;
27
+ changedFields?: string[];
28
+ /** True when an update will restart the live worker — surfaced in the plan. */
29
+ willRestart?: boolean;
30
+ }
31
+ export interface EntityTypeDiffRow extends BaseRow {
32
+ kind: "entity-type";
33
+ desired?: DesiredEntityType;
34
+ remote?: RemoteEntityType;
35
+ changedFields?: string[];
36
+ }
37
+ export interface RelationshipTypeDiffRow extends BaseRow {
38
+ kind: "relationship-type";
39
+ desired?: DesiredRelationshipType;
40
+ remote?: RemoteRelationshipType;
41
+ changedFields?: string[];
42
+ }
43
+ export type DiffRow = AgentDiffRow | SettingsDiffRow | PlatformDiffRow | EntityTypeDiffRow | RelationshipTypeDiffRow;
44
+ export interface DiffPlan {
45
+ rows: DiffRow[];
46
+ /** Aggregate counters for the summary line. */
47
+ counts: {
48
+ create: number;
49
+ update: number;
50
+ noop: number;
51
+ drift: number;
52
+ };
53
+ }
54
+ export interface RemoteSnapshot {
55
+ agents: RemoteAgent[];
56
+ /** keyed by agentId */
57
+ agentSettings: Map<string, AgentSettings | null>;
58
+ /** keyed by agentId */
59
+ platformsByAgent: Map<string, RemotePlatform[]>;
60
+ entityTypes: RemoteEntityType[];
61
+ relationshipTypes: RemoteRelationshipType[];
62
+ }
63
+ export interface DesiredStateForDiff {
64
+ agents: DesiredAgent[];
65
+ memorySchema: {
66
+ entityTypes: DesiredEntityType[];
67
+ relationshipTypes: DesiredRelationshipType[];
68
+ };
69
+ }
70
+ export interface ComputeDiffOptions {
71
+ /** Limit the diff to a subset of resource kinds. */
72
+ only?: "agents" | "memory";
73
+ }
74
+ export declare function computeDiff(desired: DesiredStateForDiff, remote: RemoteSnapshot, opts?: ComputeDiffOptions): DiffPlan;
75
+ export {};
76
+ //# sourceMappingURL=diff.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../../../src/commands/_lib/apply/diff.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,323 @@
1
+ // ── Equality helpers ───────────────────────────────────────────────────────
2
+ /**
3
+ * Stable structural equality for JSON-shaped values. Sorts object keys before
4
+ * stringifying so `{a:1,b:2}` and `{b:2,a:1}` compare equal.
5
+ *
6
+ * `undefined` and `null` both canonicalize to `"null"` so missing-on-one-side
7
+ * fields don't show as drift. Empty arrays and empty objects are preserved
8
+ * as themselves — clearing a remote allowlist by setting it to `[]` must
9
+ * produce an `update`, not a `noop`.
10
+ */
11
+ function deepEqual(a, b) {
12
+ return canonical(a) === canonical(b);
13
+ }
14
+ function canonical(value) {
15
+ if (value === undefined || value === null)
16
+ return "null";
17
+ if (Array.isArray(value)) {
18
+ return `[${value.map(canonical).join(",")}]`;
19
+ }
20
+ if (typeof value === "object") {
21
+ const entries = Object.entries(value)
22
+ .filter(([, v]) => v !== undefined)
23
+ .sort(([a], [b]) => a.localeCompare(b));
24
+ return `{${entries.map(([k, v]) => `${JSON.stringify(k)}:${canonical(v)}`).join(",")}}`;
25
+ }
26
+ return JSON.stringify(value);
27
+ }
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");
38
+ }
39
+ if (changed.length === 0) {
40
+ return {
41
+ kind: "agent",
42
+ verb: "noop",
43
+ id: desired.agentId,
44
+ desired,
45
+ remote,
46
+ };
47
+ }
48
+ return {
49
+ kind: "agent",
50
+ verb: "update",
51
+ id: desired.agentId,
52
+ desired,
53
+ remote,
54
+ changedFields: changed,
55
+ };
56
+ }
57
+ /**
58
+ * Compare desired settings against what's currently stored.
59
+ *
60
+ * Redacted-value handling: server never returns secret values in cleartext;
61
+ * any string starting with `***` from the GET response is treated as opaque
62
+ * and the diff records `<field>:redacted` instead of comparing values. The
63
+ * AgentSettings shape currently has no redacted leaf strings, so this is a
64
+ * forward-compatible guard rather than a hot path today.
65
+ *
66
+ * Field set: limited to the keys lobu.toml can express today. Settings that
67
+ * only the UI mutates (e.g. `installedProviders[].installedAt`) are
68
+ * excluded so unrelated UI activity doesn't show up as drift in the plan.
69
+ */
70
+ const SETTINGS_FIELDS = [
71
+ "networkConfig",
72
+ "egressConfig",
73
+ "nixConfig",
74
+ "mcpServers",
75
+ "skillsConfig",
76
+ "toolsConfig",
77
+ "guardrails",
78
+ "preApprovedTools",
79
+ "providerModelPreferences",
80
+ "installedProviders",
81
+ "modelSelection",
82
+ "soulMd",
83
+ "userMd",
84
+ "identityMd",
85
+ ];
86
+ function normalizeInstalledProviders(providers) {
87
+ return providers?.map((provider) => provider.providerId);
88
+ }
89
+ function diffSettings(agentId, desired, remote) {
90
+ const changed = [];
91
+ for (const field of SETTINGS_FIELDS) {
92
+ if (!(field in desired))
93
+ continue;
94
+ if (field === "installedProviders") {
95
+ if (!deepEqual(normalizeInstalledProviders(desired.installedProviders), normalizeInstalledProviders(remote?.installedProviders))) {
96
+ changed.push(field);
97
+ }
98
+ continue;
99
+ }
100
+ if (!deepEqual(desired[field], remote?.[field])) {
101
+ changed.push(field);
102
+ }
103
+ }
104
+ // Special case: when the agent itself is being created, the matching settings
105
+ // patch is always considered a "create" so the user sees both rows in the
106
+ // plan. The caller is responsible for setting `verb: "create"` from outside
107
+ // when needed; here we only key off field equality.
108
+ if (changed.length === 0) {
109
+ return { kind: "settings", verb: "noop", id: agentId, desired };
110
+ }
111
+ return {
112
+ kind: "settings",
113
+ verb: "update",
114
+ id: agentId,
115
+ desired,
116
+ changedFields: changed,
117
+ };
118
+ }
119
+ 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 {
152
+ kind: "platform",
153
+ verb: "update",
154
+ id: desired.stableId,
155
+ agentId,
156
+ desired,
157
+ remote,
158
+ changedFields: changed,
159
+ willRestart: changed.includes("config") || changed.includes("type"),
160
+ };
161
+ }
162
+ function diffEntityType(desired, remote) {
163
+ 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
+ };
186
+ }
187
+ return {
188
+ kind: "entity-type",
189
+ verb: "update",
190
+ id: desired.slug,
191
+ desired,
192
+ remote,
193
+ changedFields: changed,
194
+ };
195
+ }
196
+ function diffRelationshipType(desired, remote) {
197
+ if (!remote) {
198
+ return {
199
+ kind: "relationship-type",
200
+ verb: "create",
201
+ id: desired.slug,
202
+ desired,
203
+ };
204
+ }
205
+ const changed = [];
206
+ if ((desired.name ?? "") !== (remote.name ?? ""))
207
+ 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
+ }
214
+ if (changed.length === 0) {
215
+ return {
216
+ kind: "relationship-type",
217
+ verb: "noop",
218
+ id: desired.slug,
219
+ desired,
220
+ remote,
221
+ };
222
+ }
223
+ return {
224
+ kind: "relationship-type",
225
+ verb: "update",
226
+ id: desired.slug,
227
+ desired,
228
+ remote,
229
+ changedFields: changed,
230
+ };
231
+ }
232
+ export function computeDiff(desired, remote, opts = {}) {
233
+ const rows = [];
234
+ const only = opts.only;
235
+ if (only !== "memory") {
236
+ const remoteByAgent = new Map(remote.agents.map((a) => [a.agentId, a]));
237
+ const desiredAgentIds = new Set(desired.agents.map((a) => a.metadata.agentId));
238
+ for (const agent of desired.agents) {
239
+ const remoteAgent = remoteByAgent.get(agent.metadata.agentId);
240
+ rows.push(diffAgent(agent.metadata, remoteAgent));
241
+ const settingsRow = diffSettings(agent.metadata.agentId, agent.settings, remote.agentSettings.get(agent.metadata.agentId) ?? null);
242
+ // If the agent itself is new, escalate the matching settings row to
243
+ // `create` — that's the operator's mental model: the settings are part
244
+ // of the agent's creation, not a follow-up update.
245
+ if (!remoteAgent && settingsRow.verb !== "noop") {
246
+ rows.push({ ...settingsRow, verb: "create" });
247
+ }
248
+ else if (!remoteAgent) {
249
+ // No desired-side fields set; still emit a create row so the plan
250
+ // shows the apply step actually happens.
251
+ rows.push({ ...settingsRow, verb: "create" });
252
+ }
253
+ else {
254
+ rows.push(settingsRow);
255
+ }
256
+ const remotePlatforms = remote.platformsByAgent.get(agent.metadata.agentId) ?? [];
257
+ const remoteByStableId = new Map(remotePlatforms.map((p) => [p.id, p]));
258
+ const desiredStableIds = new Set(agent.platforms.map((p) => p.stableId));
259
+ for (const platform of agent.platforms) {
260
+ rows.push(diffPlatform(agent.metadata.agentId, platform, remoteByStableId.get(platform.stableId)));
261
+ }
262
+ for (const remotePlatform of remotePlatforms) {
263
+ if (!desiredStableIds.has(remotePlatform.id)) {
264
+ rows.push({
265
+ kind: "platform",
266
+ verb: "drift",
267
+ id: remotePlatform.id,
268
+ agentId: agent.metadata.agentId,
269
+ remote: remotePlatform,
270
+ });
271
+ }
272
+ }
273
+ }
274
+ // Drift: remote agents not in desired state. v1 reports, never deletes.
275
+ for (const remoteAgent of remote.agents) {
276
+ if (!desiredAgentIds.has(remoteAgent.agentId)) {
277
+ rows.push({
278
+ kind: "agent",
279
+ verb: "drift",
280
+ id: remoteAgent.agentId,
281
+ remote: remoteAgent,
282
+ });
283
+ }
284
+ }
285
+ }
286
+ if (only !== "agents") {
287
+ const remoteEntityBySlug = new Map(remote.entityTypes.map((e) => [e.slug, e]));
288
+ const desiredEntitySlugs = new Set(desired.memorySchema.entityTypes.map((e) => e.slug));
289
+ for (const entity of desired.memorySchema.entityTypes) {
290
+ rows.push(diffEntityType(entity, remoteEntityBySlug.get(entity.slug)));
291
+ }
292
+ for (const remoteEntity of remote.entityTypes) {
293
+ if (!desiredEntitySlugs.has(remoteEntity.slug)) {
294
+ rows.push({
295
+ kind: "entity-type",
296
+ verb: "drift",
297
+ id: remoteEntity.slug,
298
+ remote: remoteEntity,
299
+ });
300
+ }
301
+ }
302
+ const remoteRelBySlug = new Map(remote.relationshipTypes.map((r) => [r.slug, r]));
303
+ const desiredRelSlugs = new Set(desired.memorySchema.relationshipTypes.map((r) => r.slug));
304
+ for (const rel of desired.memorySchema.relationshipTypes) {
305
+ rows.push(diffRelationshipType(rel, remoteRelBySlug.get(rel.slug)));
306
+ }
307
+ for (const remoteRel of remote.relationshipTypes) {
308
+ if (!desiredRelSlugs.has(remoteRel.slug)) {
309
+ rows.push({
310
+ kind: "relationship-type",
311
+ verb: "drift",
312
+ id: remoteRel.slug,
313
+ remote: remoteRel,
314
+ });
315
+ }
316
+ }
317
+ }
318
+ const counts = { create: 0, update: 0, noop: 0, drift: 0 };
319
+ for (const row of rows)
320
+ counts[row.verb]++;
321
+ return { rows, counts };
322
+ }
323
+ //# sourceMappingURL=diff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff.js","sourceRoot":"","sources":["../../../../src/commands/_lib/apply/diff.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export interface ConfirmOptions {
2
+ /** Skip the prompt and treat as approved. CI / scripted apply path. */
3
+ yes: boolean;
4
+ /** Plan summary line to show next to the prompt for confirmation context. */
5
+ summaryLine: string;
6
+ }
7
+ /**
8
+ * Block until the user explicitly accepts the plan. `--yes` short-circuits
9
+ * to true. Non-TTY without `--yes` exits with a clear error rather than
10
+ * trying to read from a closed stdin and hanging.
11
+ */
12
+ export declare function confirmPlan(opts: ConfirmOptions): Promise<boolean>;
13
+ //# sourceMappingURL=prompt.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,19 @@
1
+ import { confirm } from "@inquirer/prompts";
2
+ import { ValidationError } from "../../memory/_lib/errors.js";
3
+ /**
4
+ * Block until the user explicitly accepts the plan. `--yes` short-circuits
5
+ * to true. Non-TTY without `--yes` exits with a clear error rather than
6
+ * trying to read from a closed stdin and hanging.
7
+ */
8
+ export async function confirmPlan(opts) {
9
+ if (opts.yes)
10
+ return true;
11
+ if (!process.stdin.isTTY || !process.stdout.isTTY) {
12
+ throw new ValidationError("stdin is not a TTY and --yes was not supplied. Re-run with --yes to apply non-interactively.");
13
+ }
14
+ return confirm({
15
+ message: `Apply plan? (${opts.summaryLine})`,
16
+ default: false,
17
+ });
18
+ }
19
+ //# sourceMappingURL=prompt.js.map
@@ -0,0 +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"}
@@ -0,0 +1,9 @@
1
+ import type { DiffPlan, DiffRow } from "./diff.js";
2
+ /** Emit the plan summary block — what `--dry-run` and the prompt-confirm phase show. */
3
+ export declare function renderPlan(plan: DiffPlan): string;
4
+ export declare function renderSummary(plan: DiffPlan): string;
5
+ /** Apply-time progress line. Mirrors the same prefix as the plan rows. */
6
+ export declare function renderProgress(verb: DiffRow["verb"], kind: DiffRow["kind"], id: string, detail?: string): string;
7
+ /** Required-secrets-missing block. */
8
+ export declare function renderMissingSecrets(missing: string[]): string;
9
+ //# sourceMappingURL=render.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../../../src/commands/_lib/apply/render.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqDnD,wFAAwF;AACxF,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAyBjD;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAKpD;AAED,0EAA0E;AAC1E,wBAAgB,cAAc,CAC5B,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,EACrB,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,EACrB,EAAE,EAAE,MAAM,EACV,MAAM,CAAC,EAAE,MAAM,GACd,MAAM,CAKR;AAED,sCAAsC;AACtC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAkB9D"}
@@ -0,0 +1,92 @@
1
+ import chalk from "chalk";
2
+ const VERB_PREFIX = {
3
+ create: chalk.green("+"),
4
+ update: chalk.yellow("~"),
5
+ noop: chalk.dim("="),
6
+ drift: chalk.cyan("?"),
7
+ };
8
+ const KIND_LABEL = {
9
+ agent: "agent",
10
+ settings: "settings",
11
+ platform: "platform",
12
+ "entity-type": "entity-type",
13
+ "relationship-type": "relationship-type",
14
+ };
15
+ function fieldsList(fields) {
16
+ if (!fields?.length)
17
+ return "";
18
+ return chalk.dim(` (${fields.join(", ")})`);
19
+ }
20
+ function renderRow(row) {
21
+ const prefix = VERB_PREFIX[row.verb];
22
+ const label = chalk.bold(KIND_LABEL[row.kind]);
23
+ const id = row.kind === "platform" ? `${row.agentId}/${row.id}` : row.id;
24
+ const lines = [];
25
+ switch (row.verb) {
26
+ case "create":
27
+ lines.push(` ${prefix} ${label} ${id}`);
28
+ break;
29
+ case "update":
30
+ lines.push(` ${prefix} ${label} ${id}${fieldsList(row.changedFields)}`);
31
+ if (row.kind === "platform" && row.willRestart) {
32
+ lines.push(` ${chalk.yellow("⚠")} will restart platform — in-flight messages may drop`);
33
+ }
34
+ break;
35
+ case "noop":
36
+ lines.push(` ${prefix} ${label} ${id}`);
37
+ break;
38
+ case "drift":
39
+ lines.push(` ${prefix} ${label} ${id} ${chalk.cyan("(drift — ignored in v1, not deleted)")}`);
40
+ break;
41
+ }
42
+ return lines;
43
+ }
44
+ /** Emit the plan summary block — what `--dry-run` and the prompt-confirm phase show. */
45
+ export function renderPlan(plan) {
46
+ const lines = [];
47
+ lines.push(chalk.bold("\nPlan:"));
48
+ // Group rows by kind so the output order is deterministic and readable.
49
+ const order = [
50
+ "agent",
51
+ "settings",
52
+ "platform",
53
+ "entity-type",
54
+ "relationship-type",
55
+ ];
56
+ for (const kind of order) {
57
+ const rowsForKind = plan.rows.filter((row) => row.kind === kind);
58
+ if (rowsForKind.length === 0)
59
+ continue;
60
+ lines.push("");
61
+ lines.push(chalk.bold(` ${KIND_LABEL[kind]}s:`));
62
+ for (const row of rowsForKind) {
63
+ lines.push(...renderRow(row));
64
+ }
65
+ }
66
+ lines.push("");
67
+ lines.push(renderSummary(plan));
68
+ return lines.join("\n");
69
+ }
70
+ export function renderSummary(plan) {
71
+ const { create, update, noop, drift } = plan.counts;
72
+ return chalk.bold(`Summary: ${chalk.green(`${create} create`)}, ${chalk.yellow(`${update} update`)}, ${chalk.dim(`${noop} noop`)}, ${chalk.cyan(`${drift} drift`)}`);
73
+ }
74
+ /** Apply-time progress line. Mirrors the same prefix as the plan rows. */
75
+ export function renderProgress(verb, kind, id, detail) {
76
+ const prefix = VERB_PREFIX[verb];
77
+ const label = chalk.bold(KIND_LABEL[kind]);
78
+ const tail = detail ? chalk.dim(` ${detail}`) : "";
79
+ return ` ${prefix} ${label} ${id}${tail}`;
80
+ }
81
+ /** Required-secrets-missing block. */
82
+ export function renderMissingSecrets(missing) {
83
+ const lines = [
84
+ chalk.red(`\n Missing ${missing.length} required secret${missing.length === 1 ? "" : "s"}:`),
85
+ ];
86
+ for (const name of missing)
87
+ lines.push(chalk.red(` - $${name}`));
88
+ lines.push(chalk.dim("\n These env vars are referenced in lobu.toml but are not set in the current environment."));
89
+ lines.push(chalk.dim(" Set them locally (e.g. via .env) or via your deployment's secret manager and retry."));
90
+ return lines.join("\n");
91
+ }
92
+ //# sourceMappingURL=render.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../../../../src/commands/_lib/apply/render.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ interface AgentCommandOptions {
2
+ context?: string;
3
+ org?: string;
4
+ json?: boolean;
5
+ }
6
+ export declare function agentListCommand(options?: AgentCommandOptions): Promise<void>;
7
+ export declare function agentGetCommand(agentId: string, options?: AgentCommandOptions): Promise<void>;
8
+ export declare function agentCreateCommand(agentId: string, options?: AgentCommandOptions & {
9
+ name?: string;
10
+ description?: string;
11
+ }): Promise<void>;
12
+ export declare function agentUpdateCommand(agentId: string, options?: AgentCommandOptions & {
13
+ name?: string;
14
+ description?: string;
15
+ }): Promise<void>;
16
+ export declare function agentDeleteCommand(agentId: string, options?: AgentCommandOptions & {
17
+ yes?: boolean;
18
+ }): Promise<void>;
19
+ export declare function agentConfigGetCommand(agentId: string, options?: AgentCommandOptions & {
20
+ output?: string;
21
+ }): Promise<void>;
22
+ export declare function agentConfigPatchCommand(agentId: string, options: AgentCommandOptions & {
23
+ file: string;
24
+ json?: boolean;
25
+ }): Promise<void>;
26
+ export {};
27
+ //# sourceMappingURL=agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/commands/agent.ts"],"names":[],"mappings":"AAIA,UAAU,mBAAmB;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAYD,wBAAsB,gBAAgB,CACpC,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,IAAI,CAAC,CA+Bf;AAED,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,IAAI,CAAC,CAMf;AAED,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,mBAAmB,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAO,GAC1E,OAAO,CAAC,IAAI,CAAC,CAcf;AAED,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,mBAAmB,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAO,GAC1E,OAAO,CAAC,IAAI,CAAC,CAuBf;AAED,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,mBAAmB,GAAG;IAAE,GAAG,CAAC,EAAE,OAAO,CAAA;CAAO,GACpD,OAAO,CAAC,IAAI,CAAC,CAQf;AAED,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,mBAAmB,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GACtD,OAAO,CAAC,IAAI,CAAC,CAaf;AAED,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,mBAAmB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAC9D,OAAO,CAAC,IAAI,CAAC,CA+Bf"}