@better-openclaw/core 1.0.24 → 1.0.25

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 (170) hide show
  1. package/dist/addon-stack.cjs +673 -0
  2. package/dist/addon-stack.cjs.map +1 -0
  3. package/dist/addon-stack.d.cts +23 -0
  4. package/dist/addon-stack.d.cts.map +1 -0
  5. package/dist/addon-stack.d.mts +23 -0
  6. package/dist/addon-stack.d.mts.map +1 -0
  7. package/dist/addon-stack.mjs +671 -0
  8. package/dist/addon-stack.mjs.map +1 -0
  9. package/dist/addon-stack.test.cjs +349 -0
  10. package/dist/addon-stack.test.cjs.map +1 -0
  11. package/dist/addon-stack.test.d.cts +1 -0
  12. package/dist/addon-stack.test.d.mts +1 -0
  13. package/dist/addon-stack.test.mjs +349 -0
  14. package/dist/addon-stack.test.mjs.map +1 -0
  15. package/dist/bare-metal-partition.test.cjs +20 -20
  16. package/dist/bare-metal-partition.test.cjs.map +1 -1
  17. package/dist/bare-metal-partition.test.mjs +2 -2
  18. package/dist/composer.cjs +4 -0
  19. package/dist/composer.cjs.map +1 -1
  20. package/dist/composer.d.cts +24 -1
  21. package/dist/composer.d.cts.map +1 -1
  22. package/dist/composer.d.mts +24 -1
  23. package/dist/composer.d.mts.map +1 -1
  24. package/dist/composer.mjs +1 -1
  25. package/dist/composer.mjs.map +1 -1
  26. package/dist/composer.snapshot.test.cjs +20 -20
  27. package/dist/composer.snapshot.test.cjs.map +1 -1
  28. package/dist/composer.snapshot.test.mjs +2 -2
  29. package/dist/composer.test.cjs +53 -53
  30. package/dist/composer.test.cjs.map +1 -1
  31. package/dist/composer.test.mjs +2 -2
  32. package/dist/deployers/strip-host-ports.test.cjs +26 -26
  33. package/dist/deployers/strip-host-ports.test.cjs.map +1 -1
  34. package/dist/deployers/strip-host-ports.test.mjs +1 -1
  35. package/dist/generate.cjs +2 -2
  36. package/dist/generate.mjs +3 -3
  37. package/dist/generate.test.cjs +55 -55
  38. package/dist/generate.test.cjs.map +1 -1
  39. package/dist/generate.test.mjs +1 -1
  40. package/dist/generators/bare-metal-install.test.cjs +18 -18
  41. package/dist/generators/bare-metal-install.test.cjs.map +1 -1
  42. package/dist/generators/bare-metal-install.test.mjs +1 -1
  43. package/dist/generators/caddy.test.cjs +13 -13
  44. package/dist/generators/caddy.test.cjs.map +1 -1
  45. package/dist/generators/caddy.test.mjs +1 -1
  46. package/dist/generators/clone-repos.test.cjs +27 -27
  47. package/dist/generators/clone-repos.test.cjs.map +1 -1
  48. package/dist/generators/clone-repos.test.mjs +1 -1
  49. package/dist/generators/env.test.cjs +17 -17
  50. package/dist/generators/env.test.cjs.map +1 -1
  51. package/dist/generators/env.test.mjs +1 -1
  52. package/dist/generators/health-check.test.cjs +39 -39
  53. package/dist/generators/health-check.test.cjs.map +1 -1
  54. package/dist/generators/health-check.test.mjs +1 -1
  55. package/dist/generators/scripts.test.cjs +39 -39
  56. package/dist/generators/scripts.test.cjs.map +1 -1
  57. package/dist/generators/scripts.test.mjs +1 -1
  58. package/dist/generators/traefik.test.cjs +32 -32
  59. package/dist/generators/traefik.test.cjs.map +1 -1
  60. package/dist/generators/traefik.test.mjs +1 -1
  61. package/dist/index.cjs +20 -4
  62. package/dist/index.d.cts +5 -4
  63. package/dist/index.d.mts +5 -4
  64. package/dist/index.mjs +7 -6
  65. package/dist/migrations.test.cjs +16 -16
  66. package/dist/migrations.test.cjs.map +1 -1
  67. package/dist/migrations.test.mjs +1 -1
  68. package/dist/presets/registry.test.cjs +14 -14
  69. package/dist/presets/registry.test.cjs.map +1 -1
  70. package/dist/presets/registry.test.mjs +1 -1
  71. package/dist/resolver.test.cjs +95 -95
  72. package/dist/resolver.test.cjs.map +1 -1
  73. package/dist/resolver.test.mjs +1 -1
  74. package/dist/{schema-eX44HhRp.d.mts → schema-CKBRu-Rt.d.cts} +295 -2
  75. package/dist/schema-CKBRu-Rt.d.cts.map +1 -0
  76. package/dist/{schema-tn5RK8CM.d.cts → schema-Dn-_Jpb6.d.mts} +295 -2
  77. package/dist/schema-Dn-_Jpb6.d.mts.map +1 -0
  78. package/dist/schema.cjs +138 -1
  79. package/dist/schema.cjs.map +1 -1
  80. package/dist/schema.d.cts +2 -2
  81. package/dist/schema.d.mts +2 -2
  82. package/dist/schema.mjs +130 -2
  83. package/dist/schema.mjs.map +1 -1
  84. package/dist/schema.test.cjs +86 -86
  85. package/dist/schema.test.cjs.map +1 -1
  86. package/dist/schema.test.mjs +1 -1
  87. package/dist/services/definitions/browserless.cjs +4 -1
  88. package/dist/services/definitions/browserless.cjs.map +1 -1
  89. package/dist/services/definitions/browserless.mjs +4 -1
  90. package/dist/services/definitions/browserless.mjs.map +1 -1
  91. package/dist/services/definitions/convex.cjs +43 -1
  92. package/dist/services/definitions/convex.cjs.map +1 -1
  93. package/dist/services/definitions/convex.mjs +43 -1
  94. package/dist/services/definitions/convex.mjs.map +1 -1
  95. package/dist/services/definitions/grafana.cjs +11 -1
  96. package/dist/services/definitions/grafana.cjs.map +1 -1
  97. package/dist/services/definitions/grafana.mjs +11 -1
  98. package/dist/services/definitions/grafana.mjs.map +1 -1
  99. package/dist/services/definitions/meilisearch.cjs +11 -1
  100. package/dist/services/definitions/meilisearch.cjs.map +1 -1
  101. package/dist/services/definitions/meilisearch.mjs +11 -1
  102. package/dist/services/definitions/meilisearch.mjs.map +1 -1
  103. package/dist/services/definitions/minio.cjs +3 -1
  104. package/dist/services/definitions/minio.cjs.map +1 -1
  105. package/dist/services/definitions/minio.mjs +3 -1
  106. package/dist/services/definitions/minio.mjs.map +1 -1
  107. package/dist/services/definitions/n8n.cjs +11 -1
  108. package/dist/services/definitions/n8n.cjs.map +1 -1
  109. package/dist/services/definitions/n8n.mjs +11 -1
  110. package/dist/services/definitions/n8n.mjs.map +1 -1
  111. package/dist/services/definitions/ollama.cjs +3 -1
  112. package/dist/services/definitions/ollama.cjs.map +1 -1
  113. package/dist/services/definitions/ollama.mjs +3 -1
  114. package/dist/services/definitions/ollama.mjs.map +1 -1
  115. package/dist/services/definitions/qdrant.cjs +3 -1
  116. package/dist/services/definitions/qdrant.cjs.map +1 -1
  117. package/dist/services/definitions/qdrant.mjs +3 -1
  118. package/dist/services/definitions/qdrant.mjs.map +1 -1
  119. package/dist/services/definitions/searxng.cjs +8 -1
  120. package/dist/services/definitions/searxng.cjs.map +1 -1
  121. package/dist/services/definitions/searxng.mjs +8 -1
  122. package/dist/services/definitions/searxng.mjs.map +1 -1
  123. package/dist/services/definitions/uptime-kuma.cjs +8 -1
  124. package/dist/services/definitions/uptime-kuma.cjs.map +1 -1
  125. package/dist/services/definitions/uptime-kuma.mjs +8 -1
  126. package/dist/services/definitions/uptime-kuma.mjs.map +1 -1
  127. package/dist/services/registry.test.cjs +36 -36
  128. package/dist/services/registry.test.cjs.map +1 -1
  129. package/dist/services/registry.test.mjs +1 -1
  130. package/dist/{vi.2VT5v0um-C_jmO7m2.mjs → test.CTcmp4Su-ClCHJ3FA.mjs} +6793 -6403
  131. package/dist/test.CTcmp4Su-ClCHJ3FA.mjs.map +1 -0
  132. package/dist/{vi.2VT5v0um-iVBt6Fyq.cjs → test.CTcmp4Su-DlzTarwH.cjs} +6793 -6403
  133. package/dist/test.CTcmp4Su-DlzTarwH.cjs.map +1 -0
  134. package/dist/track-analytics.test.cjs +28 -28
  135. package/dist/track-analytics.test.cjs.map +1 -1
  136. package/dist/track-analytics.test.mjs +1 -1
  137. package/dist/types.cjs.map +1 -1
  138. package/dist/types.d.cts +10 -2
  139. package/dist/types.d.cts.map +1 -1
  140. package/dist/types.d.mts +10 -2
  141. package/dist/types.d.mts.map +1 -1
  142. package/dist/types.mjs.map +1 -1
  143. package/dist/validator.test.cjs +15 -15
  144. package/dist/validator.test.cjs.map +1 -1
  145. package/dist/validator.test.mjs +2 -2
  146. package/dist/version-manager.test.cjs +37 -37
  147. package/dist/version-manager.test.cjs.map +1 -1
  148. package/dist/version-manager.test.mjs +1 -1
  149. package/package.json +4 -4
  150. package/src/__snapshots__/composer.snapshot.test.ts.snap +5 -0
  151. package/src/addon-stack.test.ts +490 -0
  152. package/src/addon-stack.ts +998 -0
  153. package/src/composer.ts +4 -4
  154. package/src/index.ts +20 -2
  155. package/src/schema.ts +183 -0
  156. package/src/services/definitions/browserless.ts +3 -0
  157. package/src/services/definitions/convex.ts +31 -0
  158. package/src/services/definitions/grafana.ts +9 -0
  159. package/src/services/definitions/meilisearch.ts +9 -0
  160. package/src/services/definitions/minio.ts +2 -0
  161. package/src/services/definitions/n8n.ts +9 -0
  162. package/src/services/definitions/ollama.ts +2 -0
  163. package/src/services/definitions/qdrant.ts +2 -0
  164. package/src/services/definitions/searxng.ts +3 -0
  165. package/src/services/definitions/uptime-kuma.ts +3 -0
  166. package/src/types.ts +18 -0
  167. package/dist/schema-eX44HhRp.d.mts.map +0 -1
  168. package/dist/schema-tn5RK8CM.d.cts.map +0 -1
  169. package/dist/vi.2VT5v0um-C_jmO7m2.mjs.map +0 -1
  170. package/dist/vi.2VT5v0um-iVBt6Fyq.cjs.map +0 -1
