@knowzai/cli 0.4.0 → 0.5.1

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 (298) hide show
  1. package/README.md +68 -0
  2. package/assets/portable/releases.json +66 -2
  3. package/assets/portable/runtime-contract.json +2 -2
  4. package/assets/selfhosted/docker-compose.yml +8 -2
  5. package/assets/selfhosted/releases.json +130 -5
  6. package/bin/run.js +7 -2
  7. package/bin/wasm-runtime.js +27 -0
  8. package/dist/.tsbuildinfo +1 -1
  9. package/dist/base-command.d.ts +2 -0
  10. package/dist/base-command.d.ts.map +1 -1
  11. package/dist/base-command.js +11 -1
  12. package/dist/base-command.js.map +1 -1
  13. package/dist/commands/ask.d.ts.map +1 -1
  14. package/dist/commands/ask.js +2 -0
  15. package/dist/commands/ask.js.map +1 -1
  16. package/dist/commands/backup.d.ts +1 -0
  17. package/dist/commands/backup.d.ts.map +1 -1
  18. package/dist/commands/backup.js +29 -10
  19. package/dist/commands/backup.js.map +1 -1
  20. package/dist/commands/chat.d.ts +2 -1
  21. package/dist/commands/chat.d.ts.map +1 -1
  22. package/dist/commands/chat.js +10 -4
  23. package/dist/commands/chat.js.map +1 -1
  24. package/dist/commands/down.d.ts +14 -27
  25. package/dist/commands/down.d.ts.map +1 -1
  26. package/dist/commands/down.js +6 -31
  27. package/dist/commands/down.js.map +1 -1
  28. package/dist/commands/knowledge/amend.d.ts +2 -2
  29. package/dist/commands/knowledge/amend.d.ts.map +1 -1
  30. package/dist/commands/knowledge/amend.js +5 -0
  31. package/dist/commands/knowledge/amend.js.map +1 -1
  32. package/dist/commands/login.d.ts +4 -0
  33. package/dist/commands/login.d.ts.map +1 -1
  34. package/dist/commands/login.js +21 -2
  35. package/dist/commands/login.js.map +1 -1
  36. package/dist/commands/menu.js +1 -1
  37. package/dist/commands/menu.js.map +1 -1
  38. package/dist/commands/platform/destroy.d.ts +15 -5
  39. package/dist/commands/platform/destroy.d.ts.map +1 -1
  40. package/dist/commands/platform/destroy.js +6 -33
  41. package/dist/commands/platform/destroy.js.map +1 -1
  42. package/dist/commands/platform/doctor.d.ts +18 -3
  43. package/dist/commands/platform/doctor.d.ts.map +1 -1
  44. package/dist/commands/platform/doctor.js +4 -10
  45. package/dist/commands/platform/doctor.js.map +1 -1
  46. package/dist/commands/platform/down.d.ts +15 -15
  47. package/dist/commands/platform/down.d.ts.map +1 -1
  48. package/dist/commands/platform/down.js +4 -8
  49. package/dist/commands/platform/down.js.map +1 -1
  50. package/dist/commands/platform/logs.d.ts +15 -14
  51. package/dist/commands/platform/logs.d.ts.map +1 -1
  52. package/dist/commands/platform/logs.js +5 -16
  53. package/dist/commands/platform/logs.js.map +1 -1
  54. package/dist/commands/platform/reset.d.ts +16 -13
  55. package/dist/commands/platform/reset.d.ts.map +1 -1
  56. package/dist/commands/platform/reset.js +7 -36
  57. package/dist/commands/platform/reset.js.map +1 -1
  58. package/dist/commands/platform/setup.d.ts +1 -0
  59. package/dist/commands/platform/setup.d.ts.map +1 -1
  60. package/dist/commands/platform/setup.js +1 -1
  61. package/dist/commands/platform/setup.js.map +1 -1
  62. package/dist/commands/platform/status.d.ts +14 -16
  63. package/dist/commands/platform/status.d.ts.map +1 -1
  64. package/dist/commands/platform/status.js +4 -29
  65. package/dist/commands/platform/status.js.map +1 -1
  66. package/dist/commands/restore.d.ts +10 -1
  67. package/dist/commands/restore.d.ts.map +1 -1
  68. package/dist/commands/restore.js +56 -13
  69. package/dist/commands/restore.js.map +1 -1
  70. package/dist/commands/runtime/destroy.d.ts +29 -0
  71. package/dist/commands/runtime/destroy.d.ts.map +1 -0
  72. package/dist/commands/runtime/destroy.js +13 -0
  73. package/dist/commands/runtime/destroy.js.map +1 -0
  74. package/dist/commands/runtime/doctor.d.ts +27 -0
  75. package/dist/commands/runtime/doctor.d.ts.map +1 -0
  76. package/dist/commands/runtime/doctor.js +11 -0
  77. package/dist/commands/runtime/doctor.js.map +1 -0
  78. package/dist/commands/runtime/logs.d.ts +28 -0
  79. package/dist/commands/runtime/logs.d.ts.map +1 -0
  80. package/dist/commands/runtime/logs.js +12 -0
  81. package/dist/commands/runtime/logs.js.map +1 -0
  82. package/dist/commands/runtime/status.d.ts +27 -0
  83. package/dist/commands/runtime/status.d.ts.map +1 -0
  84. package/dist/commands/runtime/status.js +11 -0
  85. package/dist/commands/runtime/status.js.map +1 -0
  86. package/dist/commands/runtime/upgrade.d.ts +28 -0
  87. package/dist/commands/runtime/upgrade.d.ts.map +1 -0
  88. package/dist/commands/runtime/upgrade.js +12 -0
  89. package/dist/commands/runtime/upgrade.js.map +1 -0
  90. package/dist/commands/setup.d.ts +1 -0
  91. package/dist/commands/setup.d.ts.map +1 -1
  92. package/dist/commands/setup.js +1 -1
  93. package/dist/commands/transfer.js +1 -1
  94. package/dist/commands/transfer.js.map +1 -1
  95. package/dist/commands/up.d.ts +3 -11
  96. package/dist/commands/up.d.ts.map +1 -1
  97. package/dist/commands/up.js +48 -37
  98. package/dist/commands/up.js.map +1 -1
  99. package/dist/commands/whoami.js +1 -1
  100. package/dist/commands/whoami.js.map +1 -1
  101. package/dist/hooks/init/launch-menu.d.ts.map +1 -1
  102. package/dist/hooks/init/launch-menu.js +2 -0
  103. package/dist/hooks/init/launch-menu.js.map +1 -1
  104. package/dist/lib/anonymous-registry.d.ts +3 -0
  105. package/dist/lib/anonymous-registry.d.ts.map +1 -0
  106. package/dist/lib/anonymous-registry.js +25 -0
  107. package/dist/lib/anonymous-registry.js.map +1 -0
  108. package/dist/lib/async-process.d.ts +15 -0
  109. package/dist/lib/async-process.d.ts.map +1 -0
  110. package/dist/lib/async-process.js +145 -0
  111. package/dist/lib/async-process.js.map +1 -0
  112. package/dist/lib/backup-process.d.ts +4 -0
  113. package/dist/lib/backup-process.d.ts.map +1 -0
  114. package/dist/lib/backup-process.js +20 -0
  115. package/dist/lib/backup-process.js.map +1 -0
  116. package/dist/lib/brand.d.ts +25 -0
  117. package/dist/lib/brand.d.ts.map +1 -0
  118. package/dist/lib/brand.js +105 -0
  119. package/dist/lib/brand.js.map +1 -0
  120. package/dist/lib/chat.d.ts +1 -0
  121. package/dist/lib/chat.d.ts.map +1 -1
  122. package/dist/lib/chat.js +12 -3
  123. package/dist/lib/chat.js.map +1 -1
  124. package/dist/lib/compose-status.d.ts +14 -0
  125. package/dist/lib/compose-status.d.ts.map +1 -0
  126. package/dist/lib/compose-status.js +31 -0
  127. package/dist/lib/compose-status.js.map +1 -0
  128. package/dist/lib/container-engine.js +2 -2
  129. package/dist/lib/container-engine.js.map +1 -1
  130. package/dist/lib/local-engine-context.d.ts +16 -0
  131. package/dist/lib/local-engine-context.d.ts.map +1 -0
  132. package/dist/lib/local-engine-context.js +123 -0
  133. package/dist/lib/local-engine-context.js.map +1 -0
  134. package/dist/lib/local-mcp-server.d.ts.map +1 -1
  135. package/dist/lib/local-mcp-server.js +18 -2
  136. package/dist/lib/local-mcp-server.js.map +1 -1
  137. package/dist/lib/login-guided.d.ts.map +1 -1
  138. package/dist/lib/login-guided.js +2 -1
  139. package/dist/lib/login-guided.js.map +1 -1
  140. package/dist/lib/login.d.ts +3 -0
  141. package/dist/lib/login.d.ts.map +1 -1
  142. package/dist/lib/login.js +25 -5
  143. package/dist/lib/login.js.map +1 -1
  144. package/dist/lib/oci-registry-probe.d.ts +43 -0
  145. package/dist/lib/oci-registry-probe.d.ts.map +1 -0
  146. package/dist/lib/oci-registry-probe.js +110 -0
  147. package/dist/lib/oci-registry-probe.js.map +1 -0
  148. package/dist/lib/peer-command.d.ts.map +1 -1
  149. package/dist/lib/peer-command.js +3 -1
  150. package/dist/lib/peer-command.js.map +1 -1
  151. package/dist/lib/platform-acquisition.d.ts +27 -0
  152. package/dist/lib/platform-acquisition.d.ts.map +1 -0
  153. package/dist/lib/platform-acquisition.js +21 -0
  154. package/dist/lib/platform-acquisition.js.map +1 -0
  155. package/dist/lib/platform-backup.d.ts +1 -0
  156. package/dist/lib/platform-backup.d.ts.map +1 -1
  157. package/dist/lib/platform-backup.js +375 -157
  158. package/dist/lib/platform-backup.js.map +1 -1
  159. package/dist/lib/platform-command-shared.d.ts +2 -0
  160. package/dist/lib/platform-command-shared.d.ts.map +1 -1
  161. package/dist/lib/platform-command-shared.js +13 -5
  162. package/dist/lib/platform-command-shared.js.map +1 -1
  163. package/dist/lib/platform-edition.d.ts +3 -6
  164. package/dist/lib/platform-edition.d.ts.map +1 -1
  165. package/dist/lib/platform-edition.js +9 -17
  166. package/dist/lib/platform-edition.js.map +1 -1
  167. package/dist/lib/platform-frontdoor-runtime.d.ts.map +1 -1
  168. package/dist/lib/platform-frontdoor-runtime.js +42 -10
  169. package/dist/lib/platform-frontdoor-runtime.js.map +1 -1
  170. package/dist/lib/platform-frontdoor.d.ts +32 -5
  171. package/dist/lib/platform-frontdoor.d.ts.map +1 -1
  172. package/dist/lib/platform-frontdoor.js +249 -171
  173. package/dist/lib/platform-frontdoor.js.map +1 -1
  174. package/dist/lib/platform-image-admission.d.ts +16 -0
  175. package/dist/lib/platform-image-admission.d.ts.map +1 -0
  176. package/dist/lib/platform-image-admission.js +73 -0
  177. package/dist/lib/platform-image-admission.js.map +1 -0
  178. package/dist/lib/platform-image-source.d.ts.map +1 -1
  179. package/dist/lib/platform-image-source.js +2 -0
  180. package/dist/lib/platform-image-source.js.map +1 -1
  181. package/dist/lib/platform-lifecycle.d.ts +4 -0
  182. package/dist/lib/platform-lifecycle.d.ts.map +1 -1
  183. package/dist/lib/platform-lifecycle.js +42 -8
  184. package/dist/lib/platform-lifecycle.js.map +1 -1
  185. package/dist/lib/platform-onboarding.d.ts.map +1 -1
  186. package/dist/lib/platform-onboarding.js +1 -1
  187. package/dist/lib/platform-onboarding.js.map +1 -1
  188. package/dist/lib/platform-preflight.d.ts +6 -3
  189. package/dist/lib/platform-preflight.d.ts.map +1 -1
  190. package/dist/lib/platform-preflight.js +52 -19
  191. package/dist/lib/platform-preflight.js.map +1 -1
  192. package/dist/lib/platform-release-manifest.d.ts +6 -1
  193. package/dist/lib/platform-release-manifest.d.ts.map +1 -1
  194. package/dist/lib/platform-release-manifest.js +10 -0
  195. package/dist/lib/platform-release-manifest.js.map +1 -1
  196. package/dist/lib/platform-runtime.d.ts +5 -2
  197. package/dist/lib/platform-runtime.d.ts.map +1 -1
  198. package/dist/lib/platform-runtime.js +7 -40
  199. package/dist/lib/platform-runtime.js.map +1 -1
  200. package/dist/lib/portability-shared.d.ts +1 -1
  201. package/dist/lib/portability-shared.d.ts.map +1 -1
  202. package/dist/lib/portability-shared.js +6 -2
  203. package/dist/lib/portability-shared.js.map +1 -1
  204. package/dist/lib/portable-release-digests.d.ts +5 -0
  205. package/dist/lib/portable-release-digests.d.ts.map +1 -0
  206. package/dist/lib/portable-release-digests.js +53 -0
  207. package/dist/lib/portable-release-digests.js.map +1 -0
  208. package/dist/lib/release-pin-matrix.d.ts +29 -0
  209. package/dist/lib/release-pin-matrix.d.ts.map +1 -0
  210. package/dist/lib/release-pin-matrix.js +67 -0
  211. package/dist/lib/release-pin-matrix.js.map +1 -0
  212. package/dist/lib/repo-local-mcp-backend.d.ts +2 -5
  213. package/dist/lib/repo-local-mcp-backend.d.ts.map +1 -1
  214. package/dist/lib/repo-local-mcp-backend.js +61 -44
  215. package/dist/lib/repo-local-mcp-backend.js.map +1 -1
  216. package/dist/lib/runtime-backup-archive.d.ts +20 -0
  217. package/dist/lib/runtime-backup-archive.d.ts.map +1 -0
  218. package/dist/lib/runtime-backup-archive.js +269 -0
  219. package/dist/lib/runtime-backup-archive.js.map +1 -0
  220. package/dist/lib/runtime-command.d.ts +37 -0
  221. package/dist/lib/runtime-command.d.ts.map +1 -0
  222. package/dist/lib/runtime-command.js +50 -0
  223. package/dist/lib/runtime-command.js.map +1 -0
  224. package/dist/lib/runtime-discovery.d.ts +18 -0
  225. package/dist/lib/runtime-discovery.d.ts.map +1 -0
  226. package/dist/lib/runtime-discovery.js +56 -0
  227. package/dist/lib/runtime-discovery.js.map +1 -0
  228. package/dist/lib/runtime-lock.d.ts +3 -0
  229. package/dist/lib/runtime-lock.d.ts.map +1 -0
  230. package/dist/lib/runtime-lock.js +50 -0
  231. package/dist/lib/runtime-lock.js.map +1 -0
  232. package/dist/lib/runtime-operations.d.ts +98 -0
  233. package/dist/lib/runtime-operations.d.ts.map +1 -0
  234. package/dist/lib/runtime-operations.js +182 -0
  235. package/dist/lib/runtime-operations.js.map +1 -0
  236. package/dist/lib/runtime-provider.d.ts +17 -0
  237. package/dist/lib/runtime-provider.d.ts.map +1 -0
  238. package/dist/lib/runtime-provider.js +52 -0
  239. package/dist/lib/runtime-provider.js.map +1 -0
  240. package/dist/lib/runtime-status.d.ts +24 -0
  241. package/dist/lib/runtime-status.d.ts.map +1 -0
  242. package/dist/lib/runtime-status.js +128 -0
  243. package/dist/lib/runtime-status.js.map +1 -0
  244. package/dist/lib/selfhosted-backup.d.ts +37 -0
  245. package/dist/lib/selfhosted-backup.d.ts.map +1 -0
  246. package/dist/lib/selfhosted-backup.js +446 -0
  247. package/dist/lib/selfhosted-backup.js.map +1 -0
  248. package/dist/lib/selfhosted-keyring.d.ts +19 -0
  249. package/dist/lib/selfhosted-keyring.d.ts.map +1 -0
  250. package/dist/lib/selfhosted-keyring.js +193 -0
  251. package/dist/lib/selfhosted-keyring.js.map +1 -0
  252. package/dist/lib/selfhosted-lifecycle.d.ts +45 -7
  253. package/dist/lib/selfhosted-lifecycle.d.ts.map +1 -1
  254. package/dist/lib/selfhosted-lifecycle.js +214 -31
  255. package/dist/lib/selfhosted-lifecycle.js.map +1 -1
  256. package/dist/lib/selfhosted-login.d.ts +34 -0
  257. package/dist/lib/selfhosted-login.d.ts.map +1 -0
  258. package/dist/lib/selfhosted-login.js +116 -0
  259. package/dist/lib/selfhosted-login.js.map +1 -0
  260. package/dist/lib/selfhosted-readiness.d.ts +3 -0
  261. package/dist/lib/selfhosted-readiness.d.ts.map +1 -0
  262. package/dist/lib/selfhosted-readiness.js +24 -0
  263. package/dist/lib/selfhosted-readiness.js.map +1 -0
  264. package/dist/lib/setup-capabilities.d.ts +15 -0
  265. package/dist/lib/setup-capabilities.d.ts.map +1 -0
  266. package/dist/lib/setup-capabilities.js +21 -0
  267. package/dist/lib/setup-capabilities.js.map +1 -0
  268. package/dist/lib/setup-console.d.ts +8 -0
  269. package/dist/lib/setup-console.d.ts.map +1 -1
  270. package/dist/lib/setup-console.js +104 -74
  271. package/dist/lib/setup-console.js.map +1 -1
  272. package/dist/lib/setup-page.d.ts +12 -0
  273. package/dist/lib/setup-page.d.ts.map +1 -1
  274. package/dist/lib/setup-page.js +40 -22
  275. package/dist/lib/setup-page.js.map +1 -1
  276. package/dist/lib/setup-plan.d.ts +1 -0
  277. package/dist/lib/setup-plan.d.ts.map +1 -1
  278. package/dist/lib/setup-plan.js +3 -0
  279. package/dist/lib/setup-plan.js.map +1 -1
  280. package/dist/lib/setup-server.d.ts +11 -2
  281. package/dist/lib/setup-server.d.ts.map +1 -1
  282. package/dist/lib/setup-server.js +139 -28
  283. package/dist/lib/setup-server.js.map +1 -1
  284. package/dist/lib/ui.d.ts +3 -1
  285. package/dist/lib/ui.d.ts.map +1 -1
  286. package/dist/lib/ui.js +39 -7
  287. package/dist/lib/ui.js.map +1 -1
  288. package/dist/lib/up-result.d.ts +3 -0
  289. package/dist/lib/up-result.d.ts.map +1 -1
  290. package/dist/lib/up-result.js.map +1 -1
  291. package/dist/menu/run.js +1 -1
  292. package/dist/menu/run.js.map +1 -1
  293. package/dist/menu/should-launch.d.ts +0 -14
  294. package/dist/menu/should-launch.d.ts.map +1 -1
  295. package/dist/menu/should-launch.js +5 -1
  296. package/dist/menu/should-launch.js.map +1 -1
  297. package/oclif.manifest.json +5490 -3263
  298. package/package.json +14 -11
@@ -0,0 +1,193 @@
1
+ import { existsSync, lstatSync, readdirSync, rmSync, } from 'node:fs';
2
+ import { join } from 'node:path';
3
+ import { tmpdir } from 'node:os';
4
+ import { KnowzError, ExitCode, createPrivateTempDirectory, ensurePrivateDirectory, protectPrivatePath } from '@knowzai/core';
5
+ import { validateProjectName, } from './platform-runtime.js';
6
+ import { assertLocalEngineContext } from './local-engine-context.js';
7
+ import { withAnonymousRegistry } from './anonymous-registry.js';
8
+ /** Run after public API image acquisition and before first API startup, including fresh runtimes. */
9
+ export async function prepareSelfHostedKeyringVolume(input) {
10
+ validateProjectName(input.name);
11
+ if (!input.image || input.image.startsWith('-') || /\s/.test(input.image))
12
+ throw new KnowzError('A local API image is required to initialize the keyring.', ExitCode.Usage);
13
+ const engine = await assertLocalEngineContext(input.engine, { runner: input.runner });
14
+ const project = `knowz-selfhosted-${input.name}`;
15
+ const volume = `${project}_knowz-protected-keys`;
16
+ const options = {
17
+ cwd: existsSync(input.paths.runtimeDir) ? input.paths.runtimeDir : process.cwd(),
18
+ shell: false,
19
+ env: engine.composeFront?.env,
20
+ };
21
+ for (const args of [
22
+ [
23
+ 'volume',
24
+ 'create',
25
+ '--label',
26
+ `com.docker.compose.project=${project}`,
27
+ '--label',
28
+ 'com.docker.compose.volume=knowz-protected-keys',
29
+ volume,
30
+ ],
31
+ [
32
+ 'run',
33
+ '--rm',
34
+ '--pull',
35
+ 'never',
36
+ '--user',
37
+ '0:0',
38
+ '--entrypoint',
39
+ 'sh',
40
+ '-v',
41
+ `${volume}:/keys`,
42
+ input.image,
43
+ '-c',
44
+ 'chown 1654:1654 /keys && chmod 700 /keys',
45
+ ],
46
+ ]) {
47
+ const result = await input.runner(engine.engine, args, options);
48
+ if (result.status !== 0 || result.error)
49
+ throw new KnowzError('Cannot initialize the private keyring using the local API image. Keep the existing runtime and retry after checking its engine and image.', ExitCode.Usage);
50
+ }
51
+ }
52
+ /** Call while writers are stopped and before replacing the old API container. Secret bytes never enter process output. */
53
+ export async function preserveLegacySelfHostedKeyring(input) {
54
+ validateProjectName(input.name);
55
+ const engine = await assertLocalEngineContext(input.engine, { runner: input.runner });
56
+ const front = engine.composeFront;
57
+ const project = `knowz-selfhosted-${input.name}`;
58
+ const volume = `${project}_knowz-protected-keys`;
59
+ const options = {
60
+ cwd: existsSync(input.paths.runtimeDir) ? input.paths.runtimeDir : process.cwd(),
61
+ shell: false,
62
+ env: front.env,
63
+ };
64
+ const invoke = (args) => args[0] === 'run' && args.includes('alpine:3.21')
65
+ ? withAnonymousRegistry(options.env, async (env) => input.runner(engine.engine, args, { ...options, env }))
66
+ : input.runner(engine.engine, args, options);
67
+ const listed = await input.runner(front.command, [
68
+ ...front.baseArgs,
69
+ '--project-name',
70
+ project,
71
+ '--file',
72
+ input.paths.composeFile,
73
+ '--env-file',
74
+ input.paths.envFile,
75
+ 'ps',
76
+ '--all',
77
+ '--quiet',
78
+ 'api',
79
+ ], options);
80
+ if (listed.status !== 0 || listed.error)
81
+ throw new KnowzError('Cannot inspect the existing API before keyring migration. Keep its container and retry.', ExitCode.Usage);
82
+ const ids = (listed.stdout ?? '').trim().split(/\s+/).filter(Boolean);
83
+ if (!ids.length)
84
+ return { migrated: false, keys: 0, reason: 'No existing API container' };
85
+ if (ids.length !== 1 || !/^[a-f0-9]{12,64}$/.test(ids[0]))
86
+ throw new KnowzError('Existing API container identity is ambiguous; keyring migration refused.', ExitCode.Usage);
87
+ const id = ids[0];
88
+ const inspected = await invoke(['inspect', id, '--format', '{{json .Mounts}}']);
89
+ let mounts;
90
+ try {
91
+ if (inspected.status !== 0 || inspected.error)
92
+ throw new Error();
93
+ mounts = JSON.parse(inspected.stdout ?? '');
94
+ if (!Array.isArray(mounts))
95
+ throw new Error();
96
+ }
97
+ catch {
98
+ throw new KnowzError('Cannot verify the API keyring mount. Keep its container and retry.', ExitCode.Usage);
99
+ }
100
+ const existing = mounts.find((m) => m.Destination === '/data/keys');
101
+ if (existing) {
102
+ if (existing.Name !== volume)
103
+ throw new KnowzError('API keyring uses a different storage mount. Back it up explicitly before replacing this runtime.', ExitCode.Usage);
104
+ // Older published APIs ignore DataProtection__KeysPath even when new Compose mounts
105
+ // /data/keys. Inspect and merge legacy keys before treating that mount as sufficient.
106
+ }
107
+ const running = await invoke(['inspect', id, '--format', '{{json .State.Running}}']);
108
+ if (running.status !== 0 ||
109
+ running.error ||
110
+ !['true', 'false'].includes((running.stdout ?? '').trim()))
111
+ throw new KnowzError('Cannot verify legacy API running state before migration.', ExitCode.Usage);
112
+ const paused = running.stdout?.trim() === 'true';
113
+ const stage = createPrivateTempDirectory(tmpdir(), 'knowz-keyring-');
114
+ const keys = join(stage, 'keys');
115
+ ensurePrivateDirectory(keys);
116
+ try {
117
+ if (paused) {
118
+ const stopped = await invoke(['stop', id]);
119
+ if (stopped.status !== 0 || stopped.error)
120
+ throw new KnowzError('Cannot pause the legacy API safely; migration refused.', ExitCode.Usage);
121
+ }
122
+ let copied = false;
123
+ for (const path of [
124
+ '/home/app/.aspnet/DataProtection-Keys/.',
125
+ '/root/.aspnet/DataProtection-Keys/.',
126
+ ]) {
127
+ const result = await invoke(['cp', `${id}:${path}`, keys]);
128
+ if (result.status === 0 && !result.error) {
129
+ copied = true;
130
+ break;
131
+ }
132
+ if (!/could not find|no such file|does not exist|not found in container/i.test(result.stderr ?? ''))
133
+ throw new KnowzError('Legacy keyring copy failed. Keep the existing API container; resolve its access/engine error before retrying migration.', ExitCode.Usage);
134
+ }
135
+ if (!copied)
136
+ return {
137
+ migrated: false,
138
+ keys: 0,
139
+ reason: 'Legacy keyring not created; preserve any separately managed keys before replacement',
140
+ };
141
+ const files = readdirSync(keys);
142
+ if (files.length > 10000)
143
+ throw new KnowzError('Legacy keyring exceeds supported file count; manual recovery required.', ExitCode.Usage);
144
+ for (const file of files) {
145
+ const path = join(keys, file);
146
+ const stat = lstatSync(path);
147
+ if (!/^(?:key|revocation)-[A-Za-z0-9.-]+\.xml$/.test(file) ||
148
+ !stat.isFile() ||
149
+ stat.isSymbolicLink() ||
150
+ stat.size > 1024 * 1024)
151
+ throw new KnowzError('Legacy keyring contains unexpected files; manual review required before migration.', ExitCode.Usage);
152
+ protectPrivatePath(path);
153
+ }
154
+ if (!files.length)
155
+ return { migrated: false, keys: 0, reason: 'Legacy keyring is empty' };
156
+ const created = await invoke([
157
+ 'volume',
158
+ 'create',
159
+ '--label',
160
+ `com.docker.compose.project=${project}`,
161
+ '--label',
162
+ 'com.docker.compose.volume=knowz-protected-keys',
163
+ volume,
164
+ ]);
165
+ if (created.status !== 0 || created.error)
166
+ throw new KnowzError('Cannot prepare the named keyring volume. Existing keys remain in the API container.', ExitCode.Usage);
167
+ const script = 'set -eu; for f in /legacy/*.xml; do dst="/keys/${f##*/}"; if [ -e "$dst" ] && ! cmp -s "$f" "$dst"; then echo "Conflicting existing keyring file; migration refused" >&2; exit 1; fi; done; for f in /legacy/*.xml; do dst="/keys/${f##*/}"; if [ ! -e "$dst" ]; then cp "$f" "$dst"; fi; chmod 600 "$dst"; chown 1654:1654 "$dst"; done; chown 1654:1654 /keys; chmod 700 /keys';
168
+ const merged = await invoke([
169
+ 'run',
170
+ '--rm',
171
+ '-v',
172
+ `${volume}:/keys`,
173
+ '-v',
174
+ `${keys}:/legacy:ro`,
175
+ 'alpine:3.21',
176
+ 'sh',
177
+ '-c',
178
+ script,
179
+ ]);
180
+ if (merged.status !== 0 || merged.error)
181
+ throw new KnowzError('Keyring migration failed or an existing key conflicts. Keep the original API container and resolve the named volume before retrying.', ExitCode.Usage);
182
+ return { migrated: true, keys: files.length };
183
+ }
184
+ finally {
185
+ rmSync(stage, { recursive: true, force: true });
186
+ if (paused) {
187
+ const resumed = await invoke(['start', id]);
188
+ if (resumed.status !== 0 || resumed.error)
189
+ throw new KnowzError('Keyring migration left the original API container stopped; start the existing container and retry before replacing it.', ExitCode.Usage);
190
+ }
191
+ }
192
+ }
193
+ //# sourceMappingURL=selfhosted-keyring.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selfhosted-keyring.js","sourceRoot":"","sources":["../../src/lib/selfhosted-keyring.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
- import { type PlatformState, type ProcessRunner, type OpenAiCompatibleProviderOptions } from './platform-runtime.js';
1
+ import { type PlatformState, type ProcessRunner, type AsyncProcessRunner, type ProcessResult, type AzureProviderOptions, type OpenAiCompatibleProviderOptions } from './platform-runtime.js';
2
+ import { type EngineStatus } from './container-engine.js';
2
3
  import type { PlatformCommandResult } from './platform-lifecycle.js';
3
- export declare const STABLE_SELFHOSTED_RELEASE = "0.16.0";
4
+ export declare const STABLE_SELFHOSTED_RELEASE = "0.17.0";
4
5
  export declare const SELFHOSTED_SECRET_KEYS: readonly ["POSTGRES_PASSWORD", "SA_PASSWORD", "JWT_SECRET", "ADMIN_PASSWORD", "MCP_SERVICE_KEY"];
5
6
  export interface SelfHostedPaths {
6
7
  root: string;
@@ -23,6 +24,7 @@ export interface SelfHostedPlan {
23
24
  export interface SelfHostedReleaseContract {
24
25
  version: string;
25
26
  status: 'complete';
27
+ digests?: Partial<Record<'api' | 'web' | 'mcp', string>>;
26
28
  runtime: {
27
29
  database: 'postgres' | 'mssql';
28
30
  composeAsset: string;
@@ -30,6 +32,8 @@ export interface SelfHostedReleaseContract {
30
32
  };
31
33
  }
32
34
  export interface SelfHostedState {
35
+ schemaVersion?: 2;
36
+ healthPassed?: boolean;
33
37
  edition: 'selfhosted';
34
38
  name: string;
35
39
  version: string;
@@ -38,6 +42,15 @@ export interface SelfHostedState {
38
42
  web: number;
39
43
  mcp: number;
40
44
  };
45
+ provider?: PlatformState['provider'];
46
+ components?: {
47
+ mcp: boolean;
48
+ publicSite: false;
49
+ };
50
+ engine?: EngineStatus;
51
+ updatedAt?: string;
52
+ database?: 'postgres' | 'mssql';
53
+ images?: Partial<Record<'api' | 'web' | 'mcp', string>>;
41
54
  }
42
55
  export declare function resolveSelfHostedPaths(name: string, configDir?: string): SelfHostedPaths;
43
56
  export declare function resolvePackagedSelfHostedAssetsDir(): string;
@@ -57,9 +70,10 @@ export declare function planSelfHostedDown(name: string, configDir?: string, eng
57
70
  args: string[];
58
71
  paths: SelfHostedPaths;
59
72
  };
60
- export declare function planSelfHostedComposeInvocations(plan: SelfHostedPlan, engine?: string): Array<{
73
+ export declare function planSelfHostedComposeInvocations(plan: SelfHostedPlan, engine?: string | EngineStatus): Array<{
61
74
  command: string;
62
75
  args: string[];
76
+ env?: Record<string, string>;
63
77
  }>;
64
78
  export interface ApplySelfHostedInput {
65
79
  name: string;
@@ -72,6 +86,14 @@ export interface ApplySelfHostedInput {
72
86
  };
73
87
  openAiCompatible?: OpenAiCompatibleProviderOptions;
74
88
  adminPassword?: string;
89
+ provider?: PlatformState['provider'];
90
+ disableAI?: boolean;
91
+ providerSettingsExplicit?: boolean;
92
+ azure?: AzureProviderOptions;
93
+ components?: {
94
+ mcp?: boolean;
95
+ publicSite?: boolean;
96
+ };
75
97
  }
76
98
  export interface ApplySelfHostedDeps {
77
99
  runner?: ProcessRunner;
@@ -81,16 +103,32 @@ export interface ApplySelfHostedDeps {
81
103
  writeFile?: (path: string, contents: string, mode?: number) => void;
82
104
  mkdir?: (path: string) => void;
83
105
  exists?: (path: string) => boolean;
84
- engine?: string;
106
+ engine?: string | EngineStatus;
85
107
  }
86
- export declare function applySelfHosted(input: ApplySelfHostedInput, deps?: ApplySelfHostedDeps): {
108
+ declare function prepareSelfHosted(input: ApplySelfHostedInput, deps?: ApplySelfHostedDeps): {
87
109
  plan: SelfHostedPlan;
88
110
  env: Record<string, string>;
89
111
  state: SelfHostedState;
90
- invocations: Array<{
112
+ invocations: {
91
113
  command: string;
92
114
  args: string[];
93
- }>;
115
+ env?: Record<string, string>;
116
+ }[];
117
+ commit: () => void;
118
+ recordAttempt: (status: "running" | "ready" | "failed" | "canceled", phase?: string) => void;
94
119
  };
120
+ export type SelfHostedApplication = Pick<ReturnType<typeof prepareSelfHosted>, 'plan' | 'env' | 'state' | 'invocations'> & {
121
+ processResults: ProcessResult[];
122
+ };
123
+ /** Synchronous compatibility entry point for embedders. Without a runner it only prepares files. */
124
+ export declare function applySelfHosted(input: ApplySelfHostedInput, deps?: ApplySelfHostedDeps): SelfHostedApplication;
125
+ export interface AsyncSelfHostedDeps extends Omit<ApplySelfHostedDeps, 'runner'> {
126
+ runner?: ProcessRunner | AsyncProcessRunner;
127
+ signal?: AbortSignal;
128
+ waitUntilReady?: (apiUrl: string, signal?: AbortSignal) => Promise<boolean>;
129
+ progress?: (message: string) => void;
130
+ }
131
+ export declare function applySelfHostedAsync(input: ApplySelfHostedInput, deps?: AsyncSelfHostedDeps): Promise<SelfHostedApplication>;
95
132
  export declare function selfHostedToPlatformResult(applied: ReturnType<typeof applySelfHosted>, provider: PlatformState['provider'], now?: () => Date): PlatformCommandResult;
133
+ export {};
96
134
  //# sourceMappingURL=selfhosted-lifecycle.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"selfhosted-lifecycle.d.ts","sourceRoot":"","sources":["../../src/lib/selfhosted-lifecycle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"selfhosted-lifecycle.d.ts","sourceRoot":"","sources":["../../src/lib/selfhosted-lifecycle.ts"],"names":[],"mappings":"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"}