@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
@@ -4,6 +4,13 @@ import { VERTEX_CHAT_DEFAULT, VERTEX_EMBEDDING_DEFAULT, QWEN3_EMBEDDING_DEFAULT,
4
4
  import { OLLAMA_LOOPBACK_ENDPOINT } from './platform-provider-prompt.js';
5
5
  import { PROVIDER_ALIAS_OPTIONS, PROVIDER_PRESETS } from './provider-presets.js';
6
6
  import { AGE_ELIGIBILITY_TEXT } from './login.js';
7
+ /** Move each asynchronous outcome into the viewport and the keyboard reading order. */
8
+ export function focusSetupPanel(panel) {
9
+ panel.hidden = false;
10
+ panel.tabIndex = -1;
11
+ panel.scrollIntoView({ block: 'start', behavior: 'auto' });
12
+ panel.focus({ preventScroll: true });
13
+ }
7
14
  export function escapeHtml(value) {
8
15
  return value
9
16
  .replaceAll('&', '&')
@@ -100,7 +107,7 @@ export function renderPage(model) {
100
107
  : '';
101
108
  control = `<input ${inputAttributes}>${datalist}`;
102
109
  }
103
- const secretAlreadySet = Boolean(field.secret && stateRecord?.provider === provider);
110
+ const secretAlreadySet = Boolean(field.secret && field.configured);
104
111
  const secretPosture = secretAlreadySet
105
112
  ? '<small>Currently set — hidden. Replace by entering a new value.</small>'
106
113
  : '';
@@ -135,7 +142,7 @@ export function renderPage(model) {
135
142
  const licenseCopy = license.linked
136
143
  ? `Linked to ${escapeHtml(license.account ?? 'your Knowz account')} — ${escapeHtml(license.displayPlan ?? 'linked plan')}`
137
144
  : 'Not linked — run <code>knowz activate</code>';
138
- const licenseRow = `<aside id="license-status" class="banner banner-info"><div><strong>License</strong><span>${licenseCopy}</span>${license.linked && upgradeUrl ? `<a class="button" href="${escapeHtml(upgradeUrl)}" target="_blank" rel="noreferrer">Upgrade</a>` : ''}</div></aside>`;
145
+ const licenseRow = `<aside id="license-status" data-portable-only${defaults.edition !== 'portable' ? ' hidden' : ''} class="banner banner-info"><div><strong>License</strong><span>${licenseCopy}</span>${license.linked && upgradeUrl ? `<a class="button" href="${escapeHtml(upgradeUrl)}" target="_blank" rel="noreferrer">Upgrade</a>` : ''}</div></aside>`;
139
146
  const defaultName = escapeHtml(defaults.name ?? 'knowz');
140
147
  const defaultApiPort = escapeHtml(String(defaults.ports?.api ?? 5000));
141
148
  const defaultWebPort = escapeHtml(String(defaults.ports?.web ?? 3000));
@@ -161,6 +168,8 @@ export function renderPage(model) {
161
168
  const selfhostedDefault = defaultEdition === 'selfhosted';
162
169
  const ghcrHiddenByDefault = preloadedLocked || selfhostedDefault;
163
170
  const defaultVersion = escapeHtml(defaults.version ?? (defaultEdition === 'selfhosted' ? STABLE_SELFHOSTED_RELEASE : DEFAULT_PORTABLE_VERSION));
171
+ const selfhostedReleaseLiteral = JSON.stringify(STABLE_SELFHOSTED_RELEASE);
172
+ const portableReleaseLiteral = JSON.stringify(DEFAULT_PORTABLE_VERSION);
164
173
  const filesystemSelected = defaults.storage === 'filesystem';
165
174
  const defaultProvider = defaults.provider && Object.prototype.hasOwnProperty.call(schema, defaults.provider)
166
175
  ? defaults.provider
@@ -403,6 +412,7 @@ input[name$="Port"],input[name="version"],input[name$=".endpoint"],input[name$="
403
412
 
404
413
  /* ── Progress + result ────────────────────────────────────────────────────────────────────── */
405
414
  .progress-card h2,.result-card h2{margin:0}
415
+ .progress-card,.result-card,#run-error{scroll-margin-top:80px}
406
416
  .steps{list-style:none;margin:20px 0;padding:0;display:grid;gap:11px}
407
417
  .step{display:grid;grid-template-columns:24px 1fr;gap:11px;align-items:center;color:var(--muted);font-size:14px}
408
418
  .step-mark{width:22px;height:22px;display:grid;place-items:center;border:1.5px solid var(--edge-strong);border-radius:var(--radius-pill);font:11px var(--mono);font-weight:800}
@@ -441,6 +451,7 @@ input[name$="Port"],input[name="version"],input[name$=".endpoint"],input[name$="
441
451
  .header-inner{padding:9px 0}
442
452
  }
443
453
  @media(max-width:520px){
454
+ .progress-card,.result-card,#run-error{scroll-margin-top:116px}
444
455
  .shell,.header-inner{width:min(100% - 22px,780px)}
445
456
  .shell{padding-top:20px}
446
457
  .card{padding:18px}
@@ -463,7 +474,7 @@ input[name$="Port"],input[name="version"],input[name$=".endpoint"],input[name$="
463
474
  <div class="wordmark" aria-label="knowz setup"><span class="script">knowz</span> <span>setup</span></div></div>
464
475
  <div class="header-actions"><span class="trust">local · private · 127.0.0.1</span><button id="theme-toggle" class="icon-button" type="button" aria-label="Toggle color theme"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3v2m0 14v2M3 12h2m14 0h2M5.6 5.6 7 7m10 10 1.4 1.4M18.4 5.6 17 7M7 17l-1.4 1.4"/><circle cx="12" cy="12" r="4"/></svg></button></div>
465
476
  </div></header>
466
- <main class="shell"><section class="hero"><p class="eyebrow-inline" id="edition-eyebrow">${selfhostedDefault ? 'Self-hosted edition' : 'Portable edition'}</p><h1>Set up your private Knowz, <em>locally.</em></h1></section>
477
+ <main class="shell"><button id="close-setup" type="button" class="button button-quiet">Close setup</button><section class="hero"><p class="eyebrow-inline" id="edition-eyebrow">${selfhostedDefault ? 'Self-hosted edition' : 'Portable edition'}</p><h1>Set up your private Knowz, <em>locally.</em></h1></section>
467
478
  <div class="statusbar">${existing}${licenseRow}</div>
468
479
  <form id="setup-form" class="stack">
469
480
  <details class="card preflight"${preflightOpen}><summary><span>Preflight checks</span><span class="preflight-state">${preflight.ok ? 'All checks passed' : 'Action needed'}</span></summary><ul class="checks">${checks}</ul></details>${engineGuide}
@@ -489,29 +500,31 @@ input[name$="Port"],input[name="version"],input[name$=".endpoint"],input[name$="
489
500
  <div class="split ports"><div class="field"><label for="api-port">API port</label><input id="api-port" name="apiPort" type="number" value="${defaultApiPort}" required aria-required="true" autocomplete="off"></div><div class="field"><label for="web-port">Web port</label><input id="web-port" name="webPort" type="number" value="${defaultWebPort}" required aria-required="true" autocomplete="off"></div><div class="field"><label for="mcp-port">MCP port</label><input id="mcp-port" name="mcpPort" type="number" value="${defaultMcpPort}" required aria-required="true" autocomplete="off"></div><div id="public-site-port-field" class="field"${defaultPublicSiteEnabled ? '' : ' hidden'}><label for="public-site-port">Public site port</label><input id="public-site-port" name="publicSitePort" type="number" value="${defaultPublicSitePort}" autocomplete="off"></div></div>
490
501
  <p id="url-preview" class="url-preview" aria-live="polite"></p>
491
502
  <div class="test-row"><button id="test-ports" class="button" type="button"><svg class="button-icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M5 7h14M5 12h14M5 17h14M8 4v16m8-16v16"/></svg>Test ports</button><span class="chip" data-port-result="api" data-test-state="idle" aria-live="polite"><svg viewBox="0 0 24 24" aria-hidden="true"><circle cx="12" cy="12" r="8"/></svg><span>API · not tested</span></span><span class="chip" data-port-result="web" data-test-state="idle" aria-live="polite"><svg viewBox="0 0 24 24" aria-hidden="true"><circle cx="12" cy="12" r="8"/></svg><span>Web · not tested</span></span><span class="chip" data-port-result="mcp" data-test-state="idle" aria-live="polite"><svg viewBox="0 0 24 24" aria-hidden="true"><circle cx="12" cy="12" r="8"/></svg><span>MCP · not tested</span></span></div>
492
- <details class="raw-log"><summary>Advanced — public URLs</summary><div class="fields"><div class="field"><label for="public-api-url">Public API URL <span class="required">optional</span></label><input id="public-api-url" name="publicApiUrl" value="${defaultPublicApiUrl}" autocomplete="off" placeholder="HTTPS URL; blank uses localhost"></div><div class="field"><label for="public-web-url">Public web origin <span class="required">optional</span></label><input id="public-web-url" name="publicWebUrl" value="${defaultPublicWebUrl}" autocomplete="off" placeholder="HTTPS origin; blank uses localhost"></div><div class="field"><label for="public-mcp-url">Public MCP URL <span class="required">optional</span></label><input id="public-mcp-url" name="publicMcpUrl" value="${defaultPublicMcpUrl}" autocomplete="off" placeholder="HTTPS URL; blank uses localhost"></div></div></details>
503
+ <details class="raw-log" data-portable-only${selfhostedDefault ? ' hidden' : ''}><summary>Advanced — public URLs</summary><div class="fields"><div class="field"><label for="public-api-url">Public API URL <span class="required">optional</span></label><input id="public-api-url" name="publicApiUrl" value="${defaultPublicApiUrl}" autocomplete="off" placeholder="HTTPS URL; blank uses localhost"></div><div class="field"><label for="public-web-url">Public web origin <span class="required">optional</span></label><input id="public-web-url" name="publicWebUrl" value="${defaultPublicWebUrl}" autocomplete="off" placeholder="HTTPS origin; blank uses localhost"></div><div class="field"><label for="public-mcp-url">Public MCP URL <span class="required">optional</span></label><input id="public-mcp-url" name="publicMcpUrl" value="${defaultPublicMcpUrl}" autocomplete="off" placeholder="HTTPS URL; blank uses localhost"></div></div></details>
493
504
  </section>
494
505
  </div>
495
506
  <div class="step-panel" data-step="3" hidden>
496
507
  <section class="card"><div class="card-heading"><div><h2>First account</h2><p>The local owner identity created during first boot.</p></div></div>
497
- <div class="field"><label for="org-name">Organization name <span class="required">optional</span></label><input id="org-name" name="orgName" value="${defaultOrgName}" maxlength="64" autocomplete="off"></div>
498
- <div class="split"><div class="field"><label for="account-name">Name</label><input id="account-name" name="accountName" value="${defaultAccountName}" autocomplete="off"></div><div class="field"><label for="account-email">Email</label><input id="account-email" name="accountEmail" type="email" value="${defaultAccountEmail}" autocomplete="off"></div></div>
499
- <label class="provider-card" for="age-attested"><input id="age-attested" name="ageAttested" type="checkbox"><strong>${AGE_ELIGIBILITY_TEXT}</strong></label>
500
- <div class="field"><label for="superadmin-passphrase">SuperAdmin passphrase <span class="required">optional</span></label><input id="superadmin-passphrase" name="superAdminPassphrase" type="password" autocomplete="off" minlength="12" maxlength="128"><small>${stateRecord ? 'Currently set — hidden. Replace it here, or ' : ''}leave blank to auto-generate. It is stored only on this machine and never shown again.</small></div>
508
+ <aside class="banner banner-info"><div><strong>First local administrator</strong><span>Setup creates username <code>admin</code>. Choose a password here, or leave it blank and the generated password will be shown once after setup.</span></div></aside>
509
+ <div class="field" data-portable-only${selfhostedDefault ? ' hidden' : ''}><label for="org-name">Organization name <span class="required">optional</span></label><input id="org-name" name="orgName" value="${defaultOrgName}" maxlength="64" autocomplete="off"></div>
510
+ <div class="split" data-portable-only${selfhostedDefault ? ' hidden' : ''}><div class="field"><label for="account-name">Name</label><input id="account-name" name="accountName" value="${defaultAccountName}" autocomplete="off"></div><div class="field"><label for="account-email">Email</label><input id="account-email" name="accountEmail" type="email" value="${defaultAccountEmail}" autocomplete="off"></div></div>
511
+ <label class="provider-card" data-portable-only${selfhostedDefault ? ' hidden' : ''} for="age-attested"><input id="age-attested" name="ageAttested" type="checkbox"><strong>${AGE_ELIGIBILITY_TEXT}</strong></label>
512
+ <div class="field"><label for="superadmin-passphrase">Administrator password / SuperAdmin passphrase <span class="required">optional</span></label><input id="superadmin-passphrase" name="superAdminPassphrase" type="password" autocomplete="off" minlength="12" maxlength="128"><small>Self-hosted uses this as the <code>admin</code> login password. ${stateRecord ? 'Currently set — hidden. Replace it here, or ' : ''}leave blank to auto-generate. A newly generated password is stored only on this machine, shown once after setup, then must be changed at first login.</small></div>
501
513
  </section>
502
514
  </div>
503
515
  <div class="step-panel" data-step="4" hidden>
504
516
  <section class="card"><div class="card-heading"><div><h2>Image source &amp; version</h2><p>Use a pinned release or build this checkout.</p></div></div>
505
- <div class="field"><label for="edition">Edition</label><select id="edition" name="edition"><option value="selfhosted"${selfhostedDefault ? ' selected' : ''}>Self-hosted · public images</option><option value="portable"${selfhostedDefault ? '' : ' selected'}>Portable · paid platform images</option></select><small>Self-hosted is the default. Portable requires GHCR_PULL_TOKEN or an entitled installation.</small></div>
506
- <div class="split"><div class="field"><label for="image-mode">Image source</label><select id="image-mode" name="imageMode"><option value="pull"${imageModeDefault === 'pull' ? ' selected' : ''}${preloadedLocked ? ' disabled' : ''}>Pull release</option><option value="build"${imageModeDefault === 'build' ? ' selected' : ''}${preloadedLocked ? ' disabled' : ''}>Build checkout</option><option value="preloaded"${imageModeDefault === 'preloaded' ? ' selected' : ''}>Preloaded · images already in the local engine</option></select>${preloadedLocked ? '<small>Detected preloaded images — pull/build disabled; re-run without --preloaded to change.</small>' : ''}</div><div class="field"><label for="version">Version</label><input id="version" name="version" value="${defaultVersion}" required aria-required="true" autocomplete="off"></div></div>
517
+ <div class="field"><label for="edition">Edition</label><select id="edition" name="edition"><option value="selfhosted"${selfhostedDefault ? ' selected' : ''}>Self-hosted · public images</option><option value="portable"${selfhostedDefault ? '' : ' selected'}>Portable · paid platform images</option></select><small>Self-hosted is the default. Portable requires an entitled installation. GHCR_PULL_TOKEN authenticates registry pulls after the grant check; it does not replace a license.</small></div>
518
+ <div class="split"><div class="field"><label for="image-mode">Image source</label><select id="image-mode" name="imageMode"><option value="pull"${imageModeDefault === 'pull' ? ' selected' : ''}${preloadedLocked ? ' disabled' : ''}>Pull release</option><option value="build"${imageModeDefault === 'build' ? ' selected' : ''}${preloadedLocked ? ' disabled' : ''}>Build checkout</option><option value="preloaded"${imageModeDefault === 'preloaded' ? ' selected' : ''}>Preloaded · images already in the local engine</option></select>${preloadedLocked ? '<small>Detected preloaded images — pull/build disabled; re-run without --preloaded to change.</small>' : ''}</div><div class="field"><label for="version">Recommended release</label><input id="version" name="version" value="${defaultVersion}" required aria-required="true" autocomplete="off"><small>The published image set validated for this edition and CLI.</small><details><summary>Advanced custom version</summary><small>Edit the value above only when you have a specific published X.Y.Z release. Never use latest.</small></details></div></div>
507
519
  <div class="field" id="storage-mode-field"${selfhostedDefault ? ' hidden' : ''}><label for="storage-mode">Object storage</label><select id="storage-mode" name="storage"><option value="minio"${filesystemSelected ? '' : ' selected'}>Bundled MinIO · S3-compatible</option><option value="filesystem"${filesystemSelected ? ' selected' : ''}>Filesystem · single shared volume</option></select></div>
508
520
  <div class="field"><label for="project-name">Project name</label><input id="project-name" name="name" value="${defaultName}" required aria-required="true" autocomplete="off"></div>
509
521
  <div class="field" id="ghcr-token-field"${ghcrHiddenByDefault ? ' hidden' : ''}><label for="ghcr-token">GHCR pull token <span class="required">optional</span></label><input id="ghcr-token" name="ghcrToken" type="password" autocomplete="off"${ghcrHiddenByDefault ? ' disabled' : ''}></div>
510
522
  </section>
511
523
  <section class="card"><div class="card-heading"><div><h2>Review &amp; start</h2><p>Configuration stays on this machine and secret files are written mode 0600.</p></div></div>
512
- <p id="model-summary" class="model-summary" aria-live="polite">AI offline · 1 models · not verified</p>
513
- <div class="choice-row"><label class="choice" for="seed-demo"><input id="seed-demo" name="seedDemo" type="checkbox"> Seed demo content</label><label class="choice" for="reconfigure"><input id="reconfigure" name="reconfigure" type="checkbox"> Reconfigure existing stack</label></div>
514
- <div id="soft-confirm" class="soft-confirm" hidden><p>You haven't confirmed the AI connection works. Start anyway?</p><div class="soft-actions"><button id="start-anyway" class="button" type="button">Start anyway</button><button id="test-first" class="button button-quiet" type="button">Test first</button></div></div>
524
+ <aside class="banner banner-info"><div><strong>First local administrator</strong><span>Username: <code>admin</code> · use the password you chose during setup.</span></div></aside>
525
+ <p id="model-summary" class="model-summary" aria-live="polite">AI disabled · Capture and text search available</p>
526
+ <div class="choice-row"><label class="choice" data-portable-only${selfhostedDefault ? ' hidden' : ''} for="seed-demo"><input id="seed-demo" name="seedDemo" type="checkbox"> Seed demo content</label><label class="choice" for="reconfigure"><input id="reconfigure" name="reconfigure" type="checkbox"> Reconfigure existing stack</label></div>
527
+ <div id="soft-confirm" class="soft-confirm" hidden><p>Complete these checks before starting:</p><div class="soft-actions"><button id="start-anyway" class="button" type="button">Start anyway</button><button id="test-first" class="button button-quiet" type="button">Test first</button></div></div>
515
528
  <div id="existing-choice" class="soft-confirm" hidden><p>An existing stack was detected. Choose whether to apply these form values or inspect the running stack without changing it.</p><div class="soft-actions"><button id="apply-existing-changes" class="button" type="button">Apply my changes (reconfigure)</button><button id="inspect-existing" class="button button-quiet" type="button">Inspect existing stack only</button></div></div>
516
529
  <button class="button button-primary" type="submit"><svg class="button-icon" viewBox="0 0 24 24" aria-hidden="true"><path d="m8 5 11 7-11 7V5Z"/></svg>Start Knowz</button>
517
530
  </section>
@@ -519,12 +532,13 @@ input[name$="Port"],input[name="version"],input[name$=".endpoint"],input[name$="
519
532
  <div class="wizard-nav"><button type="button" id="step-back" class="button" hidden>Back</button><span class="wizard-spacer"></span><button type="button" id="step-next" class="button button-primary button-inline">Next</button></div>
520
533
  </form>
521
534
  <section id="progress-view" class="card progress-card" hidden><div class="card-heading"><span class="step-number">→</span><div><h2>Starting your local platform</h2><p>Keep this window open while services initialize.</p></div></div>
522
- <ol id="step-list" class="steps"><li class="step" data-step="config" data-state="idle"><span class="step-mark">·</span><span>Validate configuration</span></li><li class="step" data-step="images" data-state="idle"><span class="step-mark">·</span><span>Prepare images</span></li><li class="step" data-step="data" data-state="idle"><span class="step-mark">·</span><span>Start data services</span></li><li class="step" data-step="minio" data-state="idle"><span class="step-mark">·</span><span>Initialize object storage · minio-createbucket</span></li><li class="step" data-step="services" data-state="idle"><span class="step-mark">·</span><span>Start Knowz services</span></li><li class="step" data-step="account" data-state="idle"><span class="step-mark">·</span><span>Create first account</span></li><li class="step" data-step="verify" data-state="idle"><span class="step-mark">·</span><span>Verify API</span></li></ol>
535
+ <ol id="step-list" class="steps"><li class="step" data-step="config" data-state="idle"><span class="step-mark">·</span><span>Validate configuration</span></li><li class="step" data-step="images" data-state="idle"><span class="step-mark">·</span><span>Prepare images</span></li><li class="step" data-step="data" data-state="idle"><span class="step-mark">·</span><span>Start data services</span></li><li class="step" data-step="minio" data-state="idle" data-portable-only${selfhostedDefault ? ' hidden' : ''}><span class="step-mark">·</span><span>Initialize object storage</span></li><li class="step" data-step="services" data-state="idle"><span class="step-mark">·</span><span>Start Knowz services</span></li><li class="step" data-step="account" data-state="idle"><span class="step-mark">·</span><span>Create first account</span></li><li class="step" data-step="verify" data-state="idle"><span class="step-mark">·</span><span>Verify API</span></li></ol>
523
536
  <div id="run-error" class="banner banner-danger" tabindex="-1" aria-live="polite" hidden></div><button id="back-config" class="button" type="button" hidden>Back to configuration</button>
524
- <details class="raw-log"><summary>Raw setup log</summary><pre id="progress-log" aria-live="polite"></pre></details>
537
+ <button id="cancel-setup" type="button" class="button">Cancel operation</button><details class="raw-log"><summary>Raw setup log</summary><pre id="progress-log" aria-live="polite"></pre></details>
525
538
  </section>
526
- <section id="result-view" class="card result-card" aria-live="polite" hidden><div id="result-icon" class="result-icon" aria-hidden="true">✓</div><div><h2 id="result-heading">Knowz is ready</h2><p id="result-copy">Your local, private platform is running.</p></div><div id="verify-chip" class="chip" aria-label="API verification" hidden></div><div id="url-list" class="url-list"></div><div id="credential-note" class="credential-note"><strong>Admin credentials are stored locally</strong><p>Admin password and SuperAdmin passphrase are in the private mode-0600 environment file:</p><code>${credentialPath}</code><p>View them from the terminal; they are never shown in this page.</p></div><div id="next-steps" class="credential-note"><strong>Next steps</strong><div class="url-row"><span>Connect this instance to Knowz Cloud</span><code>knowz login --profile cloud</code><button type="button" class="button" data-copy="knowz login --profile cloud">Copy</button></div><div class="url-row"><span>Move data between instances</span><code>knowz transfer --from &lt;profile&gt; --to &lt;profile&gt;</code><button type="button" class="button" data-copy="knowz transfer --from &lt;profile&gt; --to &lt;profile&gt;">Copy</button></div><div class="url-row"><span>Snapshot / restore</span><code>knowz export</code> / <code>knowz import</code><button type="button" class="button" data-copy="knowz export">Copy</button></div></div></section>
539
+ <section id="result-view" class="card result-card" aria-live="polite" hidden><div id="result-icon" class="result-icon" aria-hidden="true">✓</div><div><h2 id="result-heading">Knowz is ready</h2><p id="result-copy">Your local, private platform is running.</p></div><div id="verify-chip" class="chip" aria-label="API verification" hidden></div><form id="auth-recovery" hidden><p>Use the current administrator password. If first login requires a new password, finish it in the web app or enter a new password below.</p><label>Username<input name="username" autocomplete="username" value="admin" required></label><label>Current password<input name="password" type="password" autocomplete="current-password" required></label><label>New password (only when required)<input name="newPassword" type="password" autocomplete="new-password"></label><p id="auth-error" role="alert"></p><button type="submit" class="button">Connect CLI</button></form><button id="start-runtime" type="button" class="button" hidden>Start existing runtime</button><div id="url-list" class="url-list"></div><div id="one-time-credential" class="credential-note" hidden><strong>Temporary administrator · Username: <span id="generated-admin-username">admin</span></strong><p>This generated password is shown only once. Save it now, sign in, then choose your permanent password.</p><code id="generated-admin-password" aria-label="Generated administrator password">••••••••••••</code><div class="soft-actions"><button id="toggle-generated-password" type="button" class="button">Show password</button><button id="copy-generated-password" type="button" class="button">Copy password</button></div></div><div id="credential-note" class="credential-note"><strong>First local administrator · Username: admin</strong><p>Use the administrator password you chose during setup. View them from the terminal when needed; the admin password and SuperAdmin passphrase are also stored in the private mode-0600 environment file:</p><code>${credentialPath}</code></div><div id="next-steps" class="credential-note"><strong>Next steps</strong><div class="url-row"><span>Connect this instance to Knowz Cloud</span><code>knowz login --profile cloud</code><button type="button" class="button" data-copy="knowz login --profile cloud">Copy</button></div><div class="url-row"><span>Move data between instances</span><code>knowz transfer --from &lt;profile&gt; --to &lt;profile&gt;</code><button type="button" class="button" data-copy="knowz transfer --from &lt;profile&gt; --to &lt;profile&gt;">Copy</button></div><div class="url-row"><span>Snapshot / restore</span><code>knowz export</code> / <code>knowz import</code><button type="button" class="button" data-copy="knowz export">Copy</button></div></div></section>
527
540
  </main><script>
541
+ ${focusSetupPanel.toString()}
528
542
  const setupToken=${tokenLiteral};
529
543
  const consoleSessionEndedCopy='Console session ended — re-run knowz setup';
530
544
  const ollamaEndpoint='http'+${ollamaEndpointSuffixLiteral};
@@ -532,6 +546,8 @@ const aliasPrefills=${aliasPrefillLiteral};
532
546
  const vertexChatDefault=${vertexChatDefaultLiteral};
533
547
  const vertexEmbeddingDefault=${vertexEmbeddingDefaultLiteral};
534
548
  const qwen3EmbeddingDefault=${qwen3EmbeddingDefaultLiteral};
549
+ const selfhostedRelease=${selfhostedReleaseLiteral};
550
+ const portableRelease=${portableReleaseLiteral};
535
551
  const qwen3EmbeddingDims=${qwen3EmbeddingDimsLiteral};
536
552
  const formSchema=${schemaLiteral};
537
553
  const hasExistingState=${existingStateLiteral};
@@ -557,24 +573,28 @@ let modelCards=[];
557
573
  let startAnywayArmed=false;
558
574
  let existingChoiceArmed=false;
559
575
  let terminalEventSeen=false;
576
+ let generatedCredential=null;
560
577
  function selectedProviderInput(){return form.querySelector('input[name="provider"]:checked')}
561
578
  function selectedProvider(){return selectedProviderInput().value}
562
579
  function providerField(key,provider=selectedProvider()){return form.querySelector('[data-provider-group="'+provider+'"] [name="provider.'+key+'"]')}
563
580
  function applyProviderAliasPrefill(){const selected=selectedProviderInput();const alias=selected&&selected.dataset?selected.dataset.providerAlias:'';if(!alias)return;const spec=aliasPrefills[alias];if(!spec)return;for(const key of Object.keys(spec.fields)){const el=providerField(key,spec.preset);if(el&&!el.value)el.value=spec.fields[key]}}
564
581
  function providerFields(){const provider=selectedProvider();const values={};for(const field of formSchema[provider]){const input=providerField(field.key,provider);if(input&&input.value)values[field.key]=field.number?Number(input.value):input.value}return values}
582
+ function configuredSecret(key,provider=selectedProvider()){const field=(formSchema[provider]||[]).find(function(candidate){return candidate.key===key});return Boolean(field&&field.configured)}
565
583
  function fieldDefault(provider,key){const field=(formSchema[provider]||[]).find(function(candidate){return candidate.key===key});return(field&&field.defaultValue)||''}
566
584
  function svgIcon(kind){const svg=document.createElementNS('http'+'://www.w3.org/2000/svg','svg');svg.setAttribute('viewBox','0 0 24 24');svg.setAttribute('aria-hidden','true');const paths={check:'m5 12 4 4L19 6',warn:'M12 8v5m0 3h.01M4.9 19h14.2a2 2 0 0 0 1.7-3L13.7 4a2 2 0 0 0-3.4 0L3.2 16a2 2 0 0 0 1.7 3Z',local:'M8 12h8M12 8v8M4 12a8 8 0 1 0 16 0 8 8 0 0 0-16 0Z',idle:'M4 12a8 8 0 1 0 16 0 8 8 0 0 0-16 0Z',testing:'M20 12a8 8 0 0 0-8-8M4 12a8 8 0 0 0 8 8',fail:'m8 8 8 8m0-8-8 8',play:'m9 6 9 6-9 6V6Z',vision:'M2.5 12s3.5-6 9.5-6 9.5 6 9.5 6-3.5 6-9.5 6S2.5 12 2.5 12Zm9.5 3a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z',function:'M8 4h8M9 4 6 20m5-10h5m-6 6h6',structured:'M7 5H4v14h3m10-14h3v14h-3M9 8h6m-6 4h6m-6 4h6',embedding:'M5 7h14M5 12h14M5 17h14M8 4v16m8-16v16'};const path=document.createElementNS('http'+'://www.w3.org/2000/svg','path');path.setAttribute('d',paths[kind]);svg.append(path);return svg}
567
- function deriveModelCards(){const provider=selectedProvider();const fields=providerFields();if(provider==='offline')return[{id:'offline-chat',role:'chat',title:'Deterministic stub',providerLabel:'Offline',modelName:'deterministic-stub',configured:true,state:'offline',capabilities:[],pricing:'Local · no metered cost'}];if(provider==='azure'){const configured=Boolean(fields.endpoint&&fields.apiKey);const needed='Add an endpoint & key to test';const azureEmbeddingName=typeof fields.embeddingModel==='string'&&fields.embeddingModel.trim()?fields.embeddingModel.trim():fieldDefault('azure','embeddingModel')||'text-embedding-3-small';return[{id:'azure-chat',role:'chat',title:'GPT-5.4 Mini',providerLabel:'Azure OpenAI',modelName:'gpt-5.4-mini',configured:configured,state:configured?'idle':'notconfigured',notConfiguredCopy:needed,capabilities:['function','structured'],pricing:'Provider pricing applies'},{id:'azure-embedding',role:'embedding',title:azureEmbeddingName,providerLabel:'Azure OpenAI',modelName:azureEmbeddingName,configured:configured,state:configured?'idle':'notconfigured',notConfiguredCopy:needed,capabilities:['embedding'],pricing:'Provider pricing applies'},{id:'azure-vision',role:'vision',title:'GPT-5.4 Mini Vision',providerLabel:'Azure OpenAI',modelName:'gpt-5.4-mini',configured:configured,state:configured?'idle':'notconfigured',notConfiguredCopy:needed,capabilities:['vision'],pricing:'Provider pricing applies'}]};if(provider==='gcp'){const configured=Boolean(fields.project&&fields.adcPath);const needed='Add a Vertex project & ADC path to test';const chatName=typeof fields.chatModel==='string'&&fields.chatModel.trim()?fields.chatModel.trim():vertexChatDefault;const embeddingName=typeof fields.embeddingModel==='string'&&fields.embeddingModel.trim()?fields.embeddingModel.trim():vertexEmbeddingDefault;return[{id:'gcp-chat',role:'chat',title:chatName,providerLabel:'Google Vertex AI',modelName:chatName,configured:configured,state:configured?'idle':'notconfigured',notConfiguredCopy:needed,capabilities:['function','structured'],pricing:'Provider pricing applies'},{id:'gcp-embedding',role:'embedding',title:embeddingName,providerLabel:'Google Vertex AI',modelName:embeddingName,configured:configured,state:configured?'idle':'notconfigured',notConfiguredCopy:needed,capabilities:['embedding'],pricing:'Provider pricing applies'},{id:'gcp-vision',role:'vision',title:chatName+' Vision',providerLabel:'Google Vertex AI',modelName:chatName,configured:configured,state:configured?'idle':'notconfigured',notConfiguredCopy:needed,capabilities:['vision'],pricing:'Provider pricing applies'}]};const endpointReady=Boolean(fields.endpoint);const chatName=typeof fields.chatModel==='string'?fields.chatModel.trim():'';const embeddingName=typeof fields.embeddingModel==='string'?fields.embeddingModel.trim():'';const managed=provider==='knowz-cloud';const needed=managed?'Activate or paste a Knowz Cloud AI key, then choose models':'Add an endpoint & key to test';const providerLabel=managed?'Knowz Cloud':'OpenAI-compatible';const pricing=managed?'Metered · Knowz credits apply':'Local · no metered cost';return[{id:'compat-chat',role:'chat',title:chatName||'Chat model',providerLabel:providerLabel,modelName:chatName||'Chat model not set',configured:endpointReady&&Boolean(chatName),state:endpointReady&&chatName?'idle':'notconfigured',notConfiguredCopy:needed,capabilities:['function','structured'],pricing:pricing},{id:'compat-embedding',role:'embedding',title:embeddingName||'Embedding model',providerLabel:providerLabel,modelName:embeddingName||'Embedding model not set',configured:endpointReady&&Boolean(embeddingName),state:endpointReady&&embeddingName?'idle':'notconfigured',notConfiguredCopy:needed,capabilities:['embedding'],pricing:pricing},{id:'compat-vision',role:'vision',title:(chatName||'Chat model')+' Vision',providerLabel:providerLabel,modelName:chatName||'Chat model not set',configured:endpointReady&&Boolean(chatName),state:endpointReady&&chatName?'idle':'notconfigured',notConfiguredCopy:needed,capabilities:['vision'],pricing:pricing}]}
568
- function statusPill(card){const pill=document.createElement('span');pill.className='model-pill';const connectionFailed=connectionState==='fail'&&card.state!=='pass'&&card.state!=='offline';const status=card.state==='offline'?'local':connectionFailed?'needs':card.configured?'ready':'needs';pill.dataset.status=status;pill.append(svgIcon(status==='ready'?'check':status==='needs'?'warn':'local'));const copy=document.createElement('span');copy.textContent=connectionFailed?'Fix connection':status==='ready'?'Ready':status==='needs'?'Needs credentials':'Local';pill.append(copy);return pill}
585
+ function deriveModelCards(){const provider=selectedProvider();const fields=providerFields();if(provider==='offline')return[{id:'offline-chat',role:'chat',title:form.elements.edition.value==='selfhosted'?'AI disabled':'Deterministic stub',providerLabel:'Offline',modelName:form.elements.edition.value==='selfhosted'?'Capture and text search':'deterministic-stub',configured:true,state:'offline',capabilities:[],pricing:'Local · no metered cost'}];if(provider==='azure'){const configured=Boolean(fields.endpoint&&(fields.apiKey||configuredSecret('apiKey')));const needed='Add an endpoint & key to test';const azureEmbeddingName=typeof fields.embeddingModel==='string'&&fields.embeddingModel.trim()?fields.embeddingModel.trim():fieldDefault('azure','embeddingModel')||'text-embedding-3-small';return[{id:'azure-chat',role:'chat',title:'GPT-5.4 Mini',providerLabel:'Azure OpenAI',modelName:'gpt-5.4-mini',configured:configured,state:configured?'idle':'notconfigured',notConfiguredCopy:needed,capabilities:['function','structured'],pricing:'Provider pricing applies'},{id:'azure-embedding',role:'embedding',title:azureEmbeddingName,providerLabel:'Azure OpenAI',modelName:azureEmbeddingName,configured:configured,state:configured?'idle':'notconfigured',notConfiguredCopy:needed,capabilities:['embedding'],pricing:'Provider pricing applies'},{id:'azure-vision',role:'vision',title:'GPT-5.4 Mini Vision',providerLabel:'Azure OpenAI',modelName:'gpt-5.4-mini',configured:configured,state:configured?'idle':'notconfigured',notConfiguredCopy:needed,capabilities:['vision'],pricing:'Provider pricing applies'}]};if(provider==='gcp'){const configured=Boolean(fields.project&&fields.adcPath);const needed='Add a Vertex project & ADC path to test';const chatName=typeof fields.chatModel==='string'&&fields.chatModel.trim()?fields.chatModel.trim():vertexChatDefault;const embeddingName=typeof fields.embeddingModel==='string'&&fields.embeddingModel.trim()?fields.embeddingModel.trim():vertexEmbeddingDefault;return[{id:'gcp-chat',role:'chat',title:chatName,providerLabel:'Google Vertex AI',modelName:chatName,configured:configured,state:configured?'idle':'notconfigured',notConfiguredCopy:needed,capabilities:['function','structured'],pricing:'Provider pricing applies'},{id:'gcp-embedding',role:'embedding',title:embeddingName,providerLabel:'Google Vertex AI',modelName:embeddingName,configured:configured,state:configured?'idle':'notconfigured',notConfiguredCopy:needed,capabilities:['embedding'],pricing:'Provider pricing applies'},{id:'gcp-vision',role:'vision',title:chatName+' Vision',providerLabel:'Google Vertex AI',modelName:chatName,configured:configured,state:configured?'idle':'notconfigured',notConfiguredCopy:needed,capabilities:['vision'],pricing:'Provider pricing applies'}]};const endpointReady=Boolean(fields.endpoint);const chatName=typeof fields.chatModel==='string'?fields.chatModel.trim():'';const embeddingName=typeof fields.embeddingModel==='string'?fields.embeddingModel.trim():'';const managed=provider==='knowz-cloud';const needed=managed?'Activate or paste a Knowz Cloud AI key, then choose models':'Add an endpoint & key to test';const providerLabel=managed?'Knowz Cloud':'OpenAI-compatible';const pricing=managed?'Metered · Knowz credits apply':'Local · no metered cost';return[{id:'compat-chat',role:'chat',title:chatName||'Chat model',providerLabel:providerLabel,modelName:chatName||'Chat model not set',configured:endpointReady&&Boolean(chatName),state:endpointReady&&chatName?'idle':'notconfigured',notConfiguredCopy:needed,capabilities:['function','structured'],pricing:pricing},{id:'compat-embedding',role:'embedding',title:embeddingName||'Embedding model',providerLabel:providerLabel,modelName:embeddingName||'Embedding model not set',configured:endpointReady&&Boolean(embeddingName),state:endpointReady&&embeddingName?'idle':'notconfigured',notConfiguredCopy:needed,capabilities:['embedding'],pricing:pricing},{id:'compat-vision',role:'vision',title:(chatName||'Chat model')+' Vision',providerLabel:providerLabel,modelName:chatName||'Chat model not set',configured:endpointReady&&Boolean(chatName),state:endpointReady&&chatName?'idle':'notconfigured',notConfiguredCopy:needed,capabilities:['vision'],pricing:pricing}]}
586
+ function statusPill(card){const pill=document.createElement('span');pill.className='model-pill';const connectionFailed=connectionState==='fail'&&card.state!=='pass'&&card.state!=='offline';const status=card.state==='offline'?'local':connectionFailed?'needs':card.configured?'ready':'needs';pill.dataset.status=status;pill.append(svgIcon(status==='ready'?'check':status==='needs'?'warn':'local'));const copy=document.createElement('span');copy.textContent=connectionFailed?'Fix connection':status==='ready'?(card.state==='pass'?'Verified':'Configured'):status==='needs'?'Needs credentials':'Local';pill.append(copy);return pill}
569
587
  function capabilityTile(capability){const labels={vision:'Vision',function:'Function calling',structured:'Structured output',embedding:'Embedding'};const tile=document.createElement('span');tile.className='capability';tile.dataset.cap=capability;tile.append(svgIcon(capability));const label=document.createElement('span');label.textContent=labels[capability];tile.append(label);return tile}
570
588
  function modelStateCopy(card){if(card.state==='notconfigured')return card.notConfiguredCopy||'Add provider configuration to test';if(card.state==='testing')return'Testing model';if(card.state==='pass')return card.message;if(card.state==='fail')return card.message;if(card.state==='offline')return'No model test needed';return'Not tested'}
571
- function updateModelSummary(){const tested=modelCards.filter(function(card){return card.state==='pass'}).length;modelCountElement.textContent=String(modelCards.length);const providerLabel=selectedProvider()==='knowz-cloud'?'Knowz Cloud':selectedProvider()==='openai-compatible'?'OpenAI-compatible':selectedProvider()==='azure'?'Azure OpenAI':selectedProvider()==='gcp'?'Google Vertex AI':'offline';modelSummary.textContent='AI '+providerLabel+' · '+modelCards.length+' models · '+(tested?tested+' tested ':'not verified')}
589
+ function updateModelSummary(){if(selectedProvider()==='offline'){modelCountElement.textContent='0';modelSummary.textContent='AI disabled · Capture and text search available';return}const required=modelCards.filter(function(card){return card.role!=='vision'});const tested=required.filter(function(card){return card.state==='pass'}).length;const optional=modelCards.length-required.length;modelCountElement.textContent=String(modelCards.length);const providerLabel=selectedProvider()==='knowz-cloud'?'Knowz Cloud':selectedProvider()==='openai-compatible'?'OpenAI-compatible':selectedProvider()==='azure'?'Azure OpenAI':selectedProvider()==='gcp'?'Google Vertex AI':'offline';modelSummary.textContent='AI '+providerLabel+' · '+required.length+' required · '+(tested===required.length?'ready ✓':tested+' tested')+(optional?' · '+optional+' optional':'')}
572
590
  function updateModelCard(card){const element=card.element;if(!element)return;element.classList.toggle('dimmed',card.state==='notconfigured');const oldPill=element.querySelector('.model-pill');oldPill.replaceWith(statusPill(card));const button=element.querySelector('button');button.disabled=!card.configured||card.state==='testing'||card.state==='offline';const chip=element.querySelector('.chip');chip.setAttribute('data-model-test-state',card.state);const marker=svgIcon(card.state==='pass'?'check':card.state==='fail'?'fail':card.state==='notconfigured'?'warn':card.state==='testing'?'testing':card.state==='offline'?'local':'idle');if(card.state==='testing')marker.classList.add('spinner');const copy=document.createElement('span');copy.textContent=modelStateCopy(card);chip.replaceChildren(marker,copy);updateModelSummary()}
573
591
  async function testModelCard(card){if(!card.configured||card.state==='offline')return;card.state='testing';updateModelCard(card);try{const response=await fetch('/api/test-model',{method:'POST',headers:{'X-Setup-Token':setupToken,'Content-Type':'application/json'},body:JSON.stringify({provider:selectedProvider(),providerFields:providerFields(),modelRole:card.role})});const verdict=await response.json();if(response.ok&&verdict.ok){card.state='pass';card.message='Responded'+(verdict.latencyMs?' · '+verdict.latencyMs+' ms':'')}else if(verdict.category==='endpoint'){card.state='notconfigured';card.configured=false;card.message='Add provider configuration to test'}else{card.state='fail';card.message=verdict.message||'Model test failed'}}catch{card.state='fail';card.message=consoleSessionEndedCopy}updateModelCard(card);if(card.state==='fail')card.element.querySelector('.chip').focus()}
574
592
  function renderModelCards(){modelCards=deriveModelCards();modelCardsElement.textContent='';for(const card of modelCards){const element=document.createElement('article');element.className='model-card';element.dataset.modelId=card.id;card.element=element;const head=document.createElement('div');head.className='model-head';const identity=document.createElement('div');const title=document.createElement('h4');title.className='model-title';title.textContent=card.title;const subtitle=document.createElement('span');subtitle.className='model-subtitle';subtitle.textContent=card.providerLabel+' · '+card.modelName;identity.append(title,subtitle);head.append(identity,statusPill(card));const facts=document.createElement('div');facts.className='model-facts';const tier=document.createElement('span');tier.className='tier-label';tier.textContent=(card.role==='embedding'?'Embedding':'Normal')+' tier';const pricing=document.createElement('span');pricing.className='pricing';pricing.textContent=card.pricing;facts.append(tier,pricing);const caps=document.createElement('div');caps.className='capabilities';card.capabilities.forEach(function(capability){caps.append(capabilityTile(capability))});if(!card.capabilities.length){const empty=document.createElement('span');empty.className='pricing';empty.textContent='No live model capabilities';caps.append(empty)}const actions=document.createElement('div');actions.className='model-test';const button=document.createElement('button');button.type='button';button.className='button';button.append(svgIcon('play'));const buttonCopy=document.createElement('span');buttonCopy.textContent='Test model';button.append(buttonCopy);button.addEventListener('click',function(){void testModelCard(card)});const chip=document.createElement('span');chip.className='chip';chip.setAttribute('data-model-test-state','idle');chip.setAttribute('aria-live','polite');chip.tabIndex=-1;actions.append(button,chip);element.append(head,facts,caps,actions);modelCardsElement.append(element);updateModelCard(card)}updateModelSummary()}
575
593
  // Summary contract: N models · M tested ✓.
576
- function firstUntestedModelButton(){const card=modelCards.find(function(candidate){return candidate.configured&&candidate.state!=='pass'&&candidate.state!=='offline'});return card&&card.element.querySelector('button')}
577
- function verificationComplete(){const aiComplete=selectedProvider()==='offline'||(connectionState==='pass'&&modelCards.every(function(card){return card.state==='pass'}));return aiComplete&&portTestState==='pass'}
594
+ function firstUntestedModelButton(){const card=modelCards.find(function(candidate){return candidate.role!=='vision'&&candidate.configured&&candidate.state!=='pass'&&candidate.state!=='offline'});return card&&card.element.querySelector('button')}
595
+ function incompleteChecks(){const checks=[];if(selectedProvider()!=='offline'&&connectionState!=='pass')checks.push('AI connection not tested');if(selectedProvider()!=='offline'){modelCards.filter(function(card){return card.role!=='vision'&&card.state!=='pass'}).forEach(function(card){checks.push((card.role==='embedding'?'Embedding':'Chat')+' model not tested')})}if(portTestState!=='pass')checks.push('Ports not tested');return checks}
596
+ function verificationComplete(){return incompleteChecks().length===0}
597
+ function renderIncompleteChecks(){softConfirm.querySelector('p').textContent='Complete these checks before starting: '+incompleteChecks().join('; ')+'. Start anyway?'}
578
598
  function showFields(){applyProviderAliasPrefill();const provider=selectedProvider();document.querySelectorAll('[data-provider-group]').forEach(function(group){const visible=group.dataset.providerGroup===provider;group.hidden=!visible;group.querySelectorAll('input,select').forEach(function(input){input.disabled=!visible})});testRow.hidden=provider==='offline';softConfirm.hidden=true;invalidateConnectionTest();renderModelCards();}
579
599
  function setConnectionState(state,message){const changed=connectionState!==state;connectionState=state;testChip.dataset.testState=state;const marker=svgIcon(state==='pass'?'check':state==='fail'?'fail':state==='testing'?'testing':'idle');if(state==='testing')marker.classList.add('spinner');const copy=document.createElement('span');copy.textContent=message;testChip.replaceChildren(marker,copy);testButton.disabled=state==='testing';if(changed)modelCards.forEach(function(card){updateModelCard(card)});}
580
600
  function invalidateConnectionTest(){if(connectionState!=='testing')setConnectionState('idle','Not tested');startAnywayArmed=false;softConfirm.hidden=true;}
@@ -597,10 +617,10 @@ document.getElementById('start-anyway').addEventListener('click',function(){star
597
617
  document.getElementById('apply-existing-changes').addEventListener('click',function(){existingChoice.hidden=true;existingChoiceArmed=false;form.elements.reconfigure.checked=true;form.requestSubmit()});
598
618
  document.getElementById('inspect-existing').addEventListener('click',function(){existingChoice.hidden=true;existingChoiceArmed=true;form.requestSubmit()});
599
619
  document.getElementById('test-first').addEventListener('click',function(){softConfirm.hidden=true;if(selectedProvider()!=='offline'&&connectionState!=='pass'){testButton.focus();testButton.click();return}const first=firstUntestedModelButton();if(first){first.scrollIntoView({block:'center'});first.focus();return}if(portTestState!=='pass'){portTestButton.scrollIntoView({block:'center'});portTestButton.focus();portTestButton.click()}});
600
- function updateEdition(){const selfhosted=form.elements.edition.value==='selfhosted';document.getElementById('edition-eyebrow').textContent=selfhosted?'Self-hosted edition':'Portable edition';document.getElementById('component-public-site-card').hidden=selfhosted;if(selfhosted){form.elements.withPublicSite.checked=false;form.elements.storage.value='filesystem'}document.getElementById('storage-mode-field').hidden=selfhosted;updateComponents();updateImageMode()}
620
+ function updateEdition(){const selfhosted=form.elements.edition.value==='selfhosted';document.querySelectorAll('[data-portable-only]').forEach(function(el){el.hidden=selfhosted;el.querySelectorAll('input,select').forEach(function(input){input.disabled=selfhosted})});document.querySelectorAll('[data-provider-mode="gcp"]').forEach(function(el){el.hidden=selfhosted;el.querySelector('input').disabled=selfhosted});if(selfhosted&&selectedProvider()==='gcp'){form.querySelector('input[name="provider"][value="offline"]').checked=true;showFields()}Array.from(form.elements.imageMode.options).forEach(function(option){if(option.value!=='pull'){option.hidden=selfhosted;option.disabled=selfhosted}});if(selfhosted)form.elements.imageMode.value='pull';const currentVersion=form.elements.version.value;if(currentVersion===selfhostedRelease||currentVersion===portableRelease)form.elements.version.value=selfhosted?selfhostedRelease:portableRelease;document.getElementById('edition-eyebrow').textContent=selfhosted?'Self-hosted edition':'Portable edition';document.getElementById('component-public-site-card').hidden=selfhosted;if(selfhosted){form.elements.withPublicSite.checked=false;form.elements.storage.value='filesystem'}document.getElementById('storage-mode-field').hidden=selfhosted;updateComponents();updateImageMode()}
601
621
  function updateImageMode(){const preloaded=form.elements.imageMode.value==='preloaded';const selfhosted=form.elements.edition.value==='selfhosted';const hideGhcr=preloaded||selfhosted;document.getElementById('ghcr-token-field').hidden=hideGhcr;form.elements.ghcrToken.disabled=hideGhcr}
602
622
  form.elements.imageMode.addEventListener('change',updateImageMode);form.elements.edition.addEventListener('change',updateEdition);updateEdition();
603
- function setupBody(){return{provider:selectedProvider(),providerFields:providerFields(),edition:form.elements.edition.value,imageMode:form.elements.imageMode.value,name:form.elements.name.value,version:form.elements.version.value,storage:form.elements.storage.value,components:{mcp:form.elements.withMcp.checked,publicSite:form.elements.withPublicSite.checked},publicUrls:{api:form.elements.publicApiUrl.value||undefined,web:form.elements.publicWebUrl.value||undefined,mcp:form.elements.publicMcpUrl.value||undefined},orgName:form.elements.orgName.value||undefined,superAdminPassphrase:form.elements.superAdminPassphrase.value||undefined,ports:{api:Number(form.elements.apiPort.value),web:Number(form.elements.webPort.value),mcp:Number(form.elements.mcpPort.value),publicSite:form.elements.withPublicSite.checked?Number(form.elements.publicSitePort.value):undefined},ghcrToken:form.elements.ghcrToken.disabled?undefined:(form.elements.ghcrToken.value||undefined),accountName:form.elements.accountName.value,accountEmail:form.elements.accountEmail.value,ageAttested:form.elements.ageAttested.checked,seedDemo:form.elements.seedDemo.checked,reconfigure:form.elements.reconfigure.checked}}
623
+ function setupBody(){return{provider:selectedProvider(),providerFields:providerFields(),edition:form.elements.edition.value,imageMode:form.elements.imageMode.value,name:form.elements.name.value,version:form.elements.version.value,storage:form.elements.storage.value,components:{mcp:form.elements.withMcp.checked,publicSite:form.elements.withPublicSite.checked},publicUrls:form.elements.edition.value==='selfhosted'?undefined:{api:form.elements.publicApiUrl.value||undefined,web:form.elements.publicWebUrl.value||undefined,mcp:form.elements.publicMcpUrl.value||undefined},orgName:form.elements.edition.value==='selfhosted'?undefined:(form.elements.orgName.value||undefined),superAdminPassphrase:form.elements.superAdminPassphrase.value||undefined,ports:{api:Number(form.elements.apiPort.value),web:Number(form.elements.webPort.value),mcp:Number(form.elements.mcpPort.value),publicSite:form.elements.withPublicSite.checked?Number(form.elements.publicSitePort.value):undefined},ghcrToken:form.elements.ghcrToken.disabled?undefined:(form.elements.ghcrToken.value||undefined),accountName:form.elements.edition.value==='selfhosted'?undefined:form.elements.accountName.value,accountEmail:form.elements.edition.value==='selfhosted'?undefined:form.elements.accountEmail.value,ageAttested:form.elements.ageAttested.checked,seedDemo:form.elements.edition.value==='selfhosted'?false:form.elements.seedDemo.checked,reconfigure:form.elements.reconfigure.checked}}
604
624
  function parseSseFrame(block){let eventType='message';const data=[];for(const line of block.replace(/\\r/g,'').split('\\n')){if(line.startsWith('event:'))eventType=line.slice(6).trim();if(line.startsWith('data:'))data.push(line.slice(5).trimStart())}if(!data.length)return null;try{return{eventType:eventType,data:JSON.parse(data.join('\\n'))}}catch{return null}}
605
625
  function appendRaw(line){if(typeof line!=='string')return;progressLog.textContent+=(progressLog.textContent?'\\n':'')+line;progressLog.scrollTop=progressLog.scrollHeight;advanceStep(line)}
606
626
  function stepElement(id){return document.querySelector('[data-step="'+id+'"]')}
@@ -608,11 +628,20 @@ function setStep(id,state){const row=stepElement(id);if(!row)return;row.dataset.
608
628
  function activate(id){const rows=Array.from(document.querySelectorAll('.step'));const next=rows.findIndex(function(row){return row.dataset.step===id});rows.forEach(function(row,index){if(index<next&&row.dataset.state!=='fail')setStep(row.dataset.step,'done')});if(next>=0&&rows[next].dataset.state!=='done')setStep(id,'active')}
609
629
  function advanceStep(line){const value=line.toLowerCase();if(value.includes('minio-createbucket')&&(value.includes('bucket ready')||value.includes('exit 0')||value.includes('exited with code 0')||value.includes('completed successfully'))){setStep('minio','done');activate('services');return}if(value.includes('preflight')||value.includes('config'))activate('config');else if(value.includes('pull')||value.includes('image')||value.includes('build'))activate('images');else if(value.includes('postgres')||value.includes('redis')||value.includes('minio'))activate('data');else if(value.includes('worker')||value.includes('compose')||value.includes('service'))activate('services');else if(value.includes('bootstrap')||value.includes('account')||value.includes('sign-in'))activate('account');else if(value.includes('health')||value.includes('provider')||value.includes('verify'))activate('verify')}
610
630
  function settleSteps(success){const rows=Array.from(document.querySelectorAll('.step'));if(success){rows.forEach(function(row){setStep(row.dataset.step,'done')});return}const active=rows.find(function(row){return row.dataset.state==='active'});if(active)setStep(active.dataset.step,'fail');rows.forEach(function(row){if(row.dataset.state==='active')setStep(row.dataset.step,'idle')})}
611
- function handleEvent(eventType,data){if(eventType==='progress'){appendRaw(data);return}terminalEventSeen=true;if(eventType==='result'){settleSteps(true);renderResult(data);return}settleSteps(false);showFailure(typeof data==='string'?data:eventType==='timeout'?'Setup console timed out.':'Setup failed.');}
631
+ function handleEvent(eventType,data){if(eventType==='progress'){appendRaw(data);return}terminalEventSeen=true;if(eventType==='result'){settleSteps(data.status==='complete');renderResult(data);return}if(eventType==='canceled'){settleSteps(false);showFailure('Setup canceled. Existing data and credentials were preserved.');return}settleSteps(false);showFailure(typeof data==='string'?data:eventType==='timeout'?'Setup console timed out.':'Setup failed.');}
612
632
  async function readProgress(){const response=await fetch('/api/progress',{headers:{'X-Setup-Token':setupToken,'X-Setup-Progress-Stream':'1'}});if(!response.ok)return;const reader=response.body.getReader();const decoder=new TextDecoder();let buffer='';while(true){const chunk=await reader.read();buffer+=decoder.decode(chunk.value||new Uint8Array(),{stream:!chunk.done});let boundary;while((boundary=buffer.indexOf('\\n\\n'))>=0){const parsed=parseSseFrame(buffer.slice(0,boundary));buffer=buffer.slice(boundary+2);if(parsed)handleEvent(parsed.eventType,parsed.data)}if(chunk.done)break}}
613
- function showFailure(message){runError.textContent=message;runError.hidden=false;document.getElementById('back-config').hidden=false;runError.focus();}
633
+ function showFailure(message){progressView.hidden=false;resultView.hidden=true;runError.textContent=message;runError.hidden=false;document.getElementById('back-config').hidden=false;focusSetupPanel(runError);}
614
634
  function addServiceLink(label,address){if(!address)return;const row=document.createElement('div');row.className='url-row';const name=document.createElement('strong');name.textContent=label;const code=document.createElement('code');code.textContent=address;const copy=document.createElement('button');copy.type='button';copy.className='button';copy.textContent='Copy';copy.addEventListener('click',function(){void navigator.clipboard.writeText(address)});const open=document.createElement('a');open.className='button';open.textContent='Open';open.target='_blank';open.rel='noreferrer';open.href=address;row.append(name,code,copy,open);document.getElementById('url-list').append(row)}
615
- function renderResult(result){progressView.hidden=true;resultView.hidden=false;const inspecting=Boolean(result&&result.existing);document.getElementById('result-icon').textContent=inspecting?'i':'✓';document.getElementById('result-heading').textContent=inspecting?'Existing stack inspected':'Knowz is ready';document.getElementById('result-copy').textContent=inspecting?'Your form changes were NOT applied. Tick Reconfigure existing stack and start again to apply them.':'Your local, private platform is running.';document.getElementById('credential-note').hidden=inspecting;document.getElementById('next-steps').hidden=inspecting;const links=document.getElementById('url-list');links.textContent='';addServiceLink('Web',result&&result.webUrl);addServiceLink('API',result&&result.apiUrl);if(form.elements.withMcp.checked)addServiceLink('MCP',result&&result.mcpUrl);if(form.elements.withPublicSite.checked)addServiceLink('Public site',result&&result.publicSiteUrl);const chip=document.getElementById('verify-chip');chip.hidden=true;if(inspecting)return;if(result&&result.verify&&result.verify.api==='ok'){chip.hidden=false;chip.dataset.testState='pass';chip.textContent='✓ API verification passed'}else if(result&&result.verify&&result.verify.api==='warn'){chip.hidden=false;chip.dataset.testState='fail';chip.textContent='! API not responding yet — give it a moment'}}
635
+ function renderResult(result){progressView.hidden=true;resultView.hidden=false;const inspecting=Boolean(result&&result.existing);const complete=Boolean(result&&result.status==='complete');document.getElementById('cancel-setup').hidden=true;document.getElementById('auth-recovery').hidden=complete||result.runtimeHealth==='unavailable'||form.elements.edition.value!=='selfhosted';document.getElementById('start-runtime').hidden=result.runtimeHealth!=='unavailable';const credential=result&&result.oneTimeCredential&&result.oneTimeCredential.generated===true?result.oneTimeCredential:null;generatedCredential=credential;document.getElementById('result-icon').textContent=inspecting||!complete?'i':'✓';document.getElementById('result-heading').textContent=inspecting?'Existing stack inspected':complete?'Knowz is ready':'Finish signing in';document.getElementById('result-copy').textContent=complete?'Your local Knowz is running and the CLI is signed in.':(result.nextAction||'The runtime started. Finish account setup to enable CLI access.');document.getElementById('credential-note').hidden=inspecting||Boolean(credential);const oneTime=document.getElementById('one-time-credential');oneTime.hidden=inspecting||!credential;document.getElementById('next-steps').hidden=!complete;if(credential){document.getElementById('generated-admin-username').textContent=credential.username;const password=document.getElementById('generated-admin-password');password.textContent='••••••••••••';document.getElementById('toggle-generated-password').textContent='Show password'}const links=document.getElementById('url-list');links.textContent='';addServiceLink('Web',result&&result.webUrl);addServiceLink('API',result&&result.apiUrl);if(form.elements.withMcp.checked)addServiceLink('MCP',result&&result.mcpUrl);if(form.elements.withPublicSite.checked)addServiceLink('Public site',result&&result.publicSiteUrl);const chip=document.getElementById('verify-chip');chip.hidden=true;focusSetupPanel(resultView);if(inspecting&&!complete)return;if(result&&result.verify&&result.verify.api==='ok'){chip.hidden=false;chip.dataset.testState='pass';chip.textContent='✓ API verification passed'}else if(result&&result.verify&&result.verify.api==='warn'){chip.hidden=false;chip.dataset.testState='fail';chip.textContent='! API not responding yet — give it a moment'}}
636
+
637
+ document.getElementById('close-setup').addEventListener('click',async function(){await fetch('/api/close',{method:'POST',headers:{'X-Setup-Token':setupToken}});document.body.innerHTML='<main class="shell"><h1>Setup closed</h1><p>Existing runtime data was preserved. You can close this tab.</p></main>'});
638
+ document.getElementById('cancel-setup').addEventListener('click',async function(){this.disabled=true;await fetch('/api/cancel',{method:'POST',headers:{'X-Setup-Token':setupToken}});this.disabled=false});
639
+ document.getElementById('auth-recovery').addEventListener('submit',async function(event){event.preventDefault();const el=this;const error=document.getElementById('auth-error');error.textContent='';const button=el.querySelector('button');button.disabled=true;try{const response=await fetch('/api/auth',{method:'POST',headers:{'X-Setup-Token':setupToken,'Content-Type':'application/json'},body:JSON.stringify({username:el.elements.username.value,password:el.elements.password.value,newPassword:el.elements.newPassword.value||undefined})});const result=await response.json();if(response.ok)renderResult(result.result);else error.textContent=result.error||'Sign-in was not verified.'}catch{error.textContent='The setup console disconnected.'}finally{el.elements.password.value='';el.elements.newPassword.value='';button.disabled=false}});
640
+ document.getElementById('start-runtime').addEventListener('click',async function(){this.disabled=true;terminalEventSeen=false;resultView.hidden=true;progressView.hidden=false;document.getElementById('cancel-setup').hidden=false;focusSetupPanel(progressView);const progressPromise=readProgress();try{const response=await fetch('/api/start',{method:'POST',headers:{'X-Setup-Token':setupToken}});const result=await response.json();await progressPromise;if(response.ok)renderResult(result.result);else showFailure(result.error||'Runtime could not be started.')}catch{showFailure('The local setup console disconnected. Re-run setup to inspect this runtime.')}finally{this.disabled=false}});
641
+ void fetch('/api/status',{headers:{'X-Setup-Token':setupToken}}).then(function(response){return response.ok?response.json():null}).then(function(status){if(!status)return;if(status.inFlight){form.inert=true;progressView.hidden=false;document.getElementById('cancel-setup').hidden=false;focusSetupPanel(progressView);void readProgress()}else if(status.result)renderResult(status.result)}).catch(function(){});
642
+
643
+ document.getElementById('toggle-generated-password').addEventListener('click',function(){if(!generatedCredential)return;const password=document.getElementById('generated-admin-password');const showing=this.textContent==='Hide password';if(showing){password.textContent='••••••••••••';this.textContent='Show password'}else{password.textContent=generatedCredential.password;this.textContent='Hide password'}});
644
+ document.getElementById('copy-generated-password').addEventListener('click',function(){if(generatedCredential)void navigator.clipboard.writeText(generatedCredential.password)});
616
645
  document.querySelectorAll('#next-steps button[data-copy]').forEach(function(button){button.addEventListener('click',function(){void navigator.clipboard.writeText(button.dataset.copy)})});
617
646
  document.getElementById('back-config').addEventListener('click',function(){document.querySelectorAll('input[type=password]').forEach(function(input){input.value=''});form.inert=false;form.classList.remove('dimmed');form.hidden=false;progressView.hidden=true;runError.hidden=true;document.getElementById('back-config').hidden=true;terminalEventSeen=false;document.querySelectorAll('.step').forEach(function(row){setStep(row.dataset.step,'idle')});progressLog.textContent='';invalidateConnectionTest();invalidatePortTest();});
618
647
  const stepPanels=Array.from(document.querySelectorAll('.step-panel'));
@@ -668,7 +697,7 @@ railSteps.forEach(function(button){
668
697
  });
669
698
  });
670
699
  goToStep(1);
671
- form.addEventListener('submit',async function(event){event.preventDefault();if(renderDuplicatePorts()){portTestButton.scrollIntoView({block:'center'});portTestButton.focus();return}if(hasExistingState&&!form.elements.reconfigure.checked&&!existingChoiceArmed){existingChoice.hidden=false;existingChoice.querySelector('button').focus();return}const inspectingExisting=hasExistingState&&!form.elements.reconfigure.checked&&existingChoiceArmed;existingChoiceArmed=false;existingChoice.hidden=true;if(!inspectingExisting&&!verificationComplete()&&!startAnywayArmed){softConfirm.hidden=false;softConfirm.querySelector('button').focus();return}if(form.elements.reconfigure.checked&&!window.confirm('Reconfigure the existing local stack? No data will be deleted.'))return;terminalEventSeen=false;runError.hidden=true;form.inert=true;form.classList.add('dimmed');progressView.hidden=false;activate('config');const progressPromise=readProgress();let response;let result;try{response=await fetch('/api/setup',{method:'POST',headers:{'Content-Type':'application/json','X-Setup-Token':setupToken},body:JSON.stringify(setupBody())});result=await response.json();await progressPromise;if(!response.ok&&!terminalEventSeen)showFailure(result.error||'Setup failed.');if(response.ok&&!terminalEventSeen&&result.result){settleSteps(true);renderResult(result.result)}}catch{settleSteps(false);showFailure('The local setup console disconnected. Re-run setup if the CLI exited.')}});
700
+ form.addEventListener('submit',async function(event){event.preventDefault();if(renderDuplicatePorts()){portTestButton.scrollIntoView({block:'center'});portTestButton.focus();return}if(hasExistingState&&!form.elements.reconfigure.checked&&!existingChoiceArmed){existingChoice.hidden=false;existingChoice.querySelector('button').focus();return}const inspectingExisting=hasExistingState&&!form.elements.reconfigure.checked&&existingChoiceArmed;existingChoiceArmed=false;existingChoice.hidden=true;if(!inspectingExisting&&!verificationComplete()&&!startAnywayArmed){renderIncompleteChecks();softConfirm.hidden=false;softConfirm.querySelector('button').focus();return}if(form.elements.reconfigure.checked&&!window.confirm('Reconfigure the existing local stack? No data will be deleted.'))return;terminalEventSeen=false;runError.hidden=true;form.inert=true;form.classList.add('dimmed');progressView.hidden=false;document.getElementById('cancel-setup').hidden=false;focusSetupPanel(progressView);activate('config');const progressPromise=readProgress();let response;let result;try{response=await fetch('/api/setup',{method:'POST',headers:{'Content-Type':'application/json','X-Setup-Token':setupToken},body:JSON.stringify(setupBody())});result=await response.json();await progressPromise;if(!response.ok&&!terminalEventSeen)showFailure(result.error||'Setup failed.');if(response.ok&&result.result){settleSteps(result.result.status==='complete');renderResult(result.result)}}catch{settleSteps(false);showFailure('The local setup console disconnected. Re-run setup if the CLI exited.')}});
672
701
  </script></body></html>`;
673
702
  }
674
703
  //# sourceMappingURL=setup-page.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"setup-page.js","sourceRoot":"","sources":["../../src/lib/setup-page.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup-page.js","sourceRoot":"","sources":["../../src/lib/setup-page.ts"],"names":[],"mappings":"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"}
@@ -47,6 +47,7 @@ export interface SetupFormField {
47
47
  suggestions?: string[];
48
48
  selectOptions?: string[];
49
49
  locked?: boolean;
50
+ configured?: boolean;
50
51
  }
51
52
  export type SetupFormSchema = Record<SetupProviderPreset, SetupFormField[]>;
52
53
  export declare function deriveSetupFormSchema(requiredEnvByPreset: Record<string, string[]>, fieldMap: Partial<Record<PlatformProviderPreset, Record<string, FieldMeta>>>): SetupFormSchema;
@@ -1 +1 @@
1
- {"version":3,"file":"setup-plan.d.ts","sourceRoot":"","sources":["../../src/lib/setup-plan.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAYL,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAiD,KAAK,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAG7G,MAAM,MAAM,mBAAmB,GAAG,sBAAsB,CAAC;AAEzD,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC;IAC7D,SAAS,EAAE,OAAO,GAAG,MAAM,GAAG,WAAW,CAAC;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/E,UAAU,CAAC,EAAE,OAAO,CAAC;QAAE,GAAG,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC5D,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,UAAU,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,IAAI,CAAA;KAAE,CAAC;IAC9D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,6DAA6D;IAC7D,OAAO,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;CACrC;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,mBAAmB,EAAE,cAAc,EAAE,CAAC,CAAC;AAE5E,wBAAgB,qBAAqB,CACnC,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAC7C,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,GAC3E,eAAe,CA0BjB;AAcD,6FAA6F;AAC7F,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,SAAS,GAAG,cAAc,CAuHzE"}
1
+ {"version":3,"file":"setup-plan.d.ts","sourceRoot":"","sources":["../../src/lib/setup-plan.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAYL,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAiD,KAAK,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAI7G,MAAM,MAAM,mBAAmB,GAAG,sBAAsB,CAAC;AAEzD,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC;IAC7D,SAAS,EAAE,OAAO,GAAG,MAAM,GAAG,WAAW,CAAC;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/E,UAAU,CAAC,EAAE,OAAO,CAAC;QAAE,GAAG,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC5D,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,UAAU,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,IAAI,CAAA;KAAE,CAAC;IAC9D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,6DAA6D;IAC7D,OAAO,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;CACrC;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,mBAAmB,EAAE,cAAc,EAAE,CAAC,CAAC;AAE5E,wBAAgB,qBAAqB,CACnC,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAC7C,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,GAC3E,eAAe,CA0BjB;AAcD,6FAA6F;AAC7F,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,SAAS,GAAG,cAAc,CA0HzE"}
@@ -1,7 +1,9 @@
1
1
  import { isAbsolute } from 'node:path';
2
+ import { validateSelfHostedSetupOptions } from './setup-capabilities.js';
2
3
  import { PLATFORM_PROVIDERS, validateOpenAiCompatibleEndpoint, validateHttpsEndpoint, validatePort, validatePublicUrl, validateProjectName, validateStorageMode, validateVersion, } from './platform-runtime.js';
3
4
  import { DEFAULT_PORTABLE_VERSION, localProfileNameFor } from './platform-frontdoor.js';
4
5
  import { KNOWZ_CLOUD_ENDPOINT, PROVIDER_PRESETS } from './provider-presets.js';
6
+ import { STABLE_SELFHOSTED_RELEASE } from './selfhosted-lifecycle.js';
5
7
  export function deriveSetupFormSchema(requiredEnvByPreset, fieldMap) {
6
8
  const result = {};
7
9
  for (const preset of PLATFORM_PROVIDERS) {
@@ -41,8 +43,10 @@ function numberField(fields, key) {
41
43
  }
42
44
  /** Pure browser-collected plan → the same `runFrontDoor` input consumed by terminal `up`. */
43
45
  export function setupPlanToFrontDoorInput(plan) {
46
+ if (plan.edition !== 'portable')
47
+ validateSelfHostedSetupOptions(plan);
44
48
  const name = validateProjectName(plan.name?.trim() || 'knowz');
45
- const version = validateVersion(plan.version?.trim() || DEFAULT_PORTABLE_VERSION);
49
+ const version = validateVersion(plan.version?.trim() || (plan.edition === 'portable' ? DEFAULT_PORTABLE_VERSION : STABLE_SELFHOSTED_RELEASE));
46
50
  const ports = {
47
51
  api: validatePort(plan.ports?.api ?? 5000, 'API'),
48
52
  web: validatePort(plan.ports?.web ?? 3000, 'web'),
@@ -1 +1 @@
1
- {"version":3,"file":"setup-plan.js","sourceRoot":"","sources":["../../src/lib/setup-plan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup-plan.js","sourceRoot":"","sources":["../../src/lib/setup-plan.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { Hono } from 'hono';
2
2
  import { type SetupLicenseStatus } from './setup-page.js';
3
- import { type SetupFormSchema, type SetupPlan } from './setup-plan.js';
3
+ import { type SetupFormSchema, type SetupPlan, type SetupProviderPreset } from './setup-plan.js';
4
4
  import type { FrontDoorInput } from './platform-frontdoor.js';
5
5
  import type { PreflightReport } from './platform-preflight.js';
6
6
  import { type ModelProbeOutcome, type ModelProbeSelection, type CloudAiModelDiscoveryResult, type ProviderProbeResult } from './platform-provider-probe.js';
@@ -15,8 +15,10 @@ export interface SetupServerDeps {
15
15
  expectedPort?: number;
16
16
  formSchema: SetupFormSchema;
17
17
  planDefaults?: Partial<SetupPlan>;
18
+ /** Private provider drafts; never serialized into page HTML or status. */
19
+ providerDefaults?: Partial<Record<SetupProviderPreset, SetupPlan['providerFields']>>;
18
20
  preflight: () => Promise<PreflightReport>;
19
- runSetup: (input: FrontDoorInput, emit: (line: string) => void) => Promise<unknown>;
21
+ runSetup: (input: FrontDoorInput, emit: (line: string) => void, signal?: AbortSignal) => Promise<unknown>;
20
22
  /** Read-only provider connectivity probe; launchSetupConsole binds the shared real implementation. */
21
23
  probeProvider?: (selection: ProviderSelection) => Promise<ProviderProbeResult>;
22
24
  /** Bounded live chat/embedding probe; response content never crosses this server boundary. */
@@ -33,6 +35,13 @@ export interface SetupServerDeps {
33
35
  shutdown?: (reason: 'success' | 'timeout' | 'closed') => void | Promise<void>;
34
36
  /** Secret-free current-state summary; used to make existing-stack visits non-destructive. */
35
37
  currentState?: () => unknown;
38
+ inspectRuntime?: () => Promise<unknown>;
39
+ startRuntime?: (emit: (line: string) => void, signal: AbortSignal) => Promise<unknown>;
40
+ resumeAuthentication?: (credentials: {
41
+ username: string;
42
+ password: string;
43
+ newPassword?: string;
44
+ }, signal: AbortSignal) => Promise<unknown>;
36
45
  now?: () => number;
37
46
  serviceUrls?: {
38
47
  webUrl: string;
@@ -1 +1 @@
1
- {"version":3,"file":"setup-server.d.ts","sourceRoot":"","sources":["../../src/lib/setup-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup-server.d.ts","sourceRoot":"","sources":["../../src/lib/setup-server.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAU5B,OAAO,EAAc,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,mBAAmB,EACzB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,2BAA2B,EAChC,KAAK,mBAAmB,EACzB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAGvE,eAAO,MAAM,qBAAqB,QAAkB,CAAC;AAErD,MAAM,WAAW,UAAU;IACzB,UAAU,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3D,YAAY,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI,CAAC;CACjC;AAOD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,eAAe,CAAC;IAC5B,YAAY,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAClC,0EAA0E;IAC1E,gBAAgB,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACrF,SAAS,EAAE,MAAM,OAAO,CAAC,eAAe,CAAC,CAAC;IAC1C,QAAQ,EAAE,CACR,KAAK,EAAE,cAAc,EACrB,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EAC5B,MAAM,CAAC,EAAE,WAAW,KACjB,OAAO,CAAC,OAAO,CAAC,CAAC;IACtB,sGAAsG;IACtG,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,iBAAiB,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC/E,8FAA8F;IAC9F,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,mBAAmB,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC5E,2GAA2G;IAC3G,qBAAqB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,2BAA2B,CAAC,CAAC;IACrF,6GAA6G;IAC7G,eAAe,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACxC,sGAAsG;IACtG,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/C,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9E,6FAA6F;IAC7F,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACxC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EAAE,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACvF,oBAAoB,CAAC,EAAE,CAAC,WAAW,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5I,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzF,iFAAiF;IACjF,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,qFAAqF;IACrF,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,kBAAkB,CAAC,CAAC;CACnD;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;IACzC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG;IAC5B,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,WAAW,CAAC,QAAQ,EAAE,eAAe,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;IACzD,KAAK,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,IAAI,CAAC;IAC3C,UAAU,IAAI,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;CACtC,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,WAAW,CAAC;IAClB,aAAa,EAAE,CAAC,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,UAAU,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;CACtC;AAED,wBAAgB,cAAc,CAC5B,WAAW,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,UAA8B,GAC5D,MAAM,CAER;AA0BD,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,eAAe,EAC/B,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,eAAe,GACtB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,CAiB7C;AAoND,wBAAgB,cAAc,CAAC,IAAI,EAAE,eAAe,GAAG,QAAQ,CAmuB9D;AAED,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAuBjF"}