@knowzai/cli 0.1.0 → 0.3.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 (340) hide show
  1. package/assets/portable/.env.example +3 -0
  2. package/assets/portable/docker-compose.yml +18 -0
  3. package/assets/portable/releases.json +22 -0
  4. package/assets/selfhosted/.env.example +19 -0
  5. package/assets/selfhosted/docker-compose.yml +96 -0
  6. package/assets/selfhosted/releases.json +28 -0
  7. package/dist/.tsbuildinfo +1 -1
  8. package/dist/base-command.d.ts +21 -2
  9. package/dist/base-command.d.ts.map +1 -1
  10. package/dist/base-command.js +47 -4
  11. package/dist/base-command.js.map +1 -1
  12. package/dist/commands/ask.d.ts.map +1 -1
  13. package/dist/commands/ask.js +5 -1
  14. package/dist/commands/ask.js.map +1 -1
  15. package/dist/commands/auth/status.d.ts +1 -1
  16. package/dist/commands/auth/status.d.ts.map +1 -1
  17. package/dist/commands/auth/status.js +4 -0
  18. package/dist/commands/auth/status.js.map +1 -1
  19. package/dist/commands/chat.d.ts +5 -0
  20. package/dist/commands/chat.d.ts.map +1 -1
  21. package/dist/commands/chat.js +32 -13
  22. package/dist/commands/chat.js.map +1 -1
  23. package/dist/commands/config/get.d.ts.map +1 -1
  24. package/dist/commands/config/get.js +3 -1
  25. package/dist/commands/config/get.js.map +1 -1
  26. package/dist/commands/config/list.d.ts.map +1 -1
  27. package/dist/commands/config/list.js +12 -4
  28. package/dist/commands/config/list.js.map +1 -1
  29. package/dist/commands/doctor.js +1 -1
  30. package/dist/commands/doctor.js.map +1 -1
  31. package/dist/commands/down.d.ts +9 -0
  32. package/dist/commands/down.d.ts.map +1 -1
  33. package/dist/commands/down.js +16 -1
  34. package/dist/commands/down.js.map +1 -1
  35. package/dist/commands/export.d.ts +27 -0
  36. package/dist/commands/export.d.ts.map +1 -0
  37. package/dist/commands/export.js +155 -0
  38. package/dist/commands/export.js.map +1 -0
  39. package/dist/commands/import.d.ts +27 -0
  40. package/dist/commands/import.d.ts.map +1 -0
  41. package/dist/commands/import.js +124 -0
  42. package/dist/commands/import.js.map +1 -0
  43. package/dist/commands/index/scan.d.ts.map +1 -1
  44. package/dist/commands/index/scan.js +24 -5
  45. package/dist/commands/index/scan.js.map +1 -1
  46. package/dist/commands/knowledge/amend.d.ts +1 -0
  47. package/dist/commands/knowledge/amend.d.ts.map +1 -1
  48. package/dist/commands/knowledge/amend.js +11 -2
  49. package/dist/commands/knowledge/amend.js.map +1 -1
  50. package/dist/commands/knowledge/attach.d.ts +19 -0
  51. package/dist/commands/knowledge/attach.d.ts.map +1 -0
  52. package/dist/commands/knowledge/attach.js +51 -0
  53. package/dist/commands/knowledge/attach.js.map +1 -0
  54. package/dist/commands/knowledge/create.d.ts +9 -1
  55. package/dist/commands/knowledge/create.d.ts.map +1 -1
  56. package/dist/commands/knowledge/create.js +26 -4
  57. package/dist/commands/knowledge/create.js.map +1 -1
  58. package/dist/commands/knowledge/update.d.ts +1 -0
  59. package/dist/commands/knowledge/update.d.ts.map +1 -1
  60. package/dist/commands/knowledge/update.js +4 -1
  61. package/dist/commands/knowledge/update.js.map +1 -1
  62. package/dist/commands/login.d.ts +19 -3
  63. package/dist/commands/login.d.ts.map +1 -1
  64. package/dist/commands/login.js +113 -64
  65. package/dist/commands/login.js.map +1 -1
  66. package/dist/commands/logout.d.ts +2 -0
  67. package/dist/commands/logout.d.ts.map +1 -1
  68. package/dist/commands/logout.js +35 -1
  69. package/dist/commands/logout.js.map +1 -1
  70. package/dist/commands/mcp/serve.d.ts +16 -0
  71. package/dist/commands/mcp/serve.d.ts.map +1 -0
  72. package/dist/commands/mcp/serve.js +50 -0
  73. package/dist/commands/mcp/serve.js.map +1 -0
  74. package/dist/commands/menu.d.ts.map +1 -1
  75. package/dist/commands/menu.js +39 -3
  76. package/dist/commands/menu.js.map +1 -1
  77. package/dist/commands/peer/accept-fingerprint.d.ts +17 -0
  78. package/dist/commands/peer/accept-fingerprint.d.ts.map +1 -0
  79. package/dist/commands/peer/accept-fingerprint.js +35 -0
  80. package/dist/commands/peer/accept-fingerprint.js.map +1 -0
  81. package/dist/commands/peer/add.d.ts +22 -0
  82. package/dist/commands/peer/add.d.ts.map +1 -0
  83. package/dist/commands/peer/add.js +44 -0
  84. package/dist/commands/peer/add.js.map +1 -0
  85. package/dist/commands/peer/cancel.d.ts +13 -0
  86. package/dist/commands/peer/cancel.d.ts.map +1 -0
  87. package/dist/commands/peer/cancel.js +20 -0
  88. package/dist/commands/peer/cancel.js.map +1 -0
  89. package/dist/commands/peer/link.d.ts +16 -0
  90. package/dist/commands/peer/link.d.ts.map +1 -0
  91. package/dist/commands/peer/link.js +32 -0
  92. package/dist/commands/peer/link.js.map +1 -0
  93. package/dist/commands/peer/links.d.ts +12 -0
  94. package/dist/commands/peer/links.d.ts.map +1 -0
  95. package/dist/commands/peer/links.js +25 -0
  96. package/dist/commands/peer/links.js.map +1 -0
  97. package/dist/commands/peer/list.d.ts +10 -0
  98. package/dist/commands/peer/list.d.ts.map +1 -0
  99. package/dist/commands/peer/list.js +22 -0
  100. package/dist/commands/peer/list.js.map +1 -0
  101. package/dist/commands/peer/pull.d.ts +19 -0
  102. package/dist/commands/peer/pull.d.ts.map +1 -0
  103. package/dist/commands/peer/pull.js +30 -0
  104. package/dist/commands/peer/pull.js.map +1 -0
  105. package/dist/commands/peer/push.d.ts +19 -0
  106. package/dist/commands/peer/push.d.ts.map +1 -0
  107. package/dist/commands/peer/push.js +30 -0
  108. package/dist/commands/peer/push.js.map +1 -0
  109. package/dist/commands/peer/remove.d.ts +12 -0
  110. package/dist/commands/peer/remove.d.ts.map +1 -0
  111. package/dist/commands/peer/remove.js +19 -0
  112. package/dist/commands/peer/remove.js.map +1 -0
  113. package/dist/commands/peer/rotate-key.d.ts +14 -0
  114. package/dist/commands/peer/rotate-key.d.ts.map +1 -0
  115. package/dist/commands/peer/rotate-key.js +26 -0
  116. package/dist/commands/peer/rotate-key.js.map +1 -0
  117. package/dist/commands/peer/run.d.ts +13 -0
  118. package/dist/commands/peer/run.d.ts.map +1 -0
  119. package/dist/commands/peer/run.js +31 -0
  120. package/dist/commands/peer/run.js.map +1 -0
  121. package/dist/commands/peer/runs.d.ts +15 -0
  122. package/dist/commands/peer/runs.d.ts.map +1 -0
  123. package/dist/commands/peer/runs.js +32 -0
  124. package/dist/commands/peer/runs.js.map +1 -0
  125. package/dist/commands/peer/test.d.ts +13 -0
  126. package/dist/commands/peer/test.d.ts.map +1 -0
  127. package/dist/commands/peer/test.js +30 -0
  128. package/dist/commands/peer/test.js.map +1 -0
  129. package/dist/commands/peer/unlink.d.ts +13 -0
  130. package/dist/commands/peer/unlink.d.ts.map +1 -0
  131. package/dist/commands/peer/unlink.js +20 -0
  132. package/dist/commands/peer/unlink.js.map +1 -0
  133. package/dist/commands/pg/status.d.ts.map +1 -1
  134. package/dist/commands/pg/status.js +6 -3
  135. package/dist/commands/pg/status.js.map +1 -1
  136. package/dist/commands/pg/up.d.ts.map +1 -1
  137. package/dist/commands/pg/up.js +9 -4
  138. package/dist/commands/pg/up.js.map +1 -1
  139. package/dist/commands/platform/status.d.ts.map +1 -1
  140. package/dist/commands/platform/status.js +4 -4
  141. package/dist/commands/platform/status.js.map +1 -1
  142. package/dist/commands/profile/purge.d.ts +20 -0
  143. package/dist/commands/profile/purge.d.ts.map +1 -0
  144. package/dist/commands/profile/purge.js +43 -0
  145. package/dist/commands/profile/purge.js.map +1 -0
  146. package/dist/commands/repo/context.d.ts.map +1 -1
  147. package/dist/commands/repo/context.js +3 -1
  148. package/dist/commands/repo/context.js.map +1 -1
  149. package/dist/commands/repo/graph.d.ts +3 -6
  150. package/dist/commands/repo/graph.d.ts.map +1 -1
  151. package/dist/commands/repo/graph.js +24 -40
  152. package/dist/commands/repo/graph.js.map +1 -1
  153. package/dist/commands/repo/index/index.d.ts +1 -0
  154. package/dist/commands/repo/index/index.d.ts.map +1 -1
  155. package/dist/commands/repo/index/index.js +100 -12
  156. package/dist/commands/repo/index/index.js.map +1 -1
  157. package/dist/commands/repo/search.d.ts.map +1 -1
  158. package/dist/commands/repo/search.js +2 -0
  159. package/dist/commands/repo/search.js.map +1 -1
  160. package/dist/commands/repo/setup.d.ts +9 -2
  161. package/dist/commands/repo/setup.d.ts.map +1 -1
  162. package/dist/commands/repo/setup.js +84 -8
  163. package/dist/commands/repo/setup.js.map +1 -1
  164. package/dist/commands/status.d.ts +4 -0
  165. package/dist/commands/status.d.ts.map +1 -1
  166. package/dist/commands/status.js +21 -3
  167. package/dist/commands/status.js.map +1 -1
  168. package/dist/commands/transfer.d.ts +30 -0
  169. package/dist/commands/transfer.d.ts.map +1 -0
  170. package/dist/commands/transfer.js +140 -0
  171. package/dist/commands/transfer.js.map +1 -0
  172. package/dist/commands/tui.js +1 -1
  173. package/dist/commands/tui.js.map +1 -1
  174. package/dist/commands/up.d.ts +6 -27
  175. package/dist/commands/up.d.ts.map +1 -1
  176. package/dist/commands/up.js +63 -21
  177. package/dist/commands/up.js.map +1 -1
  178. package/dist/lib/attach.d.ts +48 -0
  179. package/dist/lib/attach.d.ts.map +1 -0
  180. package/dist/lib/attach.js +91 -0
  181. package/dist/lib/attach.js.map +1 -0
  182. package/dist/lib/chat-render.d.ts +39 -0
  183. package/dist/lib/chat-render.d.ts.map +1 -0
  184. package/dist/lib/chat-render.js +77 -0
  185. package/dist/lib/chat-render.js.map +1 -0
  186. package/dist/lib/cmek-guard.d.ts +52 -0
  187. package/dist/lib/cmek-guard.d.ts.map +1 -0
  188. package/dist/lib/cmek-guard.js +73 -0
  189. package/dist/lib/cmek-guard.js.map +1 -0
  190. package/dist/lib/content.d.ts +7 -0
  191. package/dist/lib/content.d.ts.map +1 -1
  192. package/dist/lib/content.js +9 -2
  193. package/dist/lib/content.js.map +1 -1
  194. package/dist/lib/credential-purge.d.ts +52 -0
  195. package/dist/lib/credential-purge.d.ts.map +1 -0
  196. package/dist/lib/credential-purge.js +37 -0
  197. package/dist/lib/credential-purge.js.map +1 -0
  198. package/dist/lib/ingest.d.ts.map +1 -1
  199. package/dist/lib/ingest.js +7 -3
  200. package/dist/lib/ingest.js.map +1 -1
  201. package/dist/lib/local-mcp-server.d.ts +82 -0
  202. package/dist/lib/local-mcp-server.d.ts.map +1 -0
  203. package/dist/lib/local-mcp-server.js +252 -0
  204. package/dist/lib/local-mcp-server.js.map +1 -0
  205. package/dist/lib/local-mcp-stdio.d.ts +8 -0
  206. package/dist/lib/local-mcp-stdio.d.ts.map +1 -0
  207. package/dist/lib/local-mcp-stdio.js +50 -0
  208. package/dist/lib/local-mcp-stdio.js.map +1 -0
  209. package/dist/lib/login-guided.d.ts +20 -0
  210. package/dist/lib/login-guided.d.ts.map +1 -0
  211. package/dist/lib/login-guided.js +89 -0
  212. package/dist/lib/login-guided.js.map +1 -0
  213. package/dist/lib/login.d.ts +58 -12
  214. package/dist/lib/login.d.ts.map +1 -1
  215. package/dist/lib/login.js +170 -12
  216. package/dist/lib/login.js.map +1 -1
  217. package/dist/lib/onboarding.d.ts +56 -0
  218. package/dist/lib/onboarding.d.ts.map +1 -0
  219. package/dist/lib/onboarding.js +67 -0
  220. package/dist/lib/onboarding.js.map +1 -0
  221. package/dist/lib/peer-command.d.ts +51 -0
  222. package/dist/lib/peer-command.d.ts.map +1 -0
  223. package/dist/lib/peer-command.js +120 -0
  224. package/dist/lib/peer-command.js.map +1 -0
  225. package/dist/lib/peer-support.d.ts +67 -0
  226. package/dist/lib/peer-support.d.ts.map +1 -0
  227. package/dist/lib/peer-support.js +154 -0
  228. package/dist/lib/peer-support.js.map +1 -0
  229. package/dist/lib/platform-edition.d.ts +34 -0
  230. package/dist/lib/platform-edition.d.ts.map +1 -0
  231. package/dist/lib/platform-edition.js +47 -0
  232. package/dist/lib/platform-edition.js.map +1 -0
  233. package/dist/lib/platform-frontdoor-runtime.d.ts.map +1 -1
  234. package/dist/lib/platform-frontdoor-runtime.js +32 -1
  235. package/dist/lib/platform-frontdoor-runtime.js.map +1 -1
  236. package/dist/lib/platform-frontdoor.d.ts +26 -2
  237. package/dist/lib/platform-frontdoor.d.ts.map +1 -1
  238. package/dist/lib/platform-frontdoor.js +363 -126
  239. package/dist/lib/platform-frontdoor.js.map +1 -1
  240. package/dist/lib/platform-lifecycle.d.ts +7 -0
  241. package/dist/lib/platform-lifecycle.d.ts.map +1 -1
  242. package/dist/lib/platform-lifecycle.js +14 -3
  243. package/dist/lib/platform-lifecycle.js.map +1 -1
  244. package/dist/lib/platform-onboarding.d.ts +1 -0
  245. package/dist/lib/platform-onboarding.d.ts.map +1 -1
  246. package/dist/lib/platform-onboarding.js +13 -2
  247. package/dist/lib/platform-onboarding.js.map +1 -1
  248. package/dist/lib/platform-profile-purge.d.ts +1 -1
  249. package/dist/lib/platform-profile-purge.d.ts.map +1 -1
  250. package/dist/lib/platform-profile-purge.js +2 -1
  251. package/dist/lib/platform-profile-purge.js.map +1 -1
  252. package/dist/lib/platform-provider-prompt.d.ts +4 -0
  253. package/dist/lib/platform-provider-prompt.d.ts.map +1 -1
  254. package/dist/lib/platform-provider-prompt.js +4 -0
  255. package/dist/lib/platform-provider-prompt.js.map +1 -1
  256. package/dist/lib/platform-release-manifest.d.ts +15 -1
  257. package/dist/lib/platform-release-manifest.d.ts.map +1 -1
  258. package/dist/lib/platform-release-manifest.js +24 -0
  259. package/dist/lib/platform-release-manifest.js.map +1 -1
  260. package/dist/lib/portability-shared.d.ts +49 -0
  261. package/dist/lib/portability-shared.d.ts.map +1 -0
  262. package/dist/lib/portability-shared.js +220 -0
  263. package/dist/lib/portability-shared.js.map +1 -0
  264. package/dist/lib/project-mcp-config.d.ts +14 -0
  265. package/dist/lib/project-mcp-config.d.ts.map +1 -0
  266. package/dist/lib/project-mcp-config.js +78 -0
  267. package/dist/lib/project-mcp-config.js.map +1 -0
  268. package/dist/lib/release-package-graph.d.ts +154 -0
  269. package/dist/lib/release-package-graph.d.ts.map +1 -0
  270. package/dist/lib/release-package-graph.js +249 -0
  271. package/dist/lib/release-package-graph.js.map +1 -0
  272. package/dist/lib/repo-binding.d.ts +7 -2
  273. package/dist/lib/repo-binding.d.ts.map +1 -1
  274. package/dist/lib/repo-binding.js +131 -18
  275. package/dist/lib/repo-binding.js.map +1 -1
  276. package/dist/lib/repo-command-support.d.ts +3 -1
  277. package/dist/lib/repo-command-support.d.ts.map +1 -1
  278. package/dist/lib/repo-command-support.js.map +1 -1
  279. package/dist/lib/repo-local-mcp-backend.d.ts +65 -0
  280. package/dist/lib/repo-local-mcp-backend.d.ts.map +1 -0
  281. package/dist/lib/repo-local-mcp-backend.js +288 -0
  282. package/dist/lib/repo-local-mcp-backend.js.map +1 -0
  283. package/dist/lib/repo-local-mcp-runtime.d.ts +17 -0
  284. package/dist/lib/repo-local-mcp-runtime.d.ts.map +1 -0
  285. package/dist/lib/repo-local-mcp-runtime.js +136 -0
  286. package/dist/lib/repo-local-mcp-runtime.js.map +1 -0
  287. package/dist/lib/repo-scope-migration.d.ts +4 -0
  288. package/dist/lib/repo-scope-migration.d.ts.map +1 -0
  289. package/dist/lib/repo-scope-migration.js +55 -0
  290. package/dist/lib/repo-scope-migration.js.map +1 -0
  291. package/dist/lib/repo-scope.d.ts +9 -0
  292. package/dist/lib/repo-scope.d.ts.map +1 -0
  293. package/dist/lib/repo-scope.js +15 -0
  294. package/dist/lib/repo-scope.js.map +1 -0
  295. package/dist/lib/safe-file.d.ts +141 -0
  296. package/dist/lib/safe-file.d.ts.map +1 -0
  297. package/dist/lib/safe-file.js +296 -0
  298. package/dist/lib/safe-file.js.map +1 -0
  299. package/dist/lib/selfhosted-lifecycle.d.ts +78 -0
  300. package/dist/lib/selfhosted-lifecycle.d.ts.map +1 -0
  301. package/dist/lib/selfhosted-lifecycle.js +195 -0
  302. package/dist/lib/selfhosted-lifecycle.js.map +1 -0
  303. package/dist/lib/setup-console.d.ts +1 -1
  304. package/dist/lib/setup-console.d.ts.map +1 -1
  305. package/dist/lib/setup-console.js +3 -1
  306. package/dist/lib/setup-console.js.map +1 -1
  307. package/dist/lib/setup-page.d.ts.map +1 -1
  308. package/dist/lib/setup-page.js +28 -10
  309. package/dist/lib/setup-page.js.map +1 -1
  310. package/dist/lib/setup-plan.d.ts +4 -1
  311. package/dist/lib/setup-plan.d.ts.map +1 -1
  312. package/dist/lib/setup-plan.js +10 -2
  313. package/dist/lib/setup-plan.js.map +1 -1
  314. package/dist/lib/setup-server.d.ts.map +1 -1
  315. package/dist/lib/setup-server.js +19 -3
  316. package/dist/lib/setup-server.js.map +1 -1
  317. package/dist/lib/sso-login.d.ts +42 -0
  318. package/dist/lib/sso-login.d.ts.map +1 -0
  319. package/dist/lib/sso-login.js +135 -0
  320. package/dist/lib/sso-login.js.map +1 -0
  321. package/dist/lib/transfer.d.ts +80 -0
  322. package/dist/lib/transfer.d.ts.map +1 -0
  323. package/dist/lib/transfer.js +173 -0
  324. package/dist/lib/transfer.js.map +1 -0
  325. package/dist/lib/tui.d.ts +0 -6
  326. package/dist/lib/tui.d.ts.map +1 -1
  327. package/dist/lib/tui.js +6 -1
  328. package/dist/lib/tui.js.map +1 -1
  329. package/dist/lib/ui.js +1 -1
  330. package/dist/lib/ui.js.map +1 -1
  331. package/dist/lib/up-result.d.ts +46 -0
  332. package/dist/lib/up-result.d.ts.map +1 -0
  333. package/dist/lib/up-result.js +25 -0
  334. package/dist/lib/up-result.js.map +1 -0
  335. package/dist/menu/run.d.ts +7 -0
  336. package/dist/menu/run.d.ts.map +1 -1
  337. package/dist/menu/run.js +38 -2
  338. package/dist/menu/run.js.map +1 -1
  339. package/oclif.manifest.json +3585 -1532
  340. package/package.json +19 -13
@@ -0,0 +1,120 @@
1
+ import { Flags } from '@oclif/core';
2
+ import { enforceTls } from '@knowzai/core';
3
+ import { createApiClient, } from '@knowzai/api-client';
4
+ import { BaseCommand } from '../base-command.js';
5
+ import { isInteractiveTty } from './onboarding.js';
6
+ import { promptHidden } from './prompt.js';
7
+ import { acquirePeerBearer, describeFederationError, resolvePeerByRef, resolvePeerKey, runExitOk, runStatusName, waitForRun, } from './peer-support.js';
8
+ /**
9
+ * Shared shell for every `knowz peer` command (CLI_InstanceTransfer R8):
10
+ * builds a per-invocation Bearer-token client via `users/login` — the
11
+ * federation plane is JWT-only, the stored API key cannot reach it — and
12
+ * decorates federation refusals with actionable hints (R10). The credential
13
+ * store keeps holding ONLY the API key; the password/token never persist.
14
+ */
15
+ export class PeerCommand extends BaseCommand {
16
+ static peerAuthFlags = {
17
+ email: Flags.string({
18
+ description: 'Account email for the JWT sign-in (defaults to the profile email)',
19
+ }),
20
+ };
21
+ peerInteractive() {
22
+ return isInteractiveTty() && !this.jsonEnabled();
23
+ }
24
+ /** Bearer-token client for the active profile (R8). */
25
+ async peerApiClient(flags) {
26
+ const auth = await this.authState(flags);
27
+ enforceTls(auth.apiUrl);
28
+ const summary = await auth.summary();
29
+ const anonymous = createApiClient({ baseUrl: auth.apiUrl });
30
+ const token = await acquirePeerBearer({
31
+ profileEmail: summary.email,
32
+ emailFlag: flags.email,
33
+ interactive: this.peerInteractive(),
34
+ env: process.env,
35
+ login: (creds) => anonymous.auth.login(creds),
36
+ promptPassword: (message) => promptHidden(`${message}: `),
37
+ promptEmail: async (message) => {
38
+ const { input } = await import('@inquirer/prompts');
39
+ return input({ message });
40
+ },
41
+ });
42
+ return createApiClient({
43
+ baseUrl: auth.apiUrl,
44
+ auth: () => ({ header: 'Authorization', value: `Bearer ${token}` }),
45
+ });
46
+ }
47
+ /** Attach the R10 follow-up hint to federation refusals, then rethrow. */
48
+ async withFederationHints(fn) {
49
+ try {
50
+ return await fn();
51
+ }
52
+ catch (e) {
53
+ const hint = describeFederationError(e);
54
+ if (hint)
55
+ process.stderr.write(`→ ${hint}\n`);
56
+ throw e;
57
+ }
58
+ }
59
+ /** Resolve `<peerRef>` (GUID or slug) to the peer row. */
60
+ resolvePeer(client, ref) {
61
+ return this.withFederationHints(() => resolvePeerByRef(client.federation, ref));
62
+ }
63
+ /** Source + preflight the peer credential (R9). */
64
+ resolveKeyInput(keyFlag) {
65
+ return resolvePeerKey({
66
+ keyFlag,
67
+ interactive: this.peerInteractive(),
68
+ env: process.env,
69
+ warn: (m) => process.stderr.write(`Warning: ${m}\n`),
70
+ promptSecret: (message) => promptHidden(`${message}: `),
71
+ });
72
+ }
73
+ /** Compact human rendering for a peer row. */
74
+ describePeer(peer) {
75
+ const state = peer.isEnabled ? 'enabled' : 'DISABLED';
76
+ const tested = peer.lastTestStatus ? `, last test: ${peer.lastTestStatus}` : '';
77
+ return `${peer.slug} (${peer.id}) → ${peer.baseUrl} [${state}${tested}]`;
78
+ }
79
+ /**
80
+ * Shared `peer pull` / `peer push` body (R12): 202 + runId; `--wait` polls
81
+ * every 2 s to a terminal status; exit 0 ONLY on Succeeded/NoOp — the server
82
+ * status is trusted, never re-interpreted.
83
+ */
84
+ async enqueueSyncRun(direction, input) {
85
+ const peer = await this.resolvePeer(input.client, input.peerRef);
86
+ const enqueue = await this.withFederationHints(() => input.client.federation[direction](peer.id, { vaultLinkId: input.vaultLinkId, options: input.options }));
87
+ if (!this.jsonEnabled())
88
+ this.log(`Run ${enqueue.runId} queued (${direction}).`);
89
+ if (!input.wait)
90
+ return enqueue;
91
+ const detail = await waitForRun(async () => {
92
+ const d = await input.client.federation.getRun(peer.id, enqueue.runId);
93
+ const summary = (d.summary ?? d);
94
+ return { ...d, status: summary.status };
95
+ }, { intervalMs: 2000, timeoutMs: input.timeoutSeconds * 1000 });
96
+ const summary = (detail.summary ?? detail);
97
+ const status = summary.status;
98
+ if (!this.jsonEnabled()) {
99
+ this.log(`Run ${enqueue.runId}: ${runStatusName(status)}`);
100
+ if (summary.itemsSucceeded !== undefined || summary.itemsFailed !== undefined) {
101
+ this.log(`Items: ${Number(summary.itemsSucceeded ?? 0)} succeeded, ${Number(summary.itemsFailed ?? 0)} failed`);
102
+ }
103
+ if (detail.lastError)
104
+ this.log(`Last error: ${String(detail.lastError)}`);
105
+ }
106
+ if (!runExitOk(status))
107
+ process.exitCode = 1;
108
+ return detail;
109
+ }
110
+ }
111
+ /** Flag set shared by `peer pull` and `peer push`. */
112
+ export const syncRunFlags = {
113
+ link: Flags.string({ required: true, description: 'Vault link id' }),
114
+ since: Flags.string({ description: 'Only items changed since this ISO-8601 timestamp' }),
115
+ 'skip-re-enrichment': Flags.boolean({ description: 'Skip AI re-enrichment of transferred items' }),
116
+ 'max-file-mb': Flags.integer({ description: 'Skip files larger than this many MB' }),
117
+ wait: Flags.boolean({ description: 'Poll until the run reaches a terminal status' }),
118
+ timeout: Flags.integer({ default: 600, description: 'Seconds to wait with --wait (default 600)' }),
119
+ };
120
+ //# sourceMappingURL=peer-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"peer-command.js","sourceRoot":"","sources":["../../src/lib/peer-command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ import type { FederationPeer } from '@knowzai/api-client';
2
+ /**
3
+ * CLI_InstanceTransfer `knowz peer` support: session-JWT acquisition (R8),
4
+ * `ukz_` key-kind preflight (R9), federation error-code mapping (R10) and
5
+ * honest run polling (R12). Everything injectable, everything unit-testable.
6
+ */
7
+ /** Mirrors the server's `PeerUserApiKeyRequired` copy — the server remains the backstop. */
8
+ export declare const PEER_KEY_GUIDANCE = "Federation peers require a personal API key (ukz_). Mint one on the remote instance with POST /api/v1/users/api-key.";
9
+ /** The peer credential is the key the LOCAL server presents TO the remote — personal keys only. */
10
+ export declare function assertPeerKeyKind(key: string): void;
11
+ export interface ResolvePeerKeyInput {
12
+ keyFlag?: string;
13
+ interactive: boolean;
14
+ env: Record<string, string | undefined>;
15
+ warn: (message: string) => void;
16
+ promptSecret?: (message: string) => Promise<string>;
17
+ }
18
+ /**
19
+ * Source the peer credential: `--key` (warned — argv can land in shell history;
20
+ * the value itself is already output-masked by `collectArgvSecrets`),
21
+ * `KNOWZ_PEER_API_KEY`, or a hidden prompt. The `ukz_` preflight runs BEFORE
22
+ * any HTTP call (R9).
23
+ */
24
+ export declare function resolvePeerKey(input: ResolvePeerKeyInput): Promise<string>;
25
+ export interface AcquirePeerBearerInput {
26
+ profileEmail?: string;
27
+ emailFlag?: string;
28
+ interactive: boolean;
29
+ env: Record<string, string | undefined>;
30
+ login: (creds: {
31
+ usernameOrEmail: string;
32
+ password: string;
33
+ }) => Promise<{
34
+ token: string;
35
+ }>;
36
+ promptPassword?: (message: string) => Promise<string>;
37
+ promptEmail?: (message: string) => Promise<string>;
38
+ }
39
+ /**
40
+ * Federation management is JWT/password-gated by the server (by design: human
41
+ * admin action) — the CLI's stored `X-Api-Key` cannot call it. The password
42
+ * comes from `KNOWZ_PASSWORD` or a hidden prompt; both it and the token are
43
+ * `registerSecret`-ed and held in memory only. A non-TTY run without
44
+ * `KNOWZ_PASSWORD` fails fast, before any network call.
45
+ */
46
+ export declare function acquirePeerBearer(input: AcquirePeerBearerInput): Promise<string>;
47
+ /** Map a federation refusal to an actionable follow-up hint, or undefined for unrelated errors. */
48
+ export declare function describeFederationError(e: unknown): string | undefined;
49
+ export interface PeerLister {
50
+ list(includeDisabled?: boolean): Promise<FederationPeer[]>;
51
+ get(id: string): Promise<FederationPeer>;
52
+ }
53
+ export declare function resolvePeerByRef(fed: PeerLister, ref: string): Promise<FederationPeer>;
54
+ export declare function runStatusName(status: number | string): string;
55
+ export declare function isTerminalRunStatus(status: number | string): boolean;
56
+ /** Exit 0 ONLY on Succeeded/NoOp — the CLI trusts the server status and never re-interprets it (R12). */
57
+ export declare function runExitOk(status: number | string): boolean;
58
+ export interface RunLike {
59
+ status: number | string;
60
+ [k: string]: unknown;
61
+ }
62
+ /** Poll every `intervalMs` until terminal or `timeoutMs` (R12 — default 2 s / 600 s at the command). */
63
+ export declare function waitForRun<T extends RunLike>(fetchRun: () => Promise<T>, opts: {
64
+ intervalMs: number;
65
+ timeoutMs: number;
66
+ }): Promise<T>;
67
+ //# sourceMappingURL=peer-support.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"peer-support.d.ts","sourceRoot":"","sources":["../../src/lib/peer-support.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAG1D;;;;GAIG;AAIH,4FAA4F;AAC5F,eAAO,MAAM,iBAAiB,yHAC0F,CAAC;AAEzH,mGAAmG;AACnG,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAInD;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACxC,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACrD;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,CAqBhF;AAID,MAAM,WAAW,sBAAsB;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACxC,KAAK,EAAE,CAAC,KAAK,EAAE;QAAE,eAAe,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5F,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACtD,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACpD;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,CA+BtF;AAmBD,mGAAmG;AACnG,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAetE;AAID,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,eAAe,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAC3D,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;CAC1C;AAED,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAQ5F;AAeD,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAG7D;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAGpE;AAED,yGAAyG;AACzG,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAG1D;AAED,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB;AAED,wGAAwG;AACxG,wBAAsB,UAAU,CAAC,CAAC,SAAS,OAAO,EAChD,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC1B,IAAI,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAC9C,OAAO,CAAC,CAAC,CAAC,CAaZ"}
@@ -0,0 +1,154 @@
1
+ import { KnowzError, ExitCode, registerSecret } from '@knowzai/core';
2
+ import { ApiError } from '@knowzai/types';
3
+ import { isGuid } from './vault.js';
4
+ /**
5
+ * CLI_InstanceTransfer `knowz peer` support: session-JWT acquisition (R8),
6
+ * `ukz_` key-kind preflight (R9), federation error-code mapping (R10) and
7
+ * honest run polling (R12). Everything injectable, everything unit-testable.
8
+ */
9
+ // --- R9 — key-kind preflight ---------------------------------------------------
10
+ /** Mirrors the server's `PeerUserApiKeyRequired` copy — the server remains the backstop. */
11
+ export const PEER_KEY_GUIDANCE = 'Federation peers require a personal API key (ukz_). Mint one on the remote instance with POST /api/v1/users/api-key.';
12
+ /** The peer credential is the key the LOCAL server presents TO the remote — personal keys only. */
13
+ export function assertPeerKeyKind(key) {
14
+ if (!key.startsWith('ukz_')) {
15
+ throw new KnowzError(PEER_KEY_GUIDANCE, ExitCode.Usage);
16
+ }
17
+ }
18
+ /**
19
+ * Source the peer credential: `--key` (warned — argv can land in shell history;
20
+ * the value itself is already output-masked by `collectArgvSecrets`),
21
+ * `KNOWZ_PEER_API_KEY`, or a hidden prompt. The `ukz_` preflight runs BEFORE
22
+ * any HTTP call (R9).
23
+ */
24
+ export async function resolvePeerKey(input) {
25
+ let key = input.keyFlag;
26
+ if (key) {
27
+ input.warn('Passing --key on the command line can leak into shell history — prefer KNOWZ_PEER_API_KEY or the prompt.');
28
+ }
29
+ key ??= input.env.KNOWZ_PEER_API_KEY;
30
+ if (!key) {
31
+ if (!input.interactive || !input.promptSecret) {
32
+ throw new KnowzError('Provide the peer API key via KNOWZ_PEER_API_KEY (or --key), or run from a terminal to be prompted.', ExitCode.Auth);
33
+ }
34
+ key = await input.promptSecret('Peer API key (ukz_…, input is hidden)');
35
+ }
36
+ if (!key)
37
+ throw new KnowzError('A peer API key is required.', ExitCode.Auth);
38
+ registerSecret(key);
39
+ assertPeerKeyKind(key); // R9 — before any HTTP call
40
+ return key;
41
+ }
42
+ /**
43
+ * Federation management is JWT/password-gated by the server (by design: human
44
+ * admin action) — the CLI's stored `X-Api-Key` cannot call it. The password
45
+ * comes from `KNOWZ_PASSWORD` or a hidden prompt; both it and the token are
46
+ * `registerSecret`-ed and held in memory only. A non-TTY run without
47
+ * `KNOWZ_PASSWORD` fails fast, before any network call.
48
+ */
49
+ export async function acquirePeerBearer(input) {
50
+ let email = input.emailFlag ?? input.profileEmail;
51
+ if (!email) {
52
+ if (!input.interactive || !input.promptEmail) {
53
+ throw new KnowzError('Peer commands sign in with your account email + password (federation management is JWT-gated ' +
54
+ 'server-side). No email found — pass --email or set one with `knowz config set email <you>`.', ExitCode.Auth);
55
+ }
56
+ email = await input.promptEmail('Account email');
57
+ }
58
+ let password = input.env.KNOWZ_PASSWORD;
59
+ if (!password) {
60
+ if (!input.interactive || !input.promptPassword) {
61
+ throw new KnowzError('Federation management is JWT/password-gated by the server (a deliberate human-admin gate) — the ' +
62
+ 'stored API key cannot call it. Set KNOWZ_PASSWORD for non-interactive runs, or run from a terminal ' +
63
+ 'to be prompted.', ExitCode.Auth);
64
+ }
65
+ password = await input.promptPassword(`Password for ${email} (input is hidden)`);
66
+ }
67
+ if (!password)
68
+ throw new KnowzError('A password is required for peer commands.', ExitCode.Auth);
69
+ registerSecret(password);
70
+ const { token } = await input.login({ usernameOrEmail: email, password });
71
+ registerSecret(token);
72
+ return token;
73
+ }
74
+ // --- R10 — error-code mapping --------------------------------------------------
75
+ const CODE_HINTS = {
76
+ PeerSlugTaken: 'That slug is already used by another peer — pick a different one (see `knowz peer list --all`).',
77
+ PeerKeyInvalid: 'The remote instance rejected the API key — mint a fresh ukz_ key there and run `knowz peer rotate-key`.',
78
+ PeerUserApiKeyRequired: PEER_KEY_GUIDANCE,
79
+ PeerKeyMissingUserIdClaim: PEER_KEY_GUIDANCE,
80
+ PeerNetworkFailed: 'Could not reach the remote instance — check --url, DNS/firewall, and that it is running.',
81
+ PeerSchemaUnavailable: 'The remote reached, but its sync schema endpoint is unavailable — check the remote version.',
82
+ PeerSchemaProbeFailed: 'The remote schema probe failed — check --url and the remote version.',
83
+ VaultLinkDuplicate: 'An identical vault link already exists — see `knowz peer links`.',
84
+ VaultLinkInactive: 'That vault link is inactive — re-create it with `knowz peer link`.',
85
+ PeerDisabled: 'The peer is disabled — re-enable it before starting runs.',
86
+ PreviewRequired: 'The server requires a preview first for this operation.',
87
+ RowVersionMismatch: 'The peer changed since it was read — re-run the command (it re-reads the latest version).',
88
+ };
89
+ /** Map a federation refusal to an actionable follow-up hint, or undefined for unrelated errors. */
90
+ export function describeFederationError(e) {
91
+ if (!(e instanceof ApiError))
92
+ return undefined;
93
+ const code = e.messages[0] ?? '';
94
+ if (code === 'RunAlreadyInFlight') {
95
+ const existing = e.data?.existingRunId;
96
+ return (`A run is already in flight${existing ? ` (run ${existing})` : ''} — ` +
97
+ `watch it with \`knowz peer run <peerRef> ${existing ?? '<runId>'}\`.`);
98
+ }
99
+ if (CODE_HINTS[code])
100
+ return CODE_HINTS[code];
101
+ if (e.status === 403 && e.messages.some((m) => m.includes('Federation is disabled'))) {
102
+ return 'Federation is off for this tenant — enable the integrations.enableFederation flag first.';
103
+ }
104
+ return undefined;
105
+ }
106
+ export async function resolvePeerByRef(fed, ref) {
107
+ if (isGuid(ref))
108
+ return fed.get(ref);
109
+ const peers = await fed.list(true); // slugs must resolve even for disabled peers
110
+ const match = peers.find((p) => p.slug.toLowerCase() === ref.toLowerCase());
111
+ if (!match) {
112
+ throw new KnowzError(`No federation peer with slug or id '${ref}'.`, ExitCode.NotFound);
113
+ }
114
+ return match;
115
+ }
116
+ // --- R12 — honest run status ---------------------------------------------------
117
+ /** FederationSyncRunStatus (Knowz.Domain.Enums) — numeric wire values, name-tolerant. */
118
+ const RUN_STATUS_NAMES = {
119
+ 0: 'Pending',
120
+ 1: 'Running',
121
+ 2: 'Succeeded',
122
+ 3: 'PartialFailure',
123
+ 4: 'Failed',
124
+ 5: 'Cancelled',
125
+ 6: 'NoOp',
126
+ };
127
+ export function runStatusName(status) {
128
+ if (typeof status === 'number')
129
+ return RUN_STATUS_NAMES[status] ?? `Unknown(${status})`;
130
+ return status;
131
+ }
132
+ export function isTerminalRunStatus(status) {
133
+ const name = runStatusName(status);
134
+ return ['Succeeded', 'PartialFailure', 'Failed', 'Cancelled', 'NoOp'].includes(name);
135
+ }
136
+ /** Exit 0 ONLY on Succeeded/NoOp — the CLI trusts the server status and never re-interprets it (R12). */
137
+ export function runExitOk(status) {
138
+ const name = runStatusName(status);
139
+ return name === 'Succeeded' || name === 'NoOp';
140
+ }
141
+ /** Poll every `intervalMs` until terminal or `timeoutMs` (R12 — default 2 s / 600 s at the command). */
142
+ export async function waitForRun(fetchRun, opts) {
143
+ const deadline = Date.now() + opts.timeoutMs;
144
+ for (;;) {
145
+ const run = await fetchRun();
146
+ if (isTerminalRunStatus(run.status))
147
+ return run;
148
+ if (Date.now() >= deadline) {
149
+ throw new KnowzError(`Timed out waiting for the run to finish (last status: ${runStatusName(run.status)}).`, ExitCode.Api);
150
+ }
151
+ await new Promise((r) => setTimeout(r, opts.intervalMs));
152
+ }
153
+ }
154
+ //# sourceMappingURL=peer-support.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"peer-support.js","sourceRoot":"","sources":["../../src/lib/peer-support.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ export declare const PLATFORM_EDITIONS: readonly ["selfhosted", "portable"];
2
+ export type PlatformEdition = (typeof PLATFORM_EDITIONS)[number];
3
+ export type EditionReason = 'flag' | 'env' | 'ghcr-token' | 'default-selfhosted';
4
+ export interface EditionIntent {
5
+ edition: PlatformEdition;
6
+ explicit: boolean;
7
+ reason: EditionReason;
8
+ }
9
+ export interface ResolveEditionIntentInput {
10
+ flags?: {
11
+ edition?: string;
12
+ };
13
+ env?: Readonly<Record<string, string | undefined>>;
14
+ }
15
+ /**
16
+ * SYNC + pure. Decides which product `knowz up` should start.
17
+ * Does not talk to the mothership; stored kzin_ is not an image key.
18
+ */
19
+ export declare function resolveEditionIntent(input?: ResolveEditionIntentInput): EditionIntent;
20
+ /**
21
+ * Front-door gate: selfhosted kit vs existing portable resolver.
22
+ * Checkout auto-build and --build/--preloaded stay portable unless edition is
23
+ * an explicit selfhosted request.
24
+ */
25
+ export declare function shouldUseSelfHostedEdition(input: {
26
+ intent: EditionIntent;
27
+ imageFlags?: {
28
+ build?: boolean;
29
+ pull?: boolean;
30
+ preloaded?: boolean;
31
+ };
32
+ checkoutDetected?: boolean;
33
+ }): boolean;
34
+ //# sourceMappingURL=platform-edition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-edition.d.ts","sourceRoot":"","sources":["../../src/lib/platform-edition.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,qCAAsC,CAAC;AACrE,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjE,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,KAAK,GAAG,YAAY,GAAG,oBAAoB,CAAC;AAEjF,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,eAAe,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,aAAa,CAAC;CACvB;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7B,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;CACpD;AAeD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,GAAE,yBAA8B,GAAG,aAAa,CAiBzF;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE;IAChD,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACtE,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,GAAG,OAAO,CAMV"}
@@ -0,0 +1,47 @@
1
+ export const PLATFORM_EDITIONS = ['selfhosted', 'portable'];
2
+ function parseEdition(raw, source) {
3
+ const value = raw?.trim();
4
+ if (!value) {
5
+ throw new Error(`--edition / KNOWZ_EDITION is empty from ${source}; use selfhosted or portable.`);
6
+ }
7
+ if (PLATFORM_EDITIONS.includes(value)) {
8
+ return value;
9
+ }
10
+ throw new Error(`Unknown edition '${value}'. Legal values: selfhosted, portable.`);
11
+ }
12
+ /**
13
+ * SYNC + pure. Decides which product `knowz up` should start.
14
+ * Does not talk to the mothership; stored kzin_ is not an image key.
15
+ */
16
+ export function resolveEditionIntent(input = {}) {
17
+ const env = input.env ?? {};
18
+ const flag = input.flags?.edition;
19
+ if (flag !== undefined && flag !== '') {
20
+ return { edition: parseEdition(flag, 'flag'), explicit: true, reason: 'flag' };
21
+ }
22
+ const fromEnv = env.KNOWZ_EDITION?.trim();
23
+ if (fromEnv) {
24
+ return { edition: parseEdition(fromEnv, 'env'), explicit: true, reason: 'env' };
25
+ }
26
+ if (env.GHCR_PULL_TOKEN?.trim()) {
27
+ return { edition: 'portable', explicit: false, reason: 'ghcr-token' };
28
+ }
29
+ return { edition: 'selfhosted', explicit: false, reason: 'default-selfhosted' };
30
+ }
31
+ /**
32
+ * Front-door gate: selfhosted kit vs existing portable resolver.
33
+ * Checkout auto-build and --build/--preloaded stay portable unless edition is
34
+ * an explicit selfhosted request.
35
+ */
36
+ export function shouldUseSelfHostedEdition(input) {
37
+ if (input.imageFlags?.build || input.imageFlags?.preloaded)
38
+ return false;
39
+ if (input.intent.edition !== 'selfhosted')
40
+ return false;
41
+ if (input.intent.explicit)
42
+ return true;
43
+ if (input.checkoutDetected && !input.imageFlags?.pull)
44
+ return false;
45
+ return true;
46
+ }
47
+ //# sourceMappingURL=platform-edition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-edition.js","sourceRoot":"","sources":["../../src/lib/platform-edition.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,YAAY,EAAE,UAAU,CAAU,CAAC;AAgBrE,SAAS,YAAY,CAAC,GAAuB,EAAE,MAAsB;IACnE,MAAM,KAAK,GAAG,GAAG,EAAE,IAAI,EAAE,CAAC;IAC1B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,2CAA2C,MAAM,+BAA+B,CAAC,CAAC;IACpG,CAAC;IACD,IAAK,iBAAuC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7D,OAAO,KAAwB,CAAC;IAClC,CAAC;IACD,MAAM,IAAI,KAAK,CACb,oBAAoB,KAAK,wCAAwC,CAClE,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAmC,EAAE;IACxE,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC;IAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC;IAClC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;QACtC,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IACjF,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC;IAC1C,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAClF,CAAC;IAED,IAAI,GAAG,CAAC,eAAe,EAAE,IAAI,EAAE,EAAE,CAAC;QAChC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;IACxE,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC;AAClF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CAAC,KAI1C;IACC,IAAI,KAAK,CAAC,UAAU,EAAE,KAAK,IAAI,KAAK,CAAC,UAAU,EAAE,SAAS;QAAE,OAAO,KAAK,CAAC;IACzE,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,KAAK,YAAY;QAAE,OAAO,KAAK,CAAC;IACxD,IAAI,KAAK,CAAC,MAAM,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IACvC,IAAI,KAAK,CAAC,gBAAgB,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI;QAAE,OAAO,KAAK,CAAC;IACpE,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"platform-frontdoor-runtime.d.ts","sourceRoot":"","sources":["../../src/lib/platform-frontdoor-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,eAAe,EACrB,MAAM,eAAe,CAAC;AAKvB,OAAO,EAA2B,KAAK,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACtF,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EAG1B,MAAM,0BAA0B,CAAC;AAOlC,OAAO,EAIL,KAAK,4BAA4B,EAClC,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,yBAAyB,CAAC;AAEjF,MAAM,WAAW,+BAA+B;IAC9C,KAAK,EAAE,eAAe,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;IAClD,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,gBAAgB,EAAE,OAAO,CAAC;IAC1B,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,oFAAoF;IACpF,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAmGD,wEAAwE;AACxE,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,mBAAmB,EAC1B,OAAO,GAAE,OAAO,KAAa,GAC5B,OAAO,CAAC,oBAAoB,CAAC,CA6B/B;AAuBD,4FAA4F;AAC5F,wBAAsB,gCAAgC,CAAC,KAAK,EAAE;IAC5D,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,YAAY,CAAC;IACrB,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;CACnD,GAAG,OAAO,CAAC,4BAA4B,GAAG,IAAI,CAAC,CA0C/C;AAED,wBAAsB,2BAA2B,CAAC,KAAK,EAAE;IACvD,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,4BAA4B,CAAC;IACzC,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;CACxB,GAAG,OAAO,CAAC,iCAAiC,CAAC,CAwB7C;AAED,uFAAuF;AACvF,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,+BAA+B,GAAG,aAAa,CAgGnG"}
1
+ {"version":3,"file":"platform-frontdoor-runtime.d.ts","sourceRoot":"","sources":["../../src/lib/platform-frontdoor-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,eAAe,EACrB,MAAM,eAAe,CAAC;AAKvB,OAAO,EAA2B,KAAK,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACtF,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EAG1B,MAAM,0BAA0B,CAAC;AAOlC,OAAO,EAIL,KAAK,4BAA4B,EAClC,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,yBAAyB,CAAC;AAEjF,MAAM,WAAW,+BAA+B;IAC9C,KAAK,EAAE,eAAe,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;IAClD,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,gBAAgB,EAAE,OAAO,CAAC;IAC1B,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,oFAAoF;IACpF,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAyGD,wEAAwE;AACxE,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,mBAAmB,EAC1B,OAAO,GAAE,OAAO,KAAa,GAC5B,OAAO,CAAC,oBAAoB,CAAC,CA6B/B;AAuBD,4FAA4F;AAC5F,wBAAsB,gCAAgC,CAAC,KAAK,EAAE;IAC5D,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,YAAY,CAAC;IACrB,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;CACnD,GAAG,OAAO,CAAC,4BAA4B,GAAG,IAAI,CAAC,CA0C/C;AAED,wBAAsB,2BAA2B,CAAC,KAAK,EAAE;IACvD,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,4BAA4B,CAAC;IACzC,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;CACxB,GAAG,OAAO,CAAC,iCAAiC,CAAC,CAyB7C;AA6BD,uFAAuF;AACvF,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,+BAA+B,GAAG,aAAa,CAgGnG"}
@@ -26,6 +26,8 @@ async function reuseExistingProfile(store, profileName, apiUrl) {
26
26
  saveConfig,
27
27
  validateKey: (apiKey) => createApiClient({ baseUrl: apiUrl }).auth.validateKey({ apiKey }),
28
28
  register: (request) => createApiClient({ baseUrl: apiUrl }).auth.register(request),
29
+ signIn: (request) => createApiClient({ baseUrl: apiUrl }).auth.login(request),
30
+ createApiKey: (request, token) => createApiClient({ baseUrl: apiUrl }).apiKeys.create(request, { token }),
29
31
  });
30
32
  return { tenantId: result.tenantId };
31
33
  }
@@ -70,6 +72,8 @@ function onboardingDeps(store, apiUrl, superAdminPassphrase, quiet, allowCredent
70
72
  saveConfig,
71
73
  validateKey: (apiKey) => createApiClient({ baseUrl: apiUrl }).auth.validateKey({ apiKey }),
72
74
  register: (request) => createApiClient({ baseUrl: apiUrl }).auth.register(request),
75
+ signIn: (request) => createApiClient({ baseUrl: apiUrl }).auth.login(request),
76
+ createApiKey: (request, token) => createApiClient({ baseUrl: apiUrl }).apiKeys.create(request, { token }),
73
77
  }),
74
78
  apiClientFor: (profileName) => seedClient(store, apiUrl, profileName),
75
79
  openBrowser: (url) => openBrowser(url),
@@ -193,12 +197,39 @@ export async function preflightRegistryCredential(input) {
193
197
  },
194
198
  signal: AbortSignal.timeout(10_000),
195
199
  });
196
- return { kind: 'http-response', status: response.status };
200
+ const problem = await readProblemFields(response);
201
+ return { kind: 'http-response', status: response.status, ...problem };
197
202
  }
198
203
  catch {
199
204
  return { kind: 'transport-failure' };
200
205
  }
201
206
  }
207
+ async function readProblemFields(response) {
208
+ try {
209
+ let parsed;
210
+ if (typeof response.json === 'function') {
211
+ parsed = await response.json();
212
+ }
213
+ else if (typeof response.text === 'function') {
214
+ parsed = JSON.parse(await response.text());
215
+ }
216
+ else {
217
+ return {};
218
+ }
219
+ if (typeof parsed !== 'object' || parsed === null)
220
+ return {};
221
+ const record = parsed;
222
+ const code = typeof record.code === 'string' ? record.code : undefined;
223
+ const detail = typeof record.detail === 'string' ? record.detail : undefined;
224
+ return {
225
+ ...(code ? { code } : {}),
226
+ ...(detail ? { detail } : {}),
227
+ };
228
+ }
229
+ catch {
230
+ return {};
231
+ }
232
+ }
202
233
  /** Shared real dependency binding used by terminal `up` and the HTML setup console. */
203
234
  export function createPlatformFrontDoorDeps(options) {
204
235
  const { store, cwd, env, isTty, quiet, validateProvider, emit } = options;
@@ -1 +1 @@
1
- {"version":3,"file":"platform-frontdoor-runtime.js","sourceRoot":"","sources":["../../src/lib/platform-frontdoor-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"platform-frontdoor-runtime.js","sourceRoot":"","sources":["../../src/lib/platform-frontdoor-runtime.ts"],"names":[],"mappings":"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"}