@knowzai/cli 0.3.0 → 0.5.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 (289) hide show
  1. package/README.md +68 -0
  2. package/assets/portable/releases.json +42 -0
  3. package/assets/selfhosted/.env.example +22 -1
  4. package/assets/selfhosted/docker-compose.mssql.yml +113 -0
  5. package/assets/selfhosted/docker-compose.yml +29 -15
  6. package/assets/selfhosted/lmstudio-azure-bridge.mjs +73 -0
  7. package/assets/selfhosted/releases.json +129 -6
  8. package/bin/run.js +2 -0
  9. package/dist/.tsbuildinfo +1 -1
  10. package/dist/base-command.d.ts +2 -0
  11. package/dist/base-command.d.ts.map +1 -1
  12. package/dist/base-command.js +11 -1
  13. package/dist/base-command.js.map +1 -1
  14. package/dist/commands/ask.d.ts.map +1 -1
  15. package/dist/commands/ask.js +2 -0
  16. package/dist/commands/ask.js.map +1 -1
  17. package/dist/commands/backup.d.ts +1 -0
  18. package/dist/commands/backup.d.ts.map +1 -1
  19. package/dist/commands/backup.js +29 -10
  20. package/dist/commands/backup.js.map +1 -1
  21. package/dist/commands/chat.d.ts +2 -1
  22. package/dist/commands/chat.d.ts.map +1 -1
  23. package/dist/commands/chat.js +10 -4
  24. package/dist/commands/chat.js.map +1 -1
  25. package/dist/commands/down.d.ts +14 -27
  26. package/dist/commands/down.d.ts.map +1 -1
  27. package/dist/commands/down.js +6 -31
  28. package/dist/commands/down.js.map +1 -1
  29. package/dist/commands/knowledge/amend.d.ts +2 -2
  30. package/dist/commands/knowledge/amend.d.ts.map +1 -1
  31. package/dist/commands/knowledge/amend.js +5 -0
  32. package/dist/commands/knowledge/amend.js.map +1 -1
  33. package/dist/commands/login.d.ts +4 -0
  34. package/dist/commands/login.d.ts.map +1 -1
  35. package/dist/commands/login.js +21 -2
  36. package/dist/commands/login.js.map +1 -1
  37. package/dist/commands/menu.js +1 -1
  38. package/dist/commands/menu.js.map +1 -1
  39. package/dist/commands/platform/destroy.d.ts +15 -5
  40. package/dist/commands/platform/destroy.d.ts.map +1 -1
  41. package/dist/commands/platform/destroy.js +6 -33
  42. package/dist/commands/platform/destroy.js.map +1 -1
  43. package/dist/commands/platform/doctor.d.ts +18 -3
  44. package/dist/commands/platform/doctor.d.ts.map +1 -1
  45. package/dist/commands/platform/doctor.js +4 -10
  46. package/dist/commands/platform/doctor.js.map +1 -1
  47. package/dist/commands/platform/down.d.ts +15 -15
  48. package/dist/commands/platform/down.d.ts.map +1 -1
  49. package/dist/commands/platform/down.js +4 -8
  50. package/dist/commands/platform/down.js.map +1 -1
  51. package/dist/commands/platform/logs.d.ts +15 -14
  52. package/dist/commands/platform/logs.d.ts.map +1 -1
  53. package/dist/commands/platform/logs.js +5 -16
  54. package/dist/commands/platform/logs.js.map +1 -1
  55. package/dist/commands/platform/reset.d.ts +16 -13
  56. package/dist/commands/platform/reset.d.ts.map +1 -1
  57. package/dist/commands/platform/reset.js +7 -36
  58. package/dist/commands/platform/reset.js.map +1 -1
  59. package/dist/commands/platform/setup.d.ts +1 -0
  60. package/dist/commands/platform/setup.d.ts.map +1 -1
  61. package/dist/commands/platform/setup.js +1 -1
  62. package/dist/commands/platform/setup.js.map +1 -1
  63. package/dist/commands/platform/status.d.ts +14 -16
  64. package/dist/commands/platform/status.d.ts.map +1 -1
  65. package/dist/commands/platform/status.js +4 -29
  66. package/dist/commands/platform/status.js.map +1 -1
  67. package/dist/commands/restore.d.ts +10 -1
  68. package/dist/commands/restore.d.ts.map +1 -1
  69. package/dist/commands/restore.js +56 -13
  70. package/dist/commands/restore.js.map +1 -1
  71. package/dist/commands/runtime/destroy.d.ts +29 -0
  72. package/dist/commands/runtime/destroy.d.ts.map +1 -0
  73. package/dist/commands/runtime/destroy.js +13 -0
  74. package/dist/commands/runtime/destroy.js.map +1 -0
  75. package/dist/commands/runtime/doctor.d.ts +27 -0
  76. package/dist/commands/runtime/doctor.d.ts.map +1 -0
  77. package/dist/commands/runtime/doctor.js +11 -0
  78. package/dist/commands/runtime/doctor.js.map +1 -0
  79. package/dist/commands/runtime/logs.d.ts +28 -0
  80. package/dist/commands/runtime/logs.d.ts.map +1 -0
  81. package/dist/commands/runtime/logs.js +12 -0
  82. package/dist/commands/runtime/logs.js.map +1 -0
  83. package/dist/commands/runtime/status.d.ts +27 -0
  84. package/dist/commands/runtime/status.d.ts.map +1 -0
  85. package/dist/commands/runtime/status.js +11 -0
  86. package/dist/commands/runtime/status.js.map +1 -0
  87. package/dist/commands/runtime/upgrade.d.ts +28 -0
  88. package/dist/commands/runtime/upgrade.d.ts.map +1 -0
  89. package/dist/commands/runtime/upgrade.js +12 -0
  90. package/dist/commands/runtime/upgrade.js.map +1 -0
  91. package/dist/commands/setup.d.ts +1 -0
  92. package/dist/commands/setup.d.ts.map +1 -1
  93. package/dist/commands/setup.js +1 -1
  94. package/dist/commands/transfer.js +1 -1
  95. package/dist/commands/transfer.js.map +1 -1
  96. package/dist/commands/up.d.ts +3 -11
  97. package/dist/commands/up.d.ts.map +1 -1
  98. package/dist/commands/up.js +48 -36
  99. package/dist/commands/up.js.map +1 -1
  100. package/dist/commands/whoami.js +1 -1
  101. package/dist/commands/whoami.js.map +1 -1
  102. package/dist/hooks/init/launch-menu.d.ts.map +1 -1
  103. package/dist/hooks/init/launch-menu.js +2 -0
  104. package/dist/hooks/init/launch-menu.js.map +1 -1
  105. package/dist/lib/anonymous-registry.d.ts +3 -0
  106. package/dist/lib/anonymous-registry.d.ts.map +1 -0
  107. package/dist/lib/anonymous-registry.js +25 -0
  108. package/dist/lib/anonymous-registry.js.map +1 -0
  109. package/dist/lib/async-process.d.ts +15 -0
  110. package/dist/lib/async-process.d.ts.map +1 -0
  111. package/dist/lib/async-process.js +145 -0
  112. package/dist/lib/async-process.js.map +1 -0
  113. package/dist/lib/backup-process.d.ts +4 -0
  114. package/dist/lib/backup-process.d.ts.map +1 -0
  115. package/dist/lib/backup-process.js +20 -0
  116. package/dist/lib/backup-process.js.map +1 -0
  117. package/dist/lib/brand.d.ts +25 -0
  118. package/dist/lib/brand.d.ts.map +1 -0
  119. package/dist/lib/brand.js +105 -0
  120. package/dist/lib/brand.js.map +1 -0
  121. package/dist/lib/chat.d.ts +1 -0
  122. package/dist/lib/chat.d.ts.map +1 -1
  123. package/dist/lib/chat.js +12 -3
  124. package/dist/lib/chat.js.map +1 -1
  125. package/dist/lib/compose-status.d.ts +14 -0
  126. package/dist/lib/compose-status.d.ts.map +1 -0
  127. package/dist/lib/compose-status.js +31 -0
  128. package/dist/lib/compose-status.js.map +1 -0
  129. package/dist/lib/container-engine.js +2 -2
  130. package/dist/lib/container-engine.js.map +1 -1
  131. package/dist/lib/local-engine-context.d.ts +16 -0
  132. package/dist/lib/local-engine-context.d.ts.map +1 -0
  133. package/dist/lib/local-engine-context.js +123 -0
  134. package/dist/lib/local-engine-context.js.map +1 -0
  135. package/dist/lib/login-guided.d.ts.map +1 -1
  136. package/dist/lib/login-guided.js +2 -1
  137. package/dist/lib/login-guided.js.map +1 -1
  138. package/dist/lib/login.d.ts +3 -0
  139. package/dist/lib/login.d.ts.map +1 -1
  140. package/dist/lib/login.js +25 -5
  141. package/dist/lib/login.js.map +1 -1
  142. package/dist/lib/oci-registry-probe.d.ts +43 -0
  143. package/dist/lib/oci-registry-probe.d.ts.map +1 -0
  144. package/dist/lib/oci-registry-probe.js +110 -0
  145. package/dist/lib/oci-registry-probe.js.map +1 -0
  146. package/dist/lib/peer-command.d.ts.map +1 -1
  147. package/dist/lib/peer-command.js +3 -1
  148. package/dist/lib/peer-command.js.map +1 -1
  149. package/dist/lib/platform-acquisition.d.ts +27 -0
  150. package/dist/lib/platform-acquisition.d.ts.map +1 -0
  151. package/dist/lib/platform-acquisition.js +21 -0
  152. package/dist/lib/platform-acquisition.js.map +1 -0
  153. package/dist/lib/platform-backup.d.ts +1 -0
  154. package/dist/lib/platform-backup.d.ts.map +1 -1
  155. package/dist/lib/platform-backup.js +375 -157
  156. package/dist/lib/platform-backup.js.map +1 -1
  157. package/dist/lib/platform-command-shared.d.ts +2 -0
  158. package/dist/lib/platform-command-shared.d.ts.map +1 -1
  159. package/dist/lib/platform-command-shared.js +13 -5
  160. package/dist/lib/platform-command-shared.js.map +1 -1
  161. package/dist/lib/platform-edition.d.ts +3 -6
  162. package/dist/lib/platform-edition.d.ts.map +1 -1
  163. package/dist/lib/platform-edition.js +9 -17
  164. package/dist/lib/platform-edition.js.map +1 -1
  165. package/dist/lib/platform-frontdoor-runtime.d.ts.map +1 -1
  166. package/dist/lib/platform-frontdoor-runtime.js +44 -19
  167. package/dist/lib/platform-frontdoor-runtime.js.map +1 -1
  168. package/dist/lib/platform-frontdoor.d.ts +32 -5
  169. package/dist/lib/platform-frontdoor.d.ts.map +1 -1
  170. package/dist/lib/platform-frontdoor.js +251 -171
  171. package/dist/lib/platform-frontdoor.js.map +1 -1
  172. package/dist/lib/platform-image-admission.d.ts +16 -0
  173. package/dist/lib/platform-image-admission.d.ts.map +1 -0
  174. package/dist/lib/platform-image-admission.js +73 -0
  175. package/dist/lib/platform-image-admission.js.map +1 -0
  176. package/dist/lib/platform-image-source.d.ts.map +1 -1
  177. package/dist/lib/platform-image-source.js +2 -0
  178. package/dist/lib/platform-image-source.js.map +1 -1
  179. package/dist/lib/platform-lifecycle.d.ts +4 -0
  180. package/dist/lib/platform-lifecycle.d.ts.map +1 -1
  181. package/dist/lib/platform-lifecycle.js +42 -8
  182. package/dist/lib/platform-lifecycle.js.map +1 -1
  183. package/dist/lib/platform-onboarding.d.ts +10 -0
  184. package/dist/lib/platform-onboarding.d.ts.map +1 -1
  185. package/dist/lib/platform-onboarding.js +21 -0
  186. package/dist/lib/platform-onboarding.js.map +1 -1
  187. package/dist/lib/platform-preflight.d.ts +6 -3
  188. package/dist/lib/platform-preflight.d.ts.map +1 -1
  189. package/dist/lib/platform-preflight.js +52 -19
  190. package/dist/lib/platform-preflight.js.map +1 -1
  191. package/dist/lib/platform-release-manifest.d.ts +6 -1
  192. package/dist/lib/platform-release-manifest.d.ts.map +1 -1
  193. package/dist/lib/platform-release-manifest.js +10 -0
  194. package/dist/lib/platform-release-manifest.js.map +1 -1
  195. package/dist/lib/platform-runtime.d.ts +5 -2
  196. package/dist/lib/platform-runtime.d.ts.map +1 -1
  197. package/dist/lib/platform-runtime.js +7 -40
  198. package/dist/lib/platform-runtime.js.map +1 -1
  199. package/dist/lib/portable-release-digests.d.ts +5 -0
  200. package/dist/lib/portable-release-digests.d.ts.map +1 -0
  201. package/dist/lib/portable-release-digests.js +53 -0
  202. package/dist/lib/portable-release-digests.js.map +1 -0
  203. package/dist/lib/release-pin-matrix.d.ts +29 -0
  204. package/dist/lib/release-pin-matrix.d.ts.map +1 -0
  205. package/dist/lib/release-pin-matrix.js +67 -0
  206. package/dist/lib/release-pin-matrix.js.map +1 -0
  207. package/dist/lib/runtime-backup-archive.d.ts +20 -0
  208. package/dist/lib/runtime-backup-archive.d.ts.map +1 -0
  209. package/dist/lib/runtime-backup-archive.js +269 -0
  210. package/dist/lib/runtime-backup-archive.js.map +1 -0
  211. package/dist/lib/runtime-command.d.ts +37 -0
  212. package/dist/lib/runtime-command.d.ts.map +1 -0
  213. package/dist/lib/runtime-command.js +50 -0
  214. package/dist/lib/runtime-command.js.map +1 -0
  215. package/dist/lib/runtime-discovery.d.ts +18 -0
  216. package/dist/lib/runtime-discovery.d.ts.map +1 -0
  217. package/dist/lib/runtime-discovery.js +56 -0
  218. package/dist/lib/runtime-discovery.js.map +1 -0
  219. package/dist/lib/runtime-lock.d.ts +3 -0
  220. package/dist/lib/runtime-lock.d.ts.map +1 -0
  221. package/dist/lib/runtime-lock.js +50 -0
  222. package/dist/lib/runtime-lock.js.map +1 -0
  223. package/dist/lib/runtime-operations.d.ts +98 -0
  224. package/dist/lib/runtime-operations.d.ts.map +1 -0
  225. package/dist/lib/runtime-operations.js +182 -0
  226. package/dist/lib/runtime-operations.js.map +1 -0
  227. package/dist/lib/runtime-provider.d.ts +17 -0
  228. package/dist/lib/runtime-provider.d.ts.map +1 -0
  229. package/dist/lib/runtime-provider.js +52 -0
  230. package/dist/lib/runtime-provider.js.map +1 -0
  231. package/dist/lib/runtime-status.d.ts +24 -0
  232. package/dist/lib/runtime-status.d.ts.map +1 -0
  233. package/dist/lib/runtime-status.js +128 -0
  234. package/dist/lib/runtime-status.js.map +1 -0
  235. package/dist/lib/selfhosted-backup.d.ts +37 -0
  236. package/dist/lib/selfhosted-backup.d.ts.map +1 -0
  237. package/dist/lib/selfhosted-backup.js +446 -0
  238. package/dist/lib/selfhosted-backup.js.map +1 -0
  239. package/dist/lib/selfhosted-keyring.d.ts +19 -0
  240. package/dist/lib/selfhosted-keyring.d.ts.map +1 -0
  241. package/dist/lib/selfhosted-keyring.js +193 -0
  242. package/dist/lib/selfhosted-keyring.js.map +1 -0
  243. package/dist/lib/selfhosted-lifecycle.d.ts +66 -10
  244. package/dist/lib/selfhosted-lifecycle.d.ts.map +1 -1
  245. package/dist/lib/selfhosted-lifecycle.js +344 -39
  246. package/dist/lib/selfhosted-lifecycle.js.map +1 -1
  247. package/dist/lib/selfhosted-login.d.ts +34 -0
  248. package/dist/lib/selfhosted-login.d.ts.map +1 -0
  249. package/dist/lib/selfhosted-login.js +116 -0
  250. package/dist/lib/selfhosted-login.js.map +1 -0
  251. package/dist/lib/selfhosted-readiness.d.ts +3 -0
  252. package/dist/lib/selfhosted-readiness.d.ts.map +1 -0
  253. package/dist/lib/selfhosted-readiness.js +24 -0
  254. package/dist/lib/selfhosted-readiness.js.map +1 -0
  255. package/dist/lib/setup-capabilities.d.ts +15 -0
  256. package/dist/lib/setup-capabilities.d.ts.map +1 -0
  257. package/dist/lib/setup-capabilities.js +21 -0
  258. package/dist/lib/setup-capabilities.js.map +1 -0
  259. package/dist/lib/setup-console.d.ts +11 -0
  260. package/dist/lib/setup-console.d.ts.map +1 -1
  261. package/dist/lib/setup-console.js +136 -74
  262. package/dist/lib/setup-console.js.map +1 -1
  263. package/dist/lib/setup-page.d.ts +12 -0
  264. package/dist/lib/setup-page.d.ts.map +1 -1
  265. package/dist/lib/setup-page.js +56 -27
  266. package/dist/lib/setup-page.js.map +1 -1
  267. package/dist/lib/setup-plan.d.ts +1 -0
  268. package/dist/lib/setup-plan.d.ts.map +1 -1
  269. package/dist/lib/setup-plan.js +5 -1
  270. package/dist/lib/setup-plan.js.map +1 -1
  271. package/dist/lib/setup-server.d.ts +11 -2
  272. package/dist/lib/setup-server.d.ts.map +1 -1
  273. package/dist/lib/setup-server.js +150 -26
  274. package/dist/lib/setup-server.js.map +1 -1
  275. package/dist/lib/ui.d.ts +3 -1
  276. package/dist/lib/ui.d.ts.map +1 -1
  277. package/dist/lib/ui.js +39 -7
  278. package/dist/lib/ui.js.map +1 -1
  279. package/dist/lib/up-result.d.ts +3 -0
  280. package/dist/lib/up-result.d.ts.map +1 -1
  281. package/dist/lib/up-result.js.map +1 -1
  282. package/dist/menu/run.js +1 -1
  283. package/dist/menu/run.js.map +1 -1
  284. package/dist/menu/should-launch.d.ts +0 -14
  285. package/dist/menu/should-launch.d.ts.map +1 -1
  286. package/dist/menu/should-launch.js +5 -1
  287. package/dist/menu/should-launch.js.map +1 -1
  288. package/oclif.manifest.json +5052 -2825
  289. package/package.json +12 -9
@@ -1,9 +1,12 @@
1
- import { existsSync } from 'node:fs';
1
+ import { validateSelfHostedSetupOptions } from '../lib/setup-capabilities.js';
2
+ import { discoverRuntime } from '../lib/runtime-discovery.js';
3
+ import { resolveEditionIntent } from '../lib/platform-edition.js';
4
+ import { STABLE_SELFHOSTED_RELEASE } from '../lib/selfhosted-lifecycle.js';
2
5
  import { Flags } from '@oclif/core';
3
6
  import { registerSecret, KnowzError, ExitCode } from '@knowzai/core';
4
7
  import { BaseCommand } from '../base-command.js';
5
8
  import { platformApplyFlags, platformApplyInputFromFlags } from '../lib/platform-command-shared.js';
6
- import { resolvePlatformPaths } from '../lib/platform-runtime.js';
9
+ import { validateStorageMode } from '../lib/platform-runtime.js';
7
10
  import { explicitSetupConsoleIntent, shouldLaunchSetupConsole } from '../lib/up-result.js';
8
11
  import { localProfileNameFor, runFrontDoor, resolveDefaultPortableVersion, } from '../lib/platform-frontdoor.js';
9
12
  import { createPlatformFrontDoorDeps } from '../lib/platform-frontdoor-runtime.js';
@@ -35,14 +38,7 @@ export async function resolveAccountIdentity(nameValue, emailValue, isTty, promp
35
38
  }
36
39
  return { name, email, ageAttested: true };
37
40
  }
38
- /**
39
- * Log sink for the front door. In `--json` mode (`quiet`) this MUST be an
40
- * explicit no-op — NOT `undefined`, because `runFrontDoor`/`runOnboarding` fall
41
- * back to `console.log` on an undefined sink, which would interleave plain-text
42
- * status lines with the single JSON object oclif prints and corrupt the stdout
43
- * envelope (MED-1). Extracted so the binding decision is unit-testable without a
44
- * real Docker boot.
45
- */
41
+ // JSON mode needs an explicit no-op so downstream fallbacks never write progress to stdout.
46
42
  export function frontDoorLogSink(quiet, emit) {
47
43
  return quiet ? () => { } : emit;
48
44
  }
@@ -56,22 +52,22 @@ export function selfServeErrorEnvelope(error) {
56
52
  }
57
53
  /**
58
54
  * `knowz up` — the opinionated one-command front door: pick an AI provider,
59
- * start the portable platform, wait for health, sign a `local` profile in,
60
- * print SuperAdmin creds, and open the dashboard. The orchestration lives in
61
- * `lib/platform-frontdoor.ts` (pure + injectable); this command only parses
55
+ * start the selected edition (public selfhosted by default), wait for health,
56
+ * complete local access, and open the dashboard. `lib/platform-frontdoor.ts`
57
+ * owns injectable orchestration; this command only parses
62
58
  * flags and binds the real side-effect dependencies.
63
59
  */
64
60
  export default class Up extends BaseCommand {
65
- static description = 'One command: pick an AI provider, start the portable Knowz platform, and sign in a local profile.';
61
+ static description = 'Start Knowz with browser setup and a local profile; public selfhosted is the default edition.';
66
62
  static examples = [
67
63
  '<%= config.bin %> up',
68
64
  '<%= config.bin %> up --ui',
69
65
  '<%= config.bin %> up --no-ui --offline',
70
66
  '<%= config.bin %> up --ai azure --azure-endpoint https://example.openai.azure.com --azure-api-key $KEY',
71
- '<%= config.bin %> up --edition selfhosted # public selfhosted images (default without a pull key)',
72
- '<%= config.bin %> up --edition portable # paid portable images (requires GHCR_PULL_TOKEN or entitled install)',
73
- '<%= config.bin %> up --build # build images from a repo checkout instead of pulling',
74
- '<%= config.bin %> up --seed-demo --no-open',
67
+ '<%= config.bin %> up --edition selfhosted # public selfhosted images (default)',
68
+ '<%= config.bin %> up --edition portable # paid portable images (requires an entitled install; GHCR_PULL_TOKEN is registry auth only)',
69
+ '<%= config.bin %> up --edition portable --build # licensed source-checkout build',
70
+ '<%= config.bin %> up --edition portable --seed-demo --no-open',
75
71
  ];
76
72
  static flags = {
77
73
  ...platformApplyFlags,
@@ -112,7 +108,11 @@ export default class Up extends BaseCommand {
112
108
  if (flags['openai-api-key'])
113
109
  registerSecret(flags['openai-api-key']);
114
110
  const base = platformApplyInputFromFlags('up', flags);
115
- base.version = flags.version ?? resolveDefaultPortableVersion(process.env);
111
+ const intent = resolveEditionIntent({ flags: { edition: flags.edition }, env: process.env });
112
+ const existing = discoverRuntime({ name: base.name, configDir: base.configDir, edition: intent.explicit ? intent.edition : undefined });
113
+ const edition = intent.explicit ? intent.edition : existing?.edition ?? 'selfhosted';
114
+ const editionVersion = edition === 'selfhosted' ? process.env.KNOWZ_SELFHOSTED_VERSION : process.env.KNOWZ_PLATFORM_VERSION;
115
+ base.version = flags.version ?? editionVersion ?? existing?.state.version ?? (edition === 'selfhosted' ? STABLE_SELFHOSTED_RELEASE : resolveDefaultPortableVersion(process.env));
116
116
  const store = (await this.authState(flags)).store;
117
117
  const isTty = process.stdin.isTTY === true;
118
118
  const quiet = this.jsonEnabled();
@@ -120,10 +120,6 @@ export default class Up extends BaseCommand {
120
120
  // and --json must keep stdout a single clean envelope).
121
121
  if (isTty && !quiet)
122
122
  this.log(banner(base.version));
123
- // Resolve the optional first-account identity once, up front, so BOTH the
124
- // `--ui` console path and the terminal path apply the same rule: a lone
125
- // `--account-name`/`--account-email` errors (or prompts when interactive)
126
- // instead of being silently dropped (FIX_UpUiLoneAccountFlagError).
127
123
  const identity = await resolveAccountIdentity(flags['account-name'], flags['account-email'], isTty && !quiet, async (message) => {
128
124
  const { input } = await import('@inquirer/prompts');
129
125
  return input({ message });
@@ -131,23 +127,19 @@ export default class Up extends BaseCommand {
131
127
  const { confirm } = await import('@inquirer/prompts');
132
128
  return confirm({ message, default: false });
133
129
  });
134
- // Smoke gap 2: the age-eligibility preflight exists to gate a FRESH
135
- // non-interactive install (which registers an account). A re-up of an
136
- // already-bootstrapped instance performs no registration — its state file
137
- // on disk is the signal — so it must not demand registration flags.
138
- // Lazily evaluated (last in the chain) so flag-satisfied runs never stat.
139
130
  const useSetupConsole = shouldLaunchSetupConsole({
140
131
  ui: flags.ui,
141
132
  json: quiet,
142
133
  isTty,
143
134
  yes: flags.yes,
144
135
  });
145
- if (!identity && !isTty && !useSetupConsole &&
146
- !existsSync(resolvePlatformPaths(base.name, base.configDir).stateFile)) {
136
+ if (edition === 'portable' && !identity && !isTty && !useSetupConsole && !existing) {
147
137
  throw new KnowzError('Non-interactive registration requires --age-13-plus; age eligibility is never assumed.', ExitCode.Usage);
148
138
  }
149
139
  if (useSetupConsole) {
150
140
  const explicitIntent = explicitSetupConsoleIntent(flags, process.env);
141
+ if (edition === 'selfhosted')
142
+ validateSelfHostedSetupOptions({ axes: { ...base.axes } });
151
143
  const completion = await launchSetupConsole({
152
144
  store,
153
145
  cwd: process.cwd(),
@@ -157,26 +149,41 @@ export default class Up extends BaseCommand {
157
149
  open: flags.open,
158
150
  name: flags.name,
159
151
  configDir: flags['config-dir'],
160
- version: explicitIntent.version,
152
+ version: flags.version ?? editionVersion,
161
153
  cliVersion: this.config?.version ?? '0.0.0',
162
- versionExplicit: Boolean(flags.version || process.env.KNOWZ_PLATFORM_VERSION),
154
+ versionExplicit: Boolean(flags.version || editionVersion),
163
155
  provider: explicitIntent.provider,
156
+ providerFlags: { ai: explicitIntent.provider, azure: base.azure, gcp: base.gcp, openAiCompatible: base.openAiCompatible },
157
+ storage: flags.storage ? validateStorageMode(flags.storage) : undefined,
158
+ publicUrls: base.publicUrls,
159
+ orgName: base.orgName,
160
+ superAdminPassphrase: base.superAdminPassphrase,
161
+ seedDemo: flags['seed-demo'],
164
162
  ports: base.ports,
165
163
  components: base.components,
166
164
  imageMode: explicitIntent.imageMode,
167
165
  account: identity,
166
+ edition,
168
167
  });
169
168
  const raw = completion.result;
170
169
  const direct = raw && 'loginMode' in raw ? raw : undefined;
171
170
  const state = direct?.state ?? (raw && 'state' in raw ? raw.state : undefined);
172
171
  if (!state)
173
- throw new Error('Setup console closed before setup completed.');
172
+ throw Object.assign(new Error('Setup console closed before setup completed.'), { exitCode: completion.status === 'closed' ? 130 : 3 });
173
+ const status = direct?.status ?? 'attention-required';
174
+ if (status !== 'complete')
175
+ process.exitCode = 3;
174
176
  if (!quiet) {
175
- this.log(`Knowz is ready. Web: ${state.serviceUrls.web} API: ${state.serviceUrls.api}`);
177
+ this.log(`${status === 'complete' ? 'Knowz is ready' : 'Setup needs attention'}. Web: ${state.serviceUrls.web} API: ${state.serviceUrls.api}`);
178
+ if (direct?.nextAction)
179
+ this.log(direct.nextAction);
176
180
  if (direct?.profile)
177
181
  this.log(`Signed in as CLI profile '${direct.profile}'.`);
178
182
  }
179
183
  return {
184
+ status,
185
+ code: direct?.code,
186
+ nextAction: direct?.nextAction,
180
187
  name: state.name,
181
188
  version: state.version,
182
189
  provider: direct?.provider ?? state.provider,
@@ -202,7 +209,7 @@ export default class Up extends BaseCommand {
202
209
  openAiCompatible: base.openAiCompatible,
203
210
  },
204
211
  imageFlags: { build: flags.build, pull: flags.pull, preloaded: flags.preloaded },
205
- edition: flags.edition,
212
+ edition,
206
213
  seedDemo: flags['seed-demo'] ?? false,
207
214
  open: flags.open,
208
215
  // Smoke gap 1 (lead ruling): per-instance profile — `local` for the
@@ -215,7 +222,7 @@ export default class Up extends BaseCommand {
215
222
  yes: flags.yes,
216
223
  json: quiet,
217
224
  cliVersion: this.config?.version ?? '0.0.0',
218
- versionExplicit: Boolean(flags.version || process.env.KNOWZ_PLATFORM_VERSION),
225
+ versionExplicit: Boolean(flags.version || editionVersion),
219
226
  }, createPlatformFrontDoorDeps({
220
227
  store,
221
228
  cwd: process.cwd(),
@@ -225,11 +232,16 @@ export default class Up extends BaseCommand {
225
232
  validateProvider: effectiveValidate,
226
233
  emit: (line) => this.log(line),
227
234
  }));
235
+ if (result.status !== 'complete')
236
+ process.exitCode = 3;
228
237
  // Make the signed-in profile explicit (gap 1: multi-instance visibility).
229
238
  if (!quiet && result.profile) {
230
239
  this.log(`Signed in as CLI profile '${result.profile}'.`);
231
240
  }
232
241
  return {
242
+ status: result.status,
243
+ code: result.code,
244
+ nextAction: result.nextAction,
233
245
  name: result.state.name,
234
246
  version: result.state.version,
235
247
  provider: result.provider,
@@ -1 +1 @@
1
- {"version":3,"file":"up.js","sourceRoot":"","sources":["../../src/commands/up.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"up.js","sourceRoot":"","sources":["../../src/commands/up.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@ export default class Whoami extends BaseCommand {
10
10
  if (!header)
11
11
  throw new KnowzError('Not logged in. Run `knowz login`.', ExitCode.Auth);
12
12
  enforceTls(auth.apiUrl);
13
- const client = createApiClient({ baseUrl: auth.apiUrl, auth: () => header });
13
+ const client = createApiClient({ baseUrl: auth.apiUrl, dialect: auth.apiDialect, contractVersion: auth.apiContractVersion, auth: () => header });
14
14
  const res = await client.auth.validateKey({ apiKey: header.value });
15
15
  if (!res.isValid)
16
16
  throw new KnowzError('Credentials are no longer valid. Run `knowz login`.', ExitCode.Auth);
@@ -1 +1 @@
1
- {"version":3,"file":"whoami.js","sourceRoot":"","sources":["../../src/commands/whoami.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,WAAW;IAC7C,MAAM,CAAU,WAAW,GAAG,sEAAsE,CAAC;IAErG,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC1C,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,UAAU,CAAC,mCAAmC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;QACtF,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxB,MAAM,MAAM,GAAG,eAAe,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;QAC7E,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QACpE,IAAI,CAAC,GAAG,CAAC,OAAO;YAAE,MAAM,IAAI,UAAU,CAAC,qDAAqD,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC7G,IAAI,IAAI,CAAC,WAAW,EAAE;YAAE,OAAO,GAAG,CAAC;QACnC,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,MAAM,EAAE,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,IAAI,EAAE,KAAK,IAAI,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QAC9D,OAAO,GAAG,CAAC;IACb,CAAC"}
1
+ {"version":3,"file":"whoami.js","sourceRoot":"","sources":["../../src/commands/whoami.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,WAAW;IAC7C,MAAM,CAAU,WAAW,GAAG,sEAAsE,CAAC;IAErG,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC1C,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,UAAU,CAAC,mCAAmC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;QACtF,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxB,MAAM,MAAM,GAAG,eAAe,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,eAAe,EAAE,IAAI,CAAC,kBAAkB,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;QACjJ,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QACpE,IAAI,CAAC,GAAG,CAAC,OAAO;YAAE,MAAM,IAAI,UAAU,CAAC,qDAAqD,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC7G,IAAI,IAAI,CAAC,WAAW,EAAE;YAAE,OAAO,GAAG,CAAC;QACnC,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,MAAM,EAAE,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,IAAI,EAAE,KAAK,IAAI,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QAC9D,OAAO,GAAG,CAAC;IACb,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"launch-menu.d.ts","sourceRoot":"","sources":["../../../src/hooks/init/launch-menu.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAGxC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,MAAM,CAOtB,CAAC;AAEF,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"launch-menu.d.ts","sourceRoot":"","sources":["../../../src/hooks/init/launch-menu.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAIxC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,MAAM,CAQtB,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -1,5 +1,7 @@
1
+ import { applyCliBrandFromProcess } from '../../lib/brand.js';
1
2
  import { shouldLaunchMenu } from '../../menu/should-launch.js';
2
3
  const hook = async function (opts) {
4
+ applyCliBrandFromProcess();
3
5
  const tty = { stdin: Boolean(process.stdin.isTTY), stdout: Boolean(process.stdout.isTTY) };
4
6
  if (!shouldLaunchMenu(opts.id, opts.argv ?? [], tty))
5
7
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"launch-menu.js","sourceRoot":"","sources":["../../../src/hooks/init/launch-menu.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D,MAAM,IAAI,GAAiB,KAAK,WAAW,IAAI;IAC7C,MAAM,GAAG,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;IAC3F,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,GAAG,CAAC;QAAE,OAAO;IAE7D,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACzC,iFAAiF;IACjF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC;AAEF,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"launch-menu.js","sourceRoot":"","sources":["../../../src/hooks/init/launch-menu.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D,MAAM,IAAI,GAAiB,KAAK,WAAW,IAAI;IAC7C,wBAAwB,EAAE,CAAC;IAC3B,MAAM,GAAG,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;IAC3F,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,GAAG,CAAC;QAAE,OAAO;IAE7D,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACzC,iFAAiF;IACjF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -0,0 +1,3 @@
1
+ /** Public image access has no reason to consult a user's private registry or desktop keychain. */
2
+ export declare function withAnonymousRegistry<T>(env: Record<string, string> | undefined, run: (env: Record<string, string>) => Promise<T>): Promise<T>;
3
+ //# sourceMappingURL=anonymous-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anonymous-registry.d.ts","sourceRoot":"","sources":["../../src/lib/anonymous-registry.ts"],"names":[],"mappings":"AAKA,kGAAkG;AAClG,wBAAsB,qBAAqB,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAapJ"}
@@ -0,0 +1,25 @@
1
+ import { readFileSync, rmSync } from 'node:fs';
2
+ import { createPrivateTempDirectory, writePrivateFileAtomic } from '@knowzai/core';
3
+ import { homedir, tmpdir } from 'node:os';
4
+ import { join } from 'node:path';
5
+ /** Public image access has no reason to consult a user's private registry or desktop keychain. */
6
+ export async function withAnonymousRegistry(env, run) {
7
+ const dir = createPrivateTempDirectory(tmpdir(), 'knowz-public-registry-');
8
+ const original = process.env.DOCKER_CONFIG ?? join(homedir(), '.docker');
9
+ let extraDirs = [];
10
+ try {
11
+ const config = JSON.parse(readFileSync(join(original, 'config.json'), 'utf8'));
12
+ if (Array.isArray(config.cliPluginsExtraDirs))
13
+ extraDirs = config.cliPluginsExtraDirs.filter((value) => typeof value === 'string');
14
+ }
15
+ catch { /* Default system/plugin paths remain available. */ }
16
+ try {
17
+ writePrivateFileAtomic(join(dir, 'config.json'), JSON.stringify({ auths: {}, cliPluginsExtraDirs: [...extraDirs, join(original, 'cli-plugins')] }));
18
+ // Podman's authfile follows the same Docker auth JSON shape.
19
+ return await run({ ...env, DOCKER_CONFIG: dir, REGISTRY_AUTH_FILE: join(dir, 'config.json') });
20
+ }
21
+ finally {
22
+ rmSync(dir, { recursive: true, force: true });
23
+ }
24
+ }
25
+ //# sourceMappingURL=anonymous-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anonymous-registry.js","sourceRoot":"","sources":["../../src/lib/anonymous-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACnF,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,kGAAkG;AAClG,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAI,GAAuC,EAAE,GAAgD;IACtI,MAAM,GAAG,GAAG,0BAA0B,CAAC,MAAM,EAAE,EAAE,wBAAwB,CAAC,CAAC;IAC3E,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;IACzE,IAAI,SAAS,GAAa,EAAE,CAAC;IAC7B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,CAAsC,CAAC;QACpH,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC;YAAE,SAAS,GAAG,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC;IACtJ,CAAC;IAAC,MAAM,CAAC,CAAC,mDAAmD,CAAC,CAAC;IAC/D,IAAI,CAAC;QACH,sBAAsB,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,mBAAmB,EAAE,CAAC,GAAG,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpJ,6DAA6D;QAC7D,OAAO,MAAM,GAAG,CAAC,EAAE,GAAG,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,kBAAkB,EAAE,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC;IACjG,CAAC;YAAS,CAAC;QAAC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAAC,CAAC;AAC9D,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { AsyncProcessRunner } from './platform-runtime.js';
2
+ /** Only the child PID/group created by this invocation is eligible for termination. */
3
+ export declare function ownedTerminationTarget(pid: number, force: boolean, platform?: NodeJS.Platform): {
4
+ command: string;
5
+ args: string[];
6
+ group?: undefined;
7
+ signal?: undefined;
8
+ } | {
9
+ group: number;
10
+ signal: "SIGKILL" | "SIGTERM";
11
+ command?: undefined;
12
+ args?: undefined;
13
+ };
14
+ export declare const managedProcessRunner: AsyncProcessRunner;
15
+ //# sourceMappingURL=async-process.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"async-process.d.ts","sourceRoot":"","sources":["../../src/lib/async-process.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAGhE,uFAAuF;AACvF,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,OAAO,EACd,QAAQ,GAAE,MAAM,CAAC,QAA2B;;;;;;;;;;EAM7C;AACD,eAAO,MAAM,oBAAoB,EAAE,kBAqI/B,CAAC"}
@@ -0,0 +1,145 @@
1
+ import { spawn } from 'node:child_process';
2
+ const GRACE_MS = 1000;
3
+ const CLEANUP_DEADLINE_MS = 3000;
4
+ /** Only the child PID/group created by this invocation is eligible for termination. */
5
+ export function ownedTerminationTarget(pid, force, platform = process.platform) {
6
+ if (!Number.isSafeInteger(pid) || pid <= 0)
7
+ throw new Error('Invalid owned process identity.');
8
+ return platform === 'win32'
9
+ ? { command: 'taskkill', args: ['/PID', String(pid), '/T', ...(force ? ['/F'] : [])] }
10
+ : { group: -pid, signal: force ? 'SIGKILL' : 'SIGTERM' };
11
+ }
12
+ export const managedProcessRunner = (command, args, options) => new Promise((resolveResult) => {
13
+ const abortError = () => Object.assign(new Error('Operation canceled after terminating its owned child processes.'), {
14
+ name: 'AbortError',
15
+ code: 'ABORT_ERR',
16
+ });
17
+ if (options.signal?.aborted) {
18
+ resolveResult({ status: null, error: abortError() });
19
+ return;
20
+ }
21
+ let stdout = '', stderr = '';
22
+ let settled = false, canceled = false, closed = false, windowsTreeStopped = false;
23
+ let cleanupFailure;
24
+ let grace;
25
+ let deadline;
26
+ let poll;
27
+ let child;
28
+ try {
29
+ child = spawn(command, [...args], {
30
+ cwd: options.cwd,
31
+ shell: false,
32
+ detached: process.platform !== 'win32',
33
+ env: options.env ? { ...process.env, ...options.env } : undefined,
34
+ stdio: options.input !== undefined ? ['pipe', 'pipe', 'pipe'] : ['inherit', 'pipe', 'pipe'],
35
+ });
36
+ }
37
+ catch (error) {
38
+ resolveResult({ status: null, error: error });
39
+ return;
40
+ }
41
+ const groupAlive = () => {
42
+ if (!child.pid)
43
+ return false;
44
+ try {
45
+ process.kill(-child.pid, 0);
46
+ return true;
47
+ }
48
+ catch (error) {
49
+ return error.code !== 'ESRCH';
50
+ }
51
+ };
52
+ const settle = (status, error) => {
53
+ if (settled)
54
+ return;
55
+ settled = true;
56
+ clearTimeout(grace);
57
+ clearTimeout(deadline);
58
+ clearInterval(poll);
59
+ options.signal?.removeEventListener('abort', abort);
60
+ resolveResult({ status, stdout, stderr, ...(error ? { error } : {}) });
61
+ };
62
+ const finishCancellation = () => {
63
+ if (closed && (process.platform === 'win32' ? windowsTreeStopped : !groupAlive()))
64
+ settle(null, abortError());
65
+ };
66
+ const terminate = (force) => {
67
+ if (!child.pid) {
68
+ windowsTreeStopped = true;
69
+ return;
70
+ }
71
+ const target = ownedTerminationTarget(child.pid, force);
72
+ if ('group' in target) {
73
+ try {
74
+ process.kill(target.group, target.signal);
75
+ }
76
+ catch (error) {
77
+ if (error.code !== 'ESRCH')
78
+ cleanupFailure = error;
79
+ }
80
+ }
81
+ else {
82
+ const killer = spawn(target.command, target.args, {
83
+ shell: false,
84
+ windowsHide: true,
85
+ stdio: 'ignore',
86
+ });
87
+ killer.once('error', (error) => {
88
+ cleanupFailure = error;
89
+ });
90
+ killer.once('close', (status) => {
91
+ windowsTreeStopped ||= status === 0;
92
+ finishCancellation();
93
+ });
94
+ }
95
+ };
96
+ const abort = () => {
97
+ if (settled || canceled)
98
+ return;
99
+ canceled = true;
100
+ terminate(false);
101
+ grace = setTimeout(() => {
102
+ terminate(true);
103
+ finishCancellation();
104
+ }, GRACE_MS);
105
+ poll = setInterval(finishCancellation, 25);
106
+ deadline = setTimeout(() => {
107
+ finishCancellation();
108
+ if (!settled) {
109
+ child.stdin?.destroy();
110
+ child.stdout?.destroy();
111
+ child.stderr?.destroy();
112
+ child.unref();
113
+ settle(null, Object.assign(new Error(`Cancellation could not confirm owned process cleanup${cleanupFailure ? ': OS termination failed' : ''}. Inspect the canceled runtime before retrying.`), { name: 'ProcessCleanupError', code: 'PROCESS_CLEANUP_FAILED' }));
114
+ }
115
+ }, CLEANUP_DEADLINE_MS);
116
+ finishCancellation();
117
+ };
118
+ child.stdout?.setEncoding('utf8');
119
+ child.stderr?.setEncoding('utf8');
120
+ child.stdout?.on('data', (chunk) => {
121
+ stdout = (stdout + chunk).slice(-1_048_576);
122
+ });
123
+ child.stderr?.on('data', (chunk) => {
124
+ stderr = (stderr + chunk).slice(-1_048_576);
125
+ });
126
+ child.once('error', (error) => {
127
+ if (!canceled || !child.pid)
128
+ settle(null, canceled ? abortError() : error);
129
+ });
130
+ child.once('close', (status) => {
131
+ closed = true;
132
+ if (canceled)
133
+ finishCancellation();
134
+ else
135
+ settle(status);
136
+ });
137
+ // A child may exit before consuming a password-stdin payload; do not crash the parent on EPIPE.
138
+ child.stdin?.on('error', () => { });
139
+ if (options.input !== undefined)
140
+ child.stdin?.end(options.input);
141
+ options.signal?.addEventListener('abort', abort, { once: true });
142
+ if (options.signal?.aborted)
143
+ abort();
144
+ });
145
+ //# sourceMappingURL=async-process.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"async-process.js","sourceRoot":"","sources":["../../src/lib/async-process.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { type AsyncProcessRunner } from './platform-runtime.js';
2
+ /** Each subprocess gets an independent deadline so finally recovery can still resume writers. */
3
+ export declare function createBackupProcessRunner(runner?: AsyncProcessRunner, timeoutMs?: number): AsyncProcessRunner;
4
+ //# sourceMappingURL=backup-process.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backup-process.d.ts","sourceRoot":"","sources":["../../src/lib/backup-process.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,KAAK,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAExF,iGAAiG;AACjG,wBAAgB,yBAAyB,CACvC,MAAM,GAAE,kBAA2C,EACnD,SAAS,SAAiB,GACzB,kBAAkB,CAcpB"}
@@ -0,0 +1,20 @@
1
+ import { nodeAsyncProcessRunner } from './platform-runtime.js';
2
+ /** Each subprocess gets an independent deadline so finally recovery can still resume writers. */
3
+ export function createBackupProcessRunner(runner = nodeAsyncProcessRunner, timeoutMs = 30 * 60 * 1000) {
4
+ return async (command, args, options) => {
5
+ const controller = new AbortController();
6
+ const parentAbort = () => controller.abort();
7
+ if (options.signal?.aborted)
8
+ controller.abort();
9
+ options.signal?.addEventListener('abort', parentAbort, { once: true });
10
+ const timer = setTimeout(() => controller.abort(), timeoutMs);
11
+ try {
12
+ return await runner(command, args, { ...options, signal: controller.signal });
13
+ }
14
+ finally {
15
+ clearTimeout(timer);
16
+ options.signal?.removeEventListener('abort', parentAbort);
17
+ }
18
+ };
19
+ }
20
+ //# sourceMappingURL=backup-process.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backup-process.js","sourceRoot":"","sources":["../../src/lib/backup-process.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAA2B,MAAM,uBAAuB,CAAC;AAExF,iGAAiG;AACjG,MAAM,UAAU,yBAAyB,CACvC,SAA6B,sBAAsB,EACnD,SAAS,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAE1B,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;QACtC,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QAC7C,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO;YAAE,UAAU,CAAC,KAAK,EAAE,CAAC;QAChD,OAAO,CAAC,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACvE,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;QAC9D,IAAI,CAAC;YACH,OAAO,MAAM,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;QAChF,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,OAAO,CAAC,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * CLI product brand. Knowz is the default; Here Forever is opt-in via flag,
3
+ * env, or the hereforever wrapper bin. NodeID: CLI_HereForeverBrand
4
+ */
5
+ export type CliBrand = 'knowz' | 'hereforever';
6
+ export declare const BRAND_ENV = "KNOWZ_BRAND";
7
+ export declare const HEREFOREVER_ENV = "HEREFOREVER";
8
+ export declare const HEREFOREVER_PRIMARY = "#3388EB";
9
+ export declare const HEREFOREVER_TAGLINE = "Preserve Your Family's Stories Forever";
10
+ export interface BrandProfile {
11
+ productName: string;
12
+ tagline: string;
13
+ /** null means the Knowz default (chalk.cyan). */
14
+ accentHex: string | null;
15
+ }
16
+ export declare function resolveCliBrand(input?: {
17
+ argv?: string[];
18
+ env?: NodeJS.ProcessEnv;
19
+ invokedName?: string;
20
+ }): CliBrand;
21
+ export declare function applyCliBrandFromProcess(argv?: string[], env?: NodeJS.ProcessEnv, invokedName?: string): CliBrand;
22
+ export declare function brandProfile(brand?: CliBrand): BrandProfile;
23
+ export declare function isBrandOnlyArgv(argv: string[]): boolean;
24
+ export declare function stripBrandFlags(argv: string[]): string[];
25
+ //# sourceMappingURL=brand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brand.d.ts","sourceRoot":"","sources":["../../src/lib/brand.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,aAAa,CAAC;AAE/C,eAAO,MAAM,SAAS,gBAAgB,CAAC;AACvC,eAAO,MAAM,eAAe,gBAAgB,CAAC;AAC7C,eAAO,MAAM,mBAAmB,YAAY,CAAC;AAC7C,eAAO,MAAM,mBAAmB,2CAA2C,CAAC;AAE5E,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAID,wBAAgB,eAAe,CAAC,KAAK,GAAE;IACrC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,QAAQ,CAsBhB;AAED,wBAAgB,wBAAwB,CACtC,IAAI,GAAE,MAAM,EAA0B,EACtC,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,WAAW,GAAE,MAA8B,GAC1C,QAAQ,CAMV;AAED,wBAAgB,YAAY,CAAC,KAAK,GAAE,QAAuC,GAAG,YAAY,CAazF;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAEvD;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAcxD"}