@@ -1,31 +1,31 @@
1
- const require_vi_2VT5v0um = require("./vi.2VT5v0um-iVBt6Fyq.cjs");
1
+ const require_test_CTcmp4Su = require("./test.CTcmp4Su-DlzTarwH.cjs");
2
2
  const require_services_registry = require("./services/registry.cjs");
3
3
  const require_resolver = require("./resolver.cjs");
4
4
  const require_version_manager = require("./version-manager.cjs");
5
5
  //#region src/version-manager.test.ts
6
- require_vi_2VT5v0um.describe("getImageTag", () => {
7
- require_vi_2VT5v0um.it("returns the tag for a known service", () => {
6
+ require_test_CTcmp4Su.describe("getImageTag", () => {
7
+ require_test_CTcmp4Su.it("returns the tag for a known service", () => {
8
8
  const tag = require_version_manager.getImageTag("redis");
9
- require_vi_2VT5v0um.globalExpect(tag).toBeDefined();
10
- require_vi_2VT5v0um.globalExpect(typeof tag).toBe("string");
9
+ require_test_CTcmp4Su.globalExpect(tag).toBeDefined();
10
+ require_test_CTcmp4Su.globalExpect(typeof tag).toBe("string");
11
11
  });
12
- require_vi_2VT5v0um.it("returns undefined for an unknown service", () => {
13
- require_vi_2VT5v0um.globalExpect(require_version_manager.getImageTag("nonexistent-service-xyz")).toBeUndefined();
12
+ require_test_CTcmp4Su.it("returns undefined for an unknown service", () => {
13
+ require_test_CTcmp4Su.globalExpect(require_version_manager.getImageTag("nonexistent-service-xyz")).toBeUndefined();
14
14
  });
15
15
  });
16
- require_vi_2VT5v0um.describe("getImageReference", () => {
17
- require_vi_2VT5v0um.it("returns image:tag for a known service", () => {
16
+ require_test_CTcmp4Su.describe("getImageReference", () => {
17
+ require_test_CTcmp4Su.it("returns image:tag for a known service", () => {
18
18
  const ref = require_version_manager.getImageReference("redis");
19
- require_vi_2VT5v0um.globalExpect(ref).toBeDefined();
20
- require_vi_2VT5v0um.globalExpect(ref).toContain(":");
21
- require_vi_2VT5v0um.globalExpect(ref).toMatch(/^.+:.+$/);
19
+ require_test_CTcmp4Su.globalExpect(ref).toBeDefined();
20
+ require_test_CTcmp4Su.globalExpect(ref).toContain(":");
21
+ require_test_CTcmp4Su.globalExpect(ref).toMatch(/^.+:.+$/);
22
22
  });
23
- require_vi_2VT5v0um.it("returns undefined for an unknown service", () => {
24
- require_vi_2VT5v0um.globalExpect(require_version_manager.getImageReference("nonexistent-service-xyz")).toBeUndefined();
23
+ require_test_CTcmp4Su.it("returns undefined for an unknown service", () => {
24
+ require_test_CTcmp4Su.globalExpect(require_version_manager.getImageReference("nonexistent-service-xyz")).toBeUndefined();
25
25
  });
26
26
  });
27
- require_vi_2VT5v0um.describe("pinImageTags", () => {
28
- require_vi_2VT5v0um.it("pins image tags from the registry for all services", () => {
27
+ require_test_CTcmp4Su.describe("pinImageTags", () => {
28
+ require_test_CTcmp4Su.it("pins image tags from the registry for all services", () => {
29
29
  const resolved = require_resolver.resolve({
30
30
  services: ["redis", "postgresql"],
31
31
  skillPacks: [],
@@ -34,15 +34,15 @@ require_vi_2VT5v0um.describe("pinImageTags", () => {
34
34
  platform: "linux/amd64"
35
35
  });
36
36
  const pinned = require_version_manager.pinImageTags(resolved);
37
- require_vi_2VT5v0um.globalExpect(pinned.services).toHaveLength(resolved.services.length);
37
+ require_test_CTcmp4Su.globalExpect(pinned.services).toHaveLength(resolved.services.length);
38
38
  for (const svc of pinned.services) {
39
39
  if (svc.definition.gitSource) continue;
40
- require_vi_2VT5v0um.globalExpect(svc.definition.imageTag).toBeDefined();
41
- require_vi_2VT5v0um.globalExpect(typeof svc.definition.imageTag).toBe("string");
42
- require_vi_2VT5v0um.globalExpect(svc.definition.imageTag.length).toBeGreaterThan(0);
40
+ require_test_CTcmp4Su.globalExpect(svc.definition.imageTag).toBeDefined();
41
+ require_test_CTcmp4Su.globalExpect(typeof svc.definition.imageTag).toBe("string");
42
+ require_test_CTcmp4Su.globalExpect(svc.definition.imageTag.length).toBeGreaterThan(0);
43
43
  }
44
44
  });
45
- require_vi_2VT5v0um.it("does not mutate the original resolved output", () => {
45
+ require_test_CTcmp4Su.it("does not mutate the original resolved output", () => {
46
46
  const resolved = require_resolver.resolve({
47
47
  services: ["redis"],
48
48
  skillPacks: [],
@@ -52,9 +52,9 @@ require_vi_2VT5v0um.describe("pinImageTags", () => {
52
52
  });
53
53
  const originalTag = resolved.services.find((s) => s.definition.id === "redis")?.definition.imageTag;
54
54
  require_version_manager.pinImageTags(resolved);
55
- require_vi_2VT5v0um.globalExpect(resolved.services.find((s) => s.definition.id === "redis")?.definition.imageTag).toBe(originalTag);
55
+ require_test_CTcmp4Su.globalExpect(resolved.services.find((s) => s.definition.id === "redis")?.definition.imageTag).toBe(originalTag);
56
56
  });
57
- require_vi_2VT5v0um.it("preserves non-tag properties", () => {
57
+ require_test_CTcmp4Su.it("preserves non-tag properties", () => {
58
58
  const resolved = require_resolver.resolve({
59
59
  services: ["redis"],
60
60
  skillPacks: [],
@@ -64,37 +64,37 @@ require_vi_2VT5v0um.describe("pinImageTags", () => {
64
64
  });
65
65
  const pinned = require_version_manager.pinImageTags(resolved);
66
66
  const redis = pinned.services.find((s) => s.definition.id === "redis");
67
- require_vi_2VT5v0um.globalExpect(redis).toBeDefined();
68
- require_vi_2VT5v0um.globalExpect(redis.definition.name).toBe("Redis");
69
- require_vi_2VT5v0um.globalExpect(pinned.estimatedMemoryMB).toBe(resolved.estimatedMemoryMB);
67
+ require_test_CTcmp4Su.globalExpect(redis).toBeDefined();
68
+ require_test_CTcmp4Su.globalExpect(redis.definition.name).toBe("Redis");
69
+ require_test_CTcmp4Su.globalExpect(pinned.estimatedMemoryMB).toBe(resolved.estimatedMemoryMB);
70
70
  });
71
71
  });
72
- require_vi_2VT5v0um.describe("checkCompatibility", () => {
73
- require_vi_2VT5v0um.it("warns when Redis and Valkey are both selected", () => {
72
+ require_test_CTcmp4Su.describe("checkCompatibility", () => {
73
+ require_test_CTcmp4Su.it("warns when Redis and Valkey are both selected", () => {
74
74
  const all = require_services_registry.getAllServices();
75
75
  const redis = all.find((s) => s.id === "redis");
76
76
  const valkey = all.find((s) => s.id === "valkey");
77
- if (redis && valkey) require_vi_2VT5v0um.globalExpect(require_version_manager.checkCompatibility([redis, valkey]).some((w) => w.message.includes("Redis") && w.message.includes("Valkey"))).toBe(true);
77
+ if (redis && valkey) require_test_CTcmp4Su.globalExpect(require_version_manager.checkCompatibility([redis, valkey]).some((w) => w.message.includes("Redis") && w.message.includes("Valkey"))).toBe(true);
78
78
  });
79
- require_vi_2VT5v0um.it("warns when Caddy and Traefik are both selected", () => {
79
+ require_test_CTcmp4Su.it("warns when Caddy and Traefik are both selected", () => {
80
80
  const all = require_services_registry.getAllServices();
81
81
  const caddy = all.find((s) => s.id === "caddy");
82
82
  const traefik = all.find((s) => s.id === "traefik");
83
- if (caddy && traefik) require_vi_2VT5v0um.globalExpect(require_version_manager.checkCompatibility([caddy, traefik]).some((w) => w.message.includes("Caddy") && w.message.includes("Traefik"))).toBe(true);
83
+ if (caddy && traefik) require_test_CTcmp4Su.globalExpect(require_version_manager.checkCompatibility([caddy, traefik]).some((w) => w.message.includes("Caddy") && w.message.includes("Traefik"))).toBe(true);
84
84
  });
85
- require_vi_2VT5v0um.it("warns about multiple vector databases", () => {
85
+ require_test_CTcmp4Su.it("warns about multiple vector databases", () => {
86
86
  const all = require_services_registry.getAllServices();
87
87
  const qdrant = all.find((s) => s.id === "qdrant");
88
88
  const chromadb = all.find((s) => s.id === "chromadb");
89
- if (qdrant && chromadb) require_vi_2VT5v0um.globalExpect(require_version_manager.checkCompatibility([qdrant, chromadb]).some((w) => w.message.includes("vector database"))).toBe(true);
89
+ if (qdrant && chromadb) require_test_CTcmp4Su.globalExpect(require_version_manager.checkCompatibility([qdrant, chromadb]).some((w) => w.message.includes("vector database"))).toBe(true);
90
90
  });
91
- require_vi_2VT5v0um.it("warns about GPU services", () => {
91
+ require_test_CTcmp4Su.it("warns about GPU services", () => {
92
92
  const gpuService = require_services_registry.getAllServices().find((s) => s.gpuRequired);
93
- if (gpuService) require_vi_2VT5v0um.globalExpect(require_version_manager.checkCompatibility([gpuService]).some((w) => w.message.includes("GPU"))).toBe(true);
93
+ if (gpuService) require_test_CTcmp4Su.globalExpect(require_version_manager.checkCompatibility([gpuService]).some((w) => w.message.includes("GPU"))).toBe(true);
94
94
  });
95
- require_vi_2VT5v0um.it("returns no warnings for a single non-conflicting service", () => {
95
+ require_test_CTcmp4Su.it("returns no warnings for a single non-conflicting service", () => {
96
96
  const redis = require_services_registry.getServiceById("redis");
97
- if (redis) require_vi_2VT5v0um.globalExpect(require_version_manager.checkCompatibility([redis]).filter((w) => w.type === "compatibility" && !w.message.includes("GPU"))).toHaveLength(0);
97
+ if (redis) require_test_CTcmp4Su.globalExpect(require_version_manager.checkCompatibility([redis]).filter((w) => w.type === "compatibility" && !w.message.includes("GPU"))).toHaveLength(0);
98
98
  });
99
99
  });
100
100
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"version-manager.test.cjs","names":["describe","getImageTag","getImageReference","resolve","pinImageTags","getAllServices","checkCompatibility","getServiceById"],"sources":["../src/version-manager.test.ts"],"sourcesContent":["import { describe, expect, it } from \"vitest\";\nimport { resolve } from \"./resolver.js\";\nimport { getAllServices, getServiceById } from \"./services/registry.js\";\nimport {\n\tcheckCompatibility,\n\tgetImageReference,\n\tgetImageTag,\n\tpinImageTags,\n} from \"./version-manager.js\";\n\ndescribe(\"getImageTag\", () => {\n\tit(\"returns the tag for a known service\", () => {\n\t\tconst tag = getImageTag(\"redis\");\n\t\texpect(tag).toBeDefined();\n\t\texpect(typeof tag).toBe(\"string\");\n\t});\n\n\tit(\"returns undefined for an unknown service\", () => {\n\t\texpect(getImageTag(\"nonexistent-service-xyz\")).toBeUndefined();\n\t});\n});\n\ndescribe(\"getImageReference\", () => {\n\tit(\"returns image:tag for a known service\", () => {\n\t\tconst ref = getImageReference(\"redis\");\n\t\texpect(ref).toBeDefined();\n\t\texpect(ref).toContain(\":\");\n\t\texpect(ref).toMatch(/^.+:.+$/);\n\t});\n\n\tit(\"returns undefined for an unknown service\", () => {\n\t\texpect(getImageReference(\"nonexistent-service-xyz\")).toBeUndefined();\n\t});\n});\n\ndescribe(\"pinImageTags\", () => {\n\tit(\"pins image tags from the registry for all services\", () => {\n\t\tconst resolved = resolve({\n\t\t\tservices: [\"redis\", \"postgresql\"],\n\t\t\tskillPacks: [],\n\t\t\tproxy: \"none\",\n\t\t\tgpu: false,\n\t\t\tplatform: \"linux/amd64\",\n\t\t});\n\n\t\tconst pinned = pinImageTags(resolved);\n\n\t\texpect(pinned.services).toHaveLength(resolved.services.length);\n\n\t\tfor (const svc of pinned.services) {\n\t\t\t// Git-based services (e.g., mission-control) don't have imageTag\n\t\t\tif (svc.definition.gitSource) continue;\n\t\t\texpect(svc.definition.imageTag).toBeDefined();\n\t\t\texpect(typeof svc.definition.imageTag).toBe(\"string\");\n\t\t\texpect(svc.definition.imageTag!.length).toBeGreaterThan(0);\n\t\t}\n\t});\n\n\tit(\"does not mutate the original resolved output\", () => {\n\t\tconst resolved = resolve({\n\t\t\tservices: [\"redis\"],\n\t\t\tskillPacks: [],\n\t\t\tproxy: \"none\",\n\t\t\tgpu: false,\n\t\t\tplatform: \"linux/amd64\",\n\t\t});\n\n\t\tconst redis = resolved.services.find((s) => s.definition.id === \"redis\");\n\t\tconst originalTag = redis?.definition.imageTag;\n\t\tpinImageTags(resolved);\n\n\t\tconst redisAfter = resolved.services.find((s) => s.definition.id === \"redis\");\n\t\texpect(redisAfter?.definition.imageTag).toBe(originalTag);\n\t});\n\n\tit(\"preserves non-tag properties\", () => {\n\t\tconst resolved = resolve({\n\t\t\tservices: [\"redis\"],\n\t\t\tskillPacks: [],\n\t\t\tproxy: \"none\",\n\t\t\tgpu: false,\n\t\t\tplatform: \"linux/amd64\",\n\t\t});\n\n\t\tconst pinned = pinImageTags(resolved);\n\t\tconst redis = pinned.services.find((s) => s.definition.id === \"redis\");\n\t\texpect(redis).toBeDefined();\n\t\texpect(redis!.definition.name).toBe(\"Redis\");\n\t\texpect(pinned.estimatedMemoryMB).toBe(resolved.estimatedMemoryMB);\n\t});\n});\n\ndescribe(\"checkCompatibility\", () => {\n\tit(\"warns when Redis and Valkey are both selected\", () => {\n\t\tconst all = getAllServices();\n\t\tconst redis = all.find((s) => s.id === \"redis\");\n\t\tconst valkey = all.find((s) => s.id === \"valkey\");\n\n\t\tif (redis && valkey) {\n\t\t\tconst warnings = checkCompatibility([redis, valkey]);\n\t\t\texpect(\n\t\t\t\twarnings.some((w) => w.message.includes(\"Redis\") && w.message.includes(\"Valkey\")),\n\t\t\t).toBe(true);\n\t\t}\n\t});\n\n\tit(\"warns when Caddy and Traefik are both selected\", () => {\n\t\tconst all = getAllServices();\n\t\tconst caddy = all.find((s) => s.id === \"caddy\");\n\t\tconst traefik = all.find((s) => s.id === \"traefik\");\n\n\t\tif (caddy && traefik) {\n\t\t\tconst warnings = checkCompatibility([caddy, traefik]);\n\t\t\texpect(\n\t\t\t\twarnings.some((w) => w.message.includes(\"Caddy\") && w.message.includes(\"Traefik\")),\n\t\t\t).toBe(true);\n\t\t}\n\t});\n\n\tit(\"warns about multiple vector databases\", () => {\n\t\tconst all = getAllServices();\n\t\tconst qdrant = all.find((s) => s.id === \"qdrant\");\n\t\tconst chromadb = all.find((s) => s.id === \"chromadb\");\n\n\t\tif (qdrant && chromadb) {\n\t\t\tconst warnings = checkCompatibility([qdrant, chromadb]);\n\t\t\texpect(warnings.some((w) => w.message.includes(\"vector database\"))).toBe(true);\n\t\t}\n\t});\n\n\tit(\"warns about GPU services\", () => {\n\t\tconst all = getAllServices();\n\t\tconst gpuService = all.find((s) => s.gpuRequired);\n\n\t\tif (gpuService) {\n\t\t\tconst warnings = checkCompatibility([gpuService]);\n\t\t\texpect(warnings.some((w) => w.message.includes(\"GPU\"))).toBe(true);\n\t\t}\n\t});\n\n\tit(\"returns no warnings for a single non-conflicting service\", () => {\n\t\tconst redis = getServiceById(\"redis\");\n\t\tif (redis) {\n\t\t\tconst warnings = checkCompatibility([redis]);\n\t\t\texpect(\n\t\t\t\twarnings.filter((w) => w.type === \"compatibility\" && !w.message.includes(\"GPU\")),\n\t\t\t).toHaveLength(0);\n\t\t}\n\t});\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"version-manager.test.cjs","names":["describe","getImageTag","getImageReference","resolve","pinImageTags","getAllServices","checkCompatibility","getServiceById"],"sources":["../src/version-manager.test.ts"],"sourcesContent":["import { describe, expect, it } from \"vitest\";\nimport { resolve } from \"./resolver.js\";\nimport { getAllServices, getServiceById } from \"./services/registry.js\";\nimport {\n\tcheckCompatibility,\n\tgetImageReference,\n\tgetImageTag,\n\tpinImageTags,\n} from \"./version-manager.js\";\n\ndescribe(\"getImageTag\", () => {\n\tit(\"returns the tag for a known service\", () => {\n\t\tconst tag = getImageTag(\"redis\");\n\t\texpect(tag).toBeDefined();\n\t\texpect(typeof tag).toBe(\"string\");\n\t});\n\n\tit(\"returns undefined for an unknown service\", () => {\n\t\texpect(getImageTag(\"nonexistent-service-xyz\")).toBeUndefined();\n\t});\n});\n\ndescribe(\"getImageReference\", () => {\n\tit(\"returns image:tag for a known service\", () => {\n\t\tconst ref = getImageReference(\"redis\");\n\t\texpect(ref).toBeDefined();\n\t\texpect(ref).toContain(\":\");\n\t\texpect(ref).toMatch(/^.+:.+$/);\n\t});\n\n\tit(\"returns undefined for an unknown service\", () => {\n\t\texpect(getImageReference(\"nonexistent-service-xyz\")).toBeUndefined();\n\t});\n});\n\ndescribe(\"pinImageTags\", () => {\n\tit(\"pins image tags from the registry for all services\", () => {\n\t\tconst resolved = resolve({\n\t\t\tservices: [\"redis\", \"postgresql\"],\n\t\t\tskillPacks: [],\n\t\t\tproxy: \"none\",\n\t\t\tgpu: false,\n\t\t\tplatform: \"linux/amd64\",\n\t\t});\n\n\t\tconst pinned = pinImageTags(resolved);\n\n\t\texpect(pinned.services).toHaveLength(resolved.services.length);\n\n\t\tfor (const svc of pinned.services) {\n\t\t\t// Git-based services (e.g., mission-control) don't have imageTag\n\t\t\tif (svc.definition.gitSource) continue;\n\t\t\texpect(svc.definition.imageTag).toBeDefined();\n\t\t\texpect(typeof svc.definition.imageTag).toBe(\"string\");\n\t\t\texpect(svc.definition.imageTag!.length).toBeGreaterThan(0);\n\t\t}\n\t});\n\n\tit(\"does not mutate the original resolved output\", () => {\n\t\tconst resolved = resolve({\n\t\t\tservices: [\"redis\"],\n\t\t\tskillPacks: [],\n\t\t\tproxy: \"none\",\n\t\t\tgpu: false,\n\t\t\tplatform: \"linux/amd64\",\n\t\t});\n\n\t\tconst redis = resolved.services.find((s) => s.definition.id === \"redis\");\n\t\tconst originalTag = redis?.definition.imageTag;\n\t\tpinImageTags(resolved);\n\n\t\tconst redisAfter = resolved.services.find((s) => s.definition.id === \"redis\");\n\t\texpect(redisAfter?.definition.imageTag).toBe(originalTag);\n\t});\n\n\tit(\"preserves non-tag properties\", () => {\n\t\tconst resolved = resolve({\n\t\t\tservices: [\"redis\"],\n\t\t\tskillPacks: [],\n\t\t\tproxy: \"none\",\n\t\t\tgpu: false,\n\t\t\tplatform: \"linux/amd64\",\n\t\t});\n\n\t\tconst pinned = pinImageTags(resolved);\n\t\tconst redis = pinned.services.find((s) => s.definition.id === \"redis\");\n\t\texpect(redis).toBeDefined();\n\t\texpect(redis!.definition.name).toBe(\"Redis\");\n\t\texpect(pinned.estimatedMemoryMB).toBe(resolved.estimatedMemoryMB);\n\t});\n});\n\ndescribe(\"checkCompatibility\", () => {\n\tit(\"warns when Redis and Valkey are both selected\", () => {\n\t\tconst all = getAllServices();\n\t\tconst redis = all.find((s) => s.id === \"redis\");\n\t\tconst valkey = all.find((s) => s.id === \"valkey\");\n\n\t\tif (redis && valkey) {\n\t\t\tconst warnings = checkCompatibility([redis, valkey]);\n\t\t\texpect(\n\t\t\t\twarnings.some((w) => w.message.includes(\"Redis\") && w.message.includes(\"Valkey\")),\n\t\t\t).toBe(true);\n\t\t}\n\t});\n\n\tit(\"warns when Caddy and Traefik are both selected\", () => {\n\t\tconst all = getAllServices();\n\t\tconst caddy = all.find((s) => s.id === \"caddy\");\n\t\tconst traefik = all.find((s) => s.id === \"traefik\");\n\n\t\tif (caddy && traefik) {\n\t\t\tconst warnings = checkCompatibility([caddy, traefik]);\n\t\t\texpect(\n\t\t\t\twarnings.some((w) => w.message.includes(\"Caddy\") && w.message.includes(\"Traefik\")),\n\t\t\t).toBe(true);\n\t\t}\n\t});\n\n\tit(\"warns about multiple vector databases\", () => {\n\t\tconst all = getAllServices();\n\t\tconst qdrant = all.find((s) => s.id === \"qdrant\");\n\t\tconst chromadb = all.find((s) => s.id === \"chromadb\");\n\n\t\tif (qdrant && chromadb) {\n\t\t\tconst warnings = checkCompatibility([qdrant, chromadb]);\n\t\t\texpect(warnings.some((w) => w.message.includes(\"vector database\"))).toBe(true);\n\t\t}\n\t});\n\n\tit(\"warns about GPU services\", () => {\n\t\tconst all = getAllServices();\n\t\tconst gpuService = all.find((s) => s.gpuRequired);\n\n\t\tif (gpuService) {\n\t\t\tconst warnings = checkCompatibility([gpuService]);\n\t\t\texpect(warnings.some((w) => w.message.includes(\"GPU\"))).toBe(true);\n\t\t}\n\t});\n\n\tit(\"returns no warnings for a single non-conflicting service\", () => {\n\t\tconst redis = getServiceById(\"redis\");\n\t\tif (redis) {\n\t\t\tconst warnings = checkCompatibility([redis]);\n\t\t\texpect(\n\t\t\t\twarnings.filter((w) => w.type === \"compatibility\" && !w.message.includes(\"GPU\")),\n\t\t\t).toHaveLength(0);\n\t\t}\n\t});\n});\n"],"mappings":";;;;;AAUAA,sBAAAA,SAAS,qBAAqB;AAC7B,uBAAA,GAAG,6CAA6C;EAC/C,MAAM,MAAMC,wBAAAA,YAAY,QAAQ;AAChC,wBAAA,aAAO,IAAI,CAAC,aAAa;AACzB,wBAAA,aAAO,OAAO,IAAI,CAAC,KAAK,SAAS;GAChC;AAEF,uBAAA,GAAG,kDAAkD;AACpD,wBAAA,aAAOA,wBAAAA,YAAY,0BAA0B,CAAC,CAAC,eAAe;GAC7D;EACD;AAEFD,sBAAAA,SAAS,2BAA2B;AACnC,uBAAA,GAAG,+CAA+C;EACjD,MAAM,MAAME,wBAAAA,kBAAkB,QAAQ;AACtC,wBAAA,aAAO,IAAI,CAAC,aAAa;AACzB,wBAAA,aAAO,IAAI,CAAC,UAAU,IAAI;AAC1B,wBAAA,aAAO,IAAI,CAAC,QAAQ,UAAU;GAC7B;AAEF,uBAAA,GAAG,kDAAkD;AACpD,wBAAA,aAAOA,wBAAAA,kBAAkB,0BAA0B,CAAC,CAAC,eAAe;GACnE;EACD;AAEFF,sBAAAA,SAAS,sBAAsB;AAC9B,uBAAA,GAAG,4DAA4D;EAC9D,MAAM,WAAWG,iBAAAA,QAAQ;GACxB,UAAU,CAAC,SAAS,aAAa;GACjC,YAAY,EAAE;GACd,OAAO;GACP,KAAK;GACL,UAAU;GACV,CAAC;EAEF,MAAM,SAASC,wBAAAA,aAAa,SAAS;AAErC,wBAAA,aAAO,OAAO,SAAS,CAAC,aAAa,SAAS,SAAS,OAAO;AAE9D,OAAK,MAAM,OAAO,OAAO,UAAU;AAElC,OAAI,IAAI,WAAW,UAAW;AAC9B,yBAAA,aAAO,IAAI,WAAW,SAAS,CAAC,aAAa;AAC7C,yBAAA,aAAO,OAAO,IAAI,WAAW,SAAS,CAAC,KAAK,SAAS;AACrD,yBAAA,aAAO,IAAI,WAAW,SAAU,OAAO,CAAC,gBAAgB,EAAE;;GAE1D;AAEF,uBAAA,GAAG,sDAAsD;EACxD,MAAM,WAAWD,iBAAAA,QAAQ;GACxB,UAAU,CAAC,QAAQ;GACnB,YAAY,EAAE;GACd,OAAO;GACP,KAAK;GACL,UAAU;GACV,CAAC;EAGF,MAAM,cADQ,SAAS,SAAS,MAAM,MAAM,EAAE,WAAW,OAAO,QAAQ,EAC7C,WAAW;AACtC,0BAAA,aAAa,SAAS;AAGtB,wBAAA,aADmB,SAAS,SAAS,MAAM,MAAM,EAAE,WAAW,OAAO,QAAQ,EAC1D,WAAW,SAAS,CAAC,KAAK,YAAY;GACxD;AAEF,uBAAA,GAAG,sCAAsC;EACxC,MAAM,WAAWA,iBAAAA,QAAQ;GACxB,UAAU,CAAC,QAAQ;GACnB,YAAY,EAAE;GACd,OAAO;GACP,KAAK;GACL,UAAU;GACV,CAAC;EAEF,MAAM,SAASC,wBAAAA,aAAa,SAAS;EACrC,MAAM,QAAQ,OAAO,SAAS,MAAM,MAAM,EAAE,WAAW,OAAO,QAAQ;AACtE,wBAAA,aAAO,MAAM,CAAC,aAAa;AAC3B,wBAAA,aAAO,MAAO,WAAW,KAAK,CAAC,KAAK,QAAQ;AAC5C,wBAAA,aAAO,OAAO,kBAAkB,CAAC,KAAK,SAAS,kBAAkB;GAChE;EACD;AAEFJ,sBAAAA,SAAS,4BAA4B;AACpC,uBAAA,GAAG,uDAAuD;EACzD,MAAM,MAAMK,0BAAAA,gBAAgB;EAC5B,MAAM,QAAQ,IAAI,MAAM,MAAM,EAAE,OAAO,QAAQ;EAC/C,MAAM,SAAS,IAAI,MAAM,MAAM,EAAE,OAAO,SAAS;AAEjD,MAAI,SAAS,OAEZ,uBAAA,aADiBC,wBAAAA,mBAAmB,CAAC,OAAO,OAAO,CAAC,CAE1C,MAAM,MAAM,EAAE,QAAQ,SAAS,QAAQ,IAAI,EAAE,QAAQ,SAAS,SAAS,CAAC,CACjF,CAAC,KAAK,KAAK;GAEZ;AAEF,uBAAA,GAAG,wDAAwD;EAC1D,MAAM,MAAMD,0BAAAA,gBAAgB;EAC5B,MAAM,QAAQ,IAAI,MAAM,MAAM,EAAE,OAAO,QAAQ;EAC/C,MAAM,UAAU,IAAI,MAAM,MAAM,EAAE,OAAO,UAAU;AAEnD,MAAI,SAAS,QAEZ,uBAAA,aADiBC,wBAAAA,mBAAmB,CAAC,OAAO,QAAQ,CAAC,CAE3C,MAAM,MAAM,EAAE,QAAQ,SAAS,QAAQ,IAAI,EAAE,QAAQ,SAAS,UAAU,CAAC,CAClF,CAAC,KAAK,KAAK;GAEZ;AAEF,uBAAA,GAAG,+CAA+C;EACjD,MAAM,MAAMD,0BAAAA,gBAAgB;EAC5B,MAAM,SAAS,IAAI,MAAM,MAAM,EAAE,OAAO,SAAS;EACjD,MAAM,WAAW,IAAI,MAAM,MAAM,EAAE,OAAO,WAAW;AAErD,MAAI,UAAU,SAEb,uBAAA,aADiBC,wBAAAA,mBAAmB,CAAC,QAAQ,SAAS,CAAC,CACvC,MAAM,MAAM,EAAE,QAAQ,SAAS,kBAAkB,CAAC,CAAC,CAAC,KAAK,KAAK;GAE9E;AAEF,uBAAA,GAAG,kCAAkC;EAEpC,MAAM,aADMD,0BAAAA,gBAAgB,CACL,MAAM,MAAM,EAAE,YAAY;AAEjD,MAAI,WAEH,uBAAA,aADiBC,wBAAAA,mBAAmB,CAAC,WAAW,CAAC,CACjC,MAAM,MAAM,EAAE,QAAQ,SAAS,MAAM,CAAC,CAAC,CAAC,KAAK,KAAK;GAElE;AAEF,uBAAA,GAAG,kEAAkE;EACpE,MAAM,QAAQC,0BAAAA,eAAe,QAAQ;AACrC,MAAI,MAEH,uBAAA,aADiBD,wBAAAA,mBAAmB,CAAC,MAAM,CAAC,CAElC,QAAQ,MAAM,EAAE,SAAS,mBAAmB,CAAC,EAAE,QAAQ,SAAS,MAAM,CAAC,CAChF,CAAC,aAAa,EAAE;GAEjB;EACD"}
@@ -1,4 +1,4 @@
1
- import { n as describe, r as it, t as globalExpect } from "./vi.2VT5v0um-C_jmO7m2.mjs";
1
+ import { n as describe, r as it, t as globalExpect } from "./test.CTcmp4Su-ClCHJ3FA.mjs";
2
2
  import { getAllServices, getServiceById } from "./services/registry.mjs";
3
3
  import { resolve } from "./resolver.mjs";
4
4
  import { checkCompatibility, getImageReference, getImageTag, pinImageTags } from "./version-manager.mjs";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@better-openclaw/core",
3
- "version": "1.0.24",
3
+ "version": "1.0.25",
4
4
  "private": false,
5
5
  "description": "Core logic for better-openclaw: schemas, service registry, resolver, composer, validators and generators",
6
6
  "author": "bidew.io <bachir@bidew.io>",
@@ -48,9 +48,9 @@
48
48
  "zod": "^4.3.6"
49
49
  },
50
50
  "devDependencies": {
51
- "@biomejs/biome": "^2.4.4",
52
- "@types/node": "^25.3.3",
53
- "tsdown": "^0.21.0",
51
+ "@biomejs/biome": "^2.4.6",
52
+ "@types/node": "^25.3.5",
53
+ "tsdown": "^0.21.1",
54
54
  "typescript": "^5.9.3",
55
55
  "vitest": "^4.0.18"
56
56
  },
@@ -80,6 +80,7 @@ exports[`compose snapshot tests > creator preset (ffmpeg + remotion + minio + re
80
80
  RUST_LOG: info
81
81
  DISABLE_BEACON: ""
82
82
  CONVEX_SELF_HOSTED_ADMIN_KEY: \${CONVEX_SELF_HOSTED_ADMIN_KEY}
83
+ CONVEX_INSTANCE_SECRET: \${CONVEX_INSTANCE_SECRET}
83
84
  ports:
84
85
  - \${CONVEX_EXTERNAL_PORT_0:-3210}:3210
85
86
  - \${CONVEX_EXTERNAL_PORT_1:-3211}:3211
@@ -296,6 +297,7 @@ exports[`compose snapshot tests > devops preset (n8n + postgresql + redis + moni
296
297
  RUST_LOG: info
297
298
  DISABLE_BEACON: ""
298
299
  CONVEX_SELF_HOSTED_ADMIN_KEY: \${CONVEX_SELF_HOSTED_ADMIN_KEY}
300
+ CONVEX_INSTANCE_SECRET: \${CONVEX_INSTANCE_SECRET}
299
301
  ports:
300
302
  - \${CONVEX_EXTERNAL_PORT_0:-3210}:3210
301
303
  - \${CONVEX_EXTERNAL_PORT_1:-3211}:3211
@@ -706,6 +708,7 @@ exports[`compose snapshot tests > full preset (many services) 1`] = `
706
708
  RUST_LOG: info
707
709
  DISABLE_BEACON: ""
708
710
  CONVEX_SELF_HOSTED_ADMIN_KEY: \${CONVEX_SELF_HOSTED_ADMIN_KEY}
711
+ CONVEX_INSTANCE_SECRET: \${CONVEX_INSTANCE_SECRET}
709
712
  ports:
710
713
  - \${CONVEX_EXTERNAL_PORT_0:-3210}:3210
711
714
  - \${CONVEX_EXTERNAL_PORT_1:-3211}:3211
@@ -1043,6 +1046,7 @@ exports[`compose snapshot tests > minimal preset (redis only) 1`] = `
1043
1046
  RUST_LOG: info
1044
1047
  DISABLE_BEACON: ""
1045
1048
  CONVEX_SELF_HOSTED_ADMIN_KEY: \${CONVEX_SELF_HOSTED_ADMIN_KEY}
1049
+ CONVEX_INSTANCE_SECRET: \${CONVEX_INSTANCE_SECRET}
1046
1050
  ports:
1047
1051
  - \${CONVEX_EXTERNAL_PORT_0:-3210}:3210
1048
1052
  - \${CONVEX_EXTERNAL_PORT_1:-3211}:3211
@@ -1226,6 +1230,7 @@ exports[`compose snapshot tests > researcher preset (qdrant + searxng + browserl
1226
1230
  RUST_LOG: info
1227
1231
  DISABLE_BEACON: ""
1228
1232
  CONVEX_SELF_HOSTED_ADMIN_KEY: \${CONVEX_SELF_HOSTED_ADMIN_KEY}
1233
+ CONVEX_INSTANCE_SECRET: \${CONVEX_INSTANCE_SECRET}
1229
1234
  ports:
1230
1235
  - \${CONVEX_EXTERNAL_PORT_0:-3210}:3210
1231
1236
  - \${CONVEX_EXTERNAL_PORT_1:-3211}:3211