@knowzai/cli 0.3.0 → 0.4.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 (40) hide show
  1. package/assets/portable/releases.json +33 -0
  2. package/assets/selfhosted/.env.example +22 -1
  3. package/assets/selfhosted/docker-compose.mssql.yml +113 -0
  4. package/assets/selfhosted/docker-compose.yml +22 -14
  5. package/assets/selfhosted/lmstudio-azure-bridge.mjs +73 -0
  6. package/assets/selfhosted/releases.json +34 -3
  7. package/dist/.tsbuildinfo +1 -1
  8. package/dist/commands/up.d.ts.map +1 -1
  9. package/dist/commands/up.js +1 -0
  10. package/dist/commands/up.js.map +1 -1
  11. package/dist/lib/platform-frontdoor-runtime.d.ts.map +1 -1
  12. package/dist/lib/platform-frontdoor-runtime.js +2 -9
  13. package/dist/lib/platform-frontdoor-runtime.js.map +1 -1
  14. package/dist/lib/platform-frontdoor.d.ts +2 -2
  15. package/dist/lib/platform-frontdoor.d.ts.map +1 -1
  16. package/dist/lib/platform-frontdoor.js +3 -1
  17. package/dist/lib/platform-frontdoor.js.map +1 -1
  18. package/dist/lib/platform-onboarding.d.ts +10 -0
  19. package/dist/lib/platform-onboarding.d.ts.map +1 -1
  20. package/dist/lib/platform-onboarding.js +21 -0
  21. package/dist/lib/platform-onboarding.js.map +1 -1
  22. package/dist/lib/selfhosted-lifecycle.d.ts +23 -5
  23. package/dist/lib/selfhosted-lifecycle.d.ts.map +1 -1
  24. package/dist/lib/selfhosted-lifecycle.js +132 -10
  25. package/dist/lib/selfhosted-lifecycle.js.map +1 -1
  26. package/dist/lib/setup-console.d.ts +3 -0
  27. package/dist/lib/setup-console.d.ts.map +1 -1
  28. package/dist/lib/setup-console.js +35 -3
  29. package/dist/lib/setup-console.js.map +1 -1
  30. package/dist/lib/setup-page.d.ts.map +1 -1
  31. package/dist/lib/setup-page.js +21 -10
  32. package/dist/lib/setup-page.js.map +1 -1
  33. package/dist/lib/setup-plan.d.ts.map +1 -1
  34. package/dist/lib/setup-plan.js +2 -1
  35. package/dist/lib/setup-plan.js.map +1 -1
  36. package/dist/lib/setup-server.d.ts.map +1 -1
  37. package/dist/lib/setup-server.js +14 -1
  38. package/dist/lib/setup-server.js.map +1 -1
  39. package/oclif.manifest.json +1920 -1920
  40. package/package.json +6 -6
@@ -4,8 +4,9 @@ import { dirname, join } from 'node:path';
4
4
  import { fileURLToPath } from 'node:url';
5
5
  import { randomBytes as cryptoRandomBytes } from 'node:crypto';
6
6
  import { generateAdminPassword, parseEnv, renderEnv, } from './platform-runtime.js';
7
- export const STABLE_SELFHOSTED_RELEASE = '0.15.1';
7
+ export const STABLE_SELFHOSTED_RELEASE = '0.16.0';
8
8
  export const SELFHOSTED_SECRET_KEYS = [
9
+ 'POSTGRES_PASSWORD',
9
10
  'SA_PASSWORD',
10
11
  'JWT_SECRET',
11
12
  'ADMIN_PASSWORD',
@@ -31,35 +32,135 @@ export function resolvePackagedSelfHostedAssetsDir() {
31
32
  }
32
33
  export function newestSelfHostedRelease(releasesJson) {
33
34
  const parsed = JSON.parse(releasesJson);
34
- const version = parsed.releases?.[0]?.version?.trim();
35
+ const version = parsed.releases?.find((release) => release.status !== 'incomplete')?.version?.trim();
35
36
  if (!version)
36
37
  throw new Error('deploy/selfhosted/releases.json has no releases[0].version');
37
38
  return version;
38
39
  }
40
+ function safePackagedAssetName(value, label) {
41
+ if (typeof value !== 'string' || !/^[a-zA-Z0-9][a-zA-Z0-9._-]*$/.test(value)) {
42
+ throw new Error(`Selfhosted release catalog has an invalid ${label}.`);
43
+ }
44
+ return value;
45
+ }
46
+ export function resolveSelfHostedReleaseContract(releasesJson, version) {
47
+ const parsed = JSON.parse(releasesJson);
48
+ const release = parsed.releases?.find((candidate) => candidate.version?.trim() === version);
49
+ if (!release) {
50
+ throw new Error(`Selfhosted release ${version} is not in this CLI's compatibility catalog. ` +
51
+ `Choose the recommended release ${STABLE_SELFHOSTED_RELEASE} or update @knowzai/cli.`);
52
+ }
53
+ if (release.status !== 'complete') {
54
+ throw new Error(`Selfhosted release ${version} is incomplete and cannot be started. ` +
55
+ `Choose the recommended release ${STABLE_SELFHOSTED_RELEASE}.`);
56
+ }
57
+ if (release.runtime?.database !== 'postgres' && release.runtime?.database !== 'mssql') {
58
+ throw new Error(`Selfhosted release ${version} has no supported database runtime contract.`);
59
+ }
60
+ return {
61
+ version,
62
+ status: 'complete',
63
+ runtime: {
64
+ database: release.runtime.database,
65
+ composeAsset: safePackagedAssetName(release.runtime.composeAsset, 'compose asset'),
66
+ ...(release.runtime.compatibleProviderAdapter
67
+ ? { compatibleProviderAdapter: safePackagedAssetName(release.runtime.compatibleProviderAdapter, 'compatible-provider adapter asset') }
68
+ : {}),
69
+ },
70
+ };
71
+ }
39
72
  function generateSecret(randomBytes) {
40
73
  return Buffer.from(randomBytes(32)).toString('base64url');
41
74
  }
42
75
  function present(value) {
43
76
  return Boolean(value?.trim());
44
77
  }
45
- export function buildSelfHostedEnvironment(plan, existingEnv = {}, randomBytes = cryptoRandomBytes) {
78
+ /**
79
+ * Host port for the database container, derived from the API port so two instances on one host
80
+ * (which must already differ on the API port) never collide on the database either.
81
+ * 5000 → 15432, 15016 → 25448. Wraps into the registered/dynamic range if the sum overflows.
82
+ */
83
+ export function defaultDbHostPort(apiPort) {
84
+ const candidate = apiPort + 10432;
85
+ if (candidate <= 65535)
86
+ return candidate;
87
+ return 1024 + ((candidate - 1024) % (65535 - 1024));
88
+ }
89
+ export function buildSelfHostedEnvironment(plan, existingEnv = {}, randomBytes = cryptoRandomBytes, openAiCompatible, adminPassword, releaseContract) {
46
90
  const env = { ...existingEnv };
47
91
  env.KNOWZ_SELFHOSTED_VERSION = plan.version;
48
92
  env.API_PORT = String(plan.ports.api);
49
93
  env.WEB_PORT = String(plan.ports.web);
50
94
  env.MCP_PORT = String(plan.ports.mcp);
95
+ // The kit publishes the database on the host loopback as `${DB_PORT:-5432}`. The bare default
96
+ // collides with any local Postgres or a second Knowz instance, and a failed host bind leaves the
97
+ // db container with no network at all (the API then cannot resolve `db`). Derive a per-instance
98
+ // port from the API port on first apply and keep it stable across re-apply.
99
+ if (!present(env.DB_PORT))
100
+ env.DB_PORT = String(defaultDbHostPort(plan.ports.api));
51
101
  const existingUser = env.ADMIN_USERNAME?.trim();
52
102
  env.ADMIN_USERNAME = existingUser && existingUser.length > 0 ? existingUser : 'admin';
103
+ const hadAdminPassword = present(env.ADMIN_PASSWORD);
104
+ const explicitAdminPassword = adminPassword?.trim();
105
+ if (explicitAdminPassword)
106
+ env.ADMIN_PASSWORD = explicitAdminPassword;
53
107
  for (const key of SELFHOSTED_SECRET_KEYS) {
54
108
  if (!present(env[key])) {
55
- env[key] = key === 'SA_PASSWORD' || key === 'ADMIN_PASSWORD'
109
+ env[key] = key === 'POSTGRES_PASSWORD' || key === 'SA_PASSWORD' || key === 'ADMIN_PASSWORD'
56
110
  ? generateAdminPassword(randomBytes)
57
111
  : generateSecret(randomBytes);
58
112
  }
59
113
  }
114
+ if (explicitAdminPassword) {
115
+ env.ADMIN_PASSWORD_REQUIRES_CHANGE = 'false';
116
+ }
117
+ else if (!hadAdminPassword) {
118
+ env.ADMIN_PASSWORD_REQUIRES_CHANGE = 'true';
119
+ }
120
+ else if (env.ADMIN_PASSWORD_REQUIRES_CHANGE !== 'true') {
121
+ // Backward-compatible upgrades: an existing password with no provenance
122
+ // marker was operator-managed and must not unexpectedly lock the account.
123
+ env.ADMIN_PASSWORD_REQUIRES_CHANGE = 'false';
124
+ }
125
+ if (openAiCompatible) {
126
+ const endpoint = openAiCompatible.endpoint?.trim();
127
+ if (endpoint)
128
+ env.OPENAI_COMPAT_ENDPOINT = containerReachableEndpoint(endpoint);
129
+ const apiKey = openAiCompatible.apiKey?.trim();
130
+ if (apiKey)
131
+ env.OPENAI_COMPAT_APIKEY = apiKey;
132
+ const chatModel = openAiCompatible.chatModel?.trim();
133
+ if (chatModel)
134
+ env.OPENAI_COMPAT_CHAT_MODEL = chatModel;
135
+ const embeddingModel = openAiCompatible.embeddingModel?.trim();
136
+ if (embeddingModel) {
137
+ env.OPENAI_COMPAT_EMBEDDING_MODEL = embeddingModel;
138
+ env.EMBEDDING_MODEL_NAME = embeddingModel;
139
+ }
140
+ if (openAiCompatible.embeddingDimensions !== undefined) {
141
+ env.EMBEDDING_DIMENSIONS = String(openAiCompatible.embeddingDimensions);
142
+ }
143
+ if (releaseContract?.runtime.database === 'mssql') {
144
+ env.AZURE_OPENAI_ENDPOINT = 'http://lmstudio-bridge:12345';
145
+ env.AZURE_OPENAI_APIKEY = env.OPENAI_COMPAT_APIKEY?.trim() || 'local-compatible-adapter';
146
+ if (env.OPENAI_COMPAT_CHAT_MODEL?.trim()) {
147
+ env.AZURE_OPENAI_DEPLOYMENT = env.OPENAI_COMPAT_CHAT_MODEL;
148
+ }
149
+ if (env.OPENAI_COMPAT_EMBEDDING_MODEL?.trim()) {
150
+ env.AZURE_OPENAI_EMBEDDING = env.OPENAI_COMPAT_EMBEDDING_MODEL;
151
+ }
152
+ }
153
+ }
60
154
  return env;
61
155
  }
62
- export function assertSelfHostedComposeKit(composeText) {
156
+ function containerReachableEndpoint(endpoint) {
157
+ const url = new URL(endpoint);
158
+ if (url.hostname === 'localhost' || url.hostname === '127.0.0.1' || url.hostname === '[::1]') {
159
+ url.hostname = 'host.docker.internal';
160
+ }
161
+ return url.toString().replace(/\/$/, '');
162
+ }
163
+ export function assertSelfHostedComposeKit(composeText, database = 'postgres') {
63
164
  for (const needle of FORBIDDEN_IMAGE_SUBSTRINGS) {
64
165
  if (composeText.includes(needle)) {
65
166
  throw new Error(`Selfhosted pull kit must not mention '${needle}' (portable/private IP).`);
@@ -70,8 +171,24 @@ export function assertSelfHostedComposeKit(composeText) {
70
171
  throw new Error(`Selfhosted pull kit is missing public image ${image}.`);
71
172
  }
72
173
  }
73
- if (/SA_PASSWORD:-/.test(composeText) || /MCP_SERVICE_KEY:-/.test(composeText)) {
74
- throw new Error('Selfhosted pull kit must be fail-closed (no default SA/MCP secrets).');
174
+ if (/MCP_SERVICE_KEY:-/.test(composeText)) {
175
+ throw new Error('Selfhosted pull kit must be fail-closed (no default MCP secret).');
176
+ }
177
+ if (database === 'postgres') {
178
+ if (/POSTGRES_PASSWORD:-/.test(composeText)) {
179
+ throw new Error('Selfhosted Postgres kit must be fail-closed (no default database secret).');
180
+ }
181
+ if (!composeText.includes('pgvector/pgvector') || composeText.includes('mssql') || composeText.includes('SA_PASSWORD')) {
182
+ throw new Error('Selfhosted Postgres kit must use Postgres/pgvector, not SQL Server Express.');
183
+ }
184
+ }
185
+ else {
186
+ if (/SA_PASSWORD:-/.test(composeText)) {
187
+ throw new Error('Selfhosted SQL kit must be fail-closed (no default database secret).');
188
+ }
189
+ if (!composeText.includes('mcr.microsoft.com/mssql') || !composeText.includes('SA_PASSWORD')) {
190
+ throw new Error('Selfhosted SQL release kit must use SQL Server and SA_PASSWORD.');
191
+ }
75
192
  }
76
193
  }
77
194
  export function selfHostedStackExists(name, configDir, exists = existsSync) {
@@ -136,12 +253,17 @@ export function applySelfHosted(input, deps = {}) {
136
253
  const writeFile = deps.writeFile ?? defaultWriteFile;
137
254
  const mkdir = deps.mkdir ?? ((path) => mkdirSync(path, { recursive: true }));
138
255
  const exists = deps.exists ?? existsSync;
139
- const composeText = readFile(join(assetsDir, 'docker-compose.yml'));
140
- assertSelfHostedComposeKit(composeText);
256
+ const releaseContract = resolveSelfHostedReleaseContract(readFile(join(assetsDir, 'releases.json')), version);
257
+ const composeText = readFile(join(assetsDir, releaseContract.runtime.composeAsset));
258
+ assertSelfHostedComposeKit(composeText, releaseContract.runtime.database);
141
259
  mkdir(paths.root);
142
260
  writeFile(paths.composeFile, composeText);
261
+ if (releaseContract.runtime.compatibleProviderAdapter) {
262
+ const adapterName = releaseContract.runtime.compatibleProviderAdapter;
263
+ writeFile(join(paths.root, adapterName), readFile(join(assetsDir, adapterName)));
264
+ }
143
265
  const existingEnv = exists(paths.envFile) ? parseEnv(readFile(paths.envFile)) : {};
144
- const env = buildSelfHostedEnvironment(plan, existingEnv, deps.randomBytes);
266
+ const env = buildSelfHostedEnvironment(plan, existingEnv, deps.randomBytes, input.openAiCompatible, input.adminPassword, releaseContract);
145
267
  writeFile(paths.envFile, renderEnv(env), 0o600);
146
268
  const state = {
147
269
  edition: 'selfhosted',
@@ -1 +1 @@
1
- {"version":3,"file":"selfhosted-lifecycle.js","sourceRoot":"","sources":["../../src/lib/selfhosted-lifecycle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"selfhosted-lifecycle.js","sourceRoot":"","sources":["../../src/lib/selfhosted-lifecycle.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { type CredentialStore } from '@knowzai/core';
2
+ import { runFrontDoor } from './platform-frontdoor.js';
2
3
  import { type PlatformState } from './platform-runtime.js';
3
4
  import type { SetupLicenseStatus } from './setup-page.js';
4
5
  import { createSetupApp, mintSetupToken, type SetupCompletion, type StartedSetupServer } from './setup-server.js';
@@ -30,6 +31,7 @@ export interface SetupConsoleOptions {
30
31
  name: string;
31
32
  email: string;
32
33
  };
34
+ edition?: 'selfhosted' | 'portable';
33
35
  }
34
36
  export interface SetupConsoleDependencies {
35
37
  mintToken?: typeof mintSetupToken;
@@ -37,6 +39,7 @@ export interface SetupConsoleDependencies {
37
39
  startServer?: (app: ReturnType<typeof createSetupApp>) => Promise<StartedSetupServer>;
38
40
  openBrowser?: (url: string) => void;
39
41
  licenseStatus?: () => Promise<SetupLicenseStatus>;
42
+ runFrontDoor?: typeof runFrontDoor;
40
43
  }
41
44
  export declare function fetchSetupLicenseStatus(apiUrl: string, mothershipUrl: string, fetcher?: typeof globalThis.fetch): Promise<SetupLicenseStatus>;
42
45
  /** Host one browser session over the same `runFrontDoor` core used by terminal `knowz up`. */
@@ -1 +1 @@
1
- {"version":3,"file":"setup-console.d.ts","sourceRoot":"","sources":["../../src/lib/setup-console.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAQrE,OAAO,EAAqD,KAAK,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC9G,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,OAAO,EACL,cAAc,EACd,cAAc,EAEd,KAAK,eAAe,EAEpB,KAAK,kBAAkB,EACxB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,eAAe,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;IAClD,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IACrC,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,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,WAAW,CAAC;IAC3C,OAAO,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3C;AAED,MAAM,WAAW,wBAAwB;IACvC,SAAS,CAAC,EAAE,OAAO,cAAc,CAAC;IAClC,SAAS,CAAC,EAAE,OAAO,cAAc,CAAC;IAClC,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACtF,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,kBAAkB,CAAC,CAAC;CACnD;AAED,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE,OAAO,UAAU,CAAC,KAAwB,GAClD,OAAO,CAAC,kBAAkB,CAAC,CAe7B;AAsDD,8FAA8F;AAC9F,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,mBAAmB,EAC5B,YAAY,GAAE,wBAA6B,GAC1C,OAAO,CAAC,eAAe,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAiH5C"}
1
+ {"version":3,"file":"setup-console.d.ts","sourceRoot":"","sources":["../../src/lib/setup-console.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAIrE,OAAO,EAAqD,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAI1G,OAAO,EAAqD,KAAK,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC9G,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAG1D,OAAO,EACL,cAAc,EACd,cAAc,EAEd,KAAK,eAAe,EAEpB,KAAK,kBAAkB,EACxB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,eAAe,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;IAClD,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IACrC,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,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,WAAW,CAAC;IAC3C,OAAO,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,OAAO,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;CACrC;AAED,MAAM,WAAW,wBAAwB;IACvC,SAAS,CAAC,EAAE,OAAO,cAAc,CAAC;IAClC,SAAS,CAAC,EAAE,OAAO,cAAc,CAAC;IAClC,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACtF,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAClD,YAAY,CAAC,EAAE,OAAO,YAAY,CAAC;CACpC;AAQD,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE,OAAO,UAAU,CAAC,KAAwB,GAClD,OAAO,CAAC,kBAAkB,CAAC,CAe7B;AAsDD,8FAA8F;AAC9F,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,mBAAmB,EAC5B,YAAY,GAAE,wBAA6B,GAC1C,OAAO,CAAC,eAAe,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CA+I5C"}
@@ -9,7 +9,13 @@ import { discoverKnowzCloudModels, probeModel, probeProvider } from './platform-
9
9
  import { runDeviceCodeFlow } from './activate.js';
10
10
  import { nodeProcessRunner, parseEnv, resolvePlatformPaths } from './platform-runtime.js';
11
11
  import { deriveSetupFormSchema } from './setup-plan.js';
12
+ import { resolveSelfHostedPaths, STABLE_SELFHOSTED_RELEASE } from './selfhosted-lifecycle.js';
12
13
  import { createSetupApp, mintSetupToken, startSetupServer, } from './setup-server.js';
14
+ function asRecord(value) {
15
+ return typeof value === 'object' && value !== null && !Array.isArray(value)
16
+ ? value
17
+ : undefined;
18
+ }
13
19
  export async function fetchSetupLicenseStatus(apiUrl, mothershipUrl, fetcher = globalThis.fetch) {
14
20
  const response = await fetcher(`${apiUrl.replace(/\/$/, '')}/api/info`, {
15
21
  headers: { accept: 'application/json' },
@@ -87,7 +93,9 @@ export async function launchSetupConsole(options, dependencies = {}) {
87
93
  const createApp = dependencies.createApp ?? createSetupApp;
88
94
  const startServer = dependencies.startServer ?? startSetupServer;
89
95
  const browser = dependencies.openBrowser ?? openBrowser;
96
+ const run = dependencies.runFrontDoor ?? runFrontDoor;
90
97
  const name = options.name ?? 'knowz';
98
+ const edition = options.edition === 'portable' ? 'portable' : 'selfhosted';
91
99
  const detectedState = currentState(name, options.configDir);
92
100
  const ports = {
93
101
  api: options.ports?.api ?? detectedState?.ports?.api ?? 5000,
@@ -102,7 +110,8 @@ export async function launchSetupConsole(options, dependencies = {}) {
102
110
  const planDefaults = {
103
111
  name,
104
112
  configDir: options.configDir,
105
- version: options.version ?? detectedState?.version ?? DEFAULT_PORTABLE_VERSION,
113
+ version: options.version ?? detectedState?.version ?? (edition === 'selfhosted' ? STABLE_SELFHOSTED_RELEASE : DEFAULT_PORTABLE_VERSION),
114
+ edition,
106
115
  provider: options.provider ?? detectedState?.provider,
107
116
  ports,
108
117
  storage: detectedState?.storage,
@@ -131,7 +140,9 @@ export async function launchSetupConsole(options, dependencies = {}) {
131
140
  input.versionExplicit =
132
141
  options.versionExplicit === true ||
133
142
  input.base.version !== planDefaults.version;
134
- return runFrontDoor(input, createPlatformFrontDoorDeps({
143
+ const targetPaths = resolveSelfHostedPaths(input.base.name, input.base.configDir);
144
+ const hadSelfHostedEnvironment = existsSync(targetPaths.envFile);
145
+ const result = await run(input, createPlatformFrontDoorDeps({
135
146
  store: options.store,
136
147
  cwd: options.cwd,
137
148
  env: options.env,
@@ -141,6 +152,25 @@ export async function launchSetupConsole(options, dependencies = {}) {
141
152
  validateProvider: true,
142
153
  emit: emitProgress,
143
154
  }));
155
+ if (input.edition !== 'portable' &&
156
+ !hadSelfHostedEnvironment &&
157
+ !input.superAdminPassphrase?.trim() &&
158
+ existsSync(targetPaths.envFile)) {
159
+ const env = parseEnv(readFileSync(targetPaths.envFile, 'utf8'));
160
+ const username = env.ADMIN_USERNAME?.trim();
161
+ const password = env.ADMIN_PASSWORD;
162
+ if (env.ADMIN_PASSWORD_REQUIRES_CHANGE === 'true' && username && password) {
163
+ registerSecret(password);
164
+ const record = asRecord(result);
165
+ if (record) {
166
+ return {
167
+ ...record,
168
+ oneTimeCredential: { username, password, generated: true },
169
+ };
170
+ }
171
+ }
172
+ }
173
+ return result;
144
174
  },
145
175
  probeProvider: (selection) => probeProvider(selection),
146
176
  probeModel: (selection) => probeModel(selection),
@@ -165,7 +195,9 @@ export async function launchSetupConsole(options, dependencies = {}) {
165
195
  mcpUrl: `http://localhost:${ports.mcp}`,
166
196
  publicSiteUrl: components.publicSite ? `http://localhost:${ports.publicSite}` : undefined,
167
197
  },
168
- credentialFilePath: resolvePlatformPaths(name, options.configDir).envFile,
198
+ credentialFilePath: edition === 'selfhosted'
199
+ ? resolveSelfHostedPaths(name, options.configDir).envFile
200
+ : resolvePlatformPaths(name, options.configDir).envFile,
169
201
  licenseStatus: dependencies.licenseStatus ?? (() => fetchSetupLicenseStatus(`http://localhost:${ports.api}`, mothershipUrl)),
170
202
  };
171
203
  const app = createApp(appDeps);
@@ -1 +1 @@
1
- {"version":3,"file":"setup-console.js","sourceRoot":"","sources":["../../src/lib/setup-console.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,cAAc,EAAwB,MAAM,eAAe,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC1G,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,wBAAwB,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AACnG,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,oBAAoB,EAAsB,MAAM,uBAAuB,CAAC;AAE9G,OAAO,EAAE,qBAAqB,EAAkB,MAAM,iBAAiB,CAAC;AACxE,OAAO,EACL,cAAc,EACd,cAAc,EACd,gBAAgB,GAIjB,MAAM,mBAAmB,CAAC;AA6B3B,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,MAAc,EACd,aAAqB,EACrB,UAAmC,UAAU,CAAC,KAAK;IAEnD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,EAAE;QACtE,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;QACvC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC;KACnC,CAAC,CAAC;IACH,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC3C,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAiD,CAAC;IAClF,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;IAClC,IAAI,MAAM,EAAE,MAAM,KAAK,IAAI;QAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IACtD,OAAO;QACL,MAAM,EAAE,IAAI;QACZ,GAAG,CAAC,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,GAAG,CAAC,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtF,aAAa;KACd,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,IAAY,EAAE,SAAkB;IACpD,MAAM,KAAK,GAAG,oBAAoB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACpD,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC;QAAE,OAAO,SAAS,CAAC;IACnH,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAA2B,CAAC;QAC3F,IAAI,MAAM,EAAE,aAAa,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI;YAAE,OAAO,SAAS,CAAC;QAC1E,MAAM,QAAQ,GAAG,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ;YAClD,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,mBAAmB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC;YACzF,CAAC,CAAC,MAAM,CAAC,QAAQ;YACjB,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,IAAI,GAAG,CAAC,KAAc,EAAE,QAAgB,EAAU,EAAE,CACxD,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC3G,MAAM,GAAG,GAAG,CAAC,KAAc,EAAE,QAAgB,EAAU,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;QACvG,0EAA0E;QAC1E,+CAA+C;QAC/C,OAAO;YACL,aAAa,EAAE,CAAC;YAChB,IAAI;YACJ,OAAO,EAAE,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB;YACvF,QAAQ,EAAE,QAAqC;YAC/C,OAAO,EAAE,MAAM,CAAC,OAAO,KAAK,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO;YACjE,WAAW,EAAE,MAAM,CAAC,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;YACxD,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI;gBACnB,EAAE,EAAE,SAAS;gBACb,eAAe,EAAE,MAAM;gBACvB,MAAM,EAAE,MAAM;gBACd,aAAa,EAAE,MAAM;aACtB;YACD,KAAK,EAAE;gBACL,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC;gBAClC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC;gBAClC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC;gBAClC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC;aACjD;YACD,WAAW,EAAE;gBACX,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,EAAE,uBAAuB,CAAC;gBAC1D,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,EAAE,uBAAuB,CAAC;gBAC1D,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,EAAE,uBAAuB,CAAC;gBAC1D,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,UAAU,EAAE,uBAAuB,CAAC;aACzE;YACD,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,OAAO,MAAM,CAAC,UAAU,CAAC,GAAG,KAAK,SAAS;gBACzE,OAAO,MAAM,CAAC,UAAU,CAAC,UAAU,KAAK,SAAS;gBACjD,CAAC,CAAC,MAAM,CAAC,UAAU;gBACnB,CAAC,CAAC,SAAS;YACb,SAAS,EAAE,MAAM,CAAC,SAAS,KAAK,OAAO,IAAI,MAAM,CAAC,SAAS,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM;YACvG,SAAS,EAAE,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;SACxE,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,8FAA8F;AAC9F,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAA4B,EAC5B,eAAyC,EAAE;IAE3C,MAAM,KAAK,GAAG,CAAC,YAAY,CAAC,SAAS,IAAI,cAAc,CAAC,EAAE,CAAC;IAC3D,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,IAAI,cAAc,CAAC;IAC3D,MAAM,WAAW,GAAG,YAAY,CAAC,WAAW,IAAI,gBAAgB,CAAC;IACjE,MAAM,OAAO,GAAG,YAAY,CAAC,WAAW,IAAI,WAAW,CAAC;IACxD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC;IACrC,MAAM,aAAa,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC5D,MAAM,KAAK,GAAG;QACZ,GAAG,EAAE,OAAO,CAAC,KAAK,EAAE,GAAG,IAAI,aAAa,EAAE,KAAK,EAAE,GAAG,IAAI,IAAI;QAC5D,GAAG,EAAE,OAAO,CAAC,KAAK,EAAE,GAAG,IAAI,aAAa,EAAE,KAAK,EAAE,GAAG,IAAI,IAAI;QAC5D,GAAG,EAAE,OAAO,CAAC,KAAK,EAAE,GAAG,IAAI,aAAa,EAAE,KAAK,EAAE,GAAG,IAAI,IAAI;QAC5D,UAAU,EAAE,OAAO,CAAC,KAAK,EAAE,UAAU,IAAI,aAAa,EAAE,KAAK,EAAE,UAAU,IAAI,IAAI;KAClF,CAAC;IACF,MAAM,UAAU,GAAG;QACjB,GAAG,EAAE,OAAO,CAAC,UAAU,EAAE,GAAG,IAAI,aAAa,EAAE,UAAU,EAAE,GAAG,IAAI,IAAI;QACtE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,UAAU,IAAI,aAAa,EAAE,UAAU,EAAE,UAAU,IAAI,KAAK;KAC7F,CAAC;IACF,MAAM,YAAY,GAAuB;QACvC,IAAI;QACJ,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,aAAa,EAAE,OAAO,IAAI,wBAAwB;QAC9E,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,aAAa,EAAE,QAAQ;QACrD,KAAK;QACL,OAAO,EAAE,aAAa,EAAE,OAAO;QAC/B,UAAU;QACV,+EAA+E;QAC/E,6EAA6E;QAC7E,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,aAAa,EAAE,SAAS,IAAI,MAAM;QAClE,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC;IACF,MAAM,UAAU,GAAG,qBAAqB,CAAC,uBAAuB,EAAE,EAAE,SAAS,CAAC,CAAC;IAC/E,MAAM,aAAa,GAAG,oBAAoB,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IACpE,IAAI,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,8BAA8B,IAAI,sBAAsB,CAAC;IACzF,IAAI,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;QACtC,aAAa,GAAG,QAAQ,CAAC,YAAY,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,8BAA8B,IAAI,aAAa,CAAC;IACxH,CAAC;IACD,MAAM,OAAO,GAAoB;QAC/B,KAAK;QACL,UAAU;QACV,YAAY;QACZ,YAAY,EAAE,GAAG,EAAE,CAAC,aAAa;QACjC,SAAS,EAAE,GAAG,EAAE,CAAC,YAAY,CAC3B,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,EACzD,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAC9B;QACD,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE;YACtC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;YAClB,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC;YACjB,KAAK,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;YACtC,KAAK,CAAC,eAAe;gBACnB,OAAO,CAAC,eAAe,KAAK,IAAI;oBAChC,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,YAAY,CAAC,OAAO,CAAC;YAC9C,OAAO,YAAY,CACjB,KAAK,EACL,2BAA2B,CAAC;gBAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,KAAK;gBACZ,qBAAqB,EAAE,KAAK;gBAC5B,gBAAgB,EAAE,IAAI;gBACtB,IAAI,EAAE,YAAY;aACnB,CAAC,CACH,CAAC;QACJ,CAAC;QACD,aAAa,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC;QACtD,UAAU,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;QAChD,eAAe,EAAE,KAAK,IAAI,EAAE;YAC1B,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,aAAa,EAAE;gBACpD,KAAK,EAAE,UAAU,CAAC,KAAK;gBACvB,MAAM,EAAE,iBAAiB;gBACzB,WAAW,EAAE,OAAO;gBACpB,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAChE,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK;oBAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aAC5D,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC;YAClD,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAClC,OAAO,MAAM,CAAC,UAAU,CAAC;QAC3B,CAAC;QACD,qBAAqB,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,wBAAwB,CAAC,UAAU,CAAC;QAC3E,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC;QAChD,WAAW,EAAE;YACX,MAAM,EAAE,oBAAoB,KAAK,CAAC,GAAG,EAAE;YACvC,MAAM,EAAE,oBAAoB,KAAK,CAAC,GAAG,EAAE;YACvC,MAAM,EAAE,oBAAoB,KAAK,CAAC,GAAG,EAAE;YACvC,aAAa,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,oBAAoB,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,SAAS;SAC1F;QACD,kBAAkB,EAAE,oBAAoB,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO;QACzE,aAAa,EAAE,YAAY,CAAC,aAAa,IAAI,CAAC,GAAG,EAAE,CAAC,uBAAuB,CACzE,oBAAoB,KAAK,CAAC,GAAG,EAAE,EAC/B,aAAa,CACd,CAAC;KACH,CAAC;IACF,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAC/B,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,CAAC,OAAO,CAAC,KAAK;QAAE,OAAO,CAAC,IAAI,CAAC,iCAAiC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACjF,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK;QAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAEjD,MAAM,WAAW,GAAG,GAAS,EAAE;QAC7B,KAAK,OAAO,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IACpC,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC;QAC5C,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,UAAU,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACrE,CAAC;QACD,OAAO,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;IAC7C,CAAC;YAAS,CAAC;QACT,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAChD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"setup-console.js","sourceRoot":"","sources":["../../src/lib/setup-console.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"setup-page.d.ts","sourceRoot":"","sources":["../../src/lib/setup-page.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAI/D,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAuB,MAAM,iBAAiB,CAAC;AAGvF,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,eAAe,CAAC;IACxB,SAAS,EAAE,eAAe,CAAC;IAC3B,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC7B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,kBAAkB,CAAC;CACpC;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAOhD;AA0CD,uFAAuF;AACvF,wBAAgB,UAAU,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CAwnBxD"}
1
+ {"version":3,"file":"setup-page.d.ts","sourceRoot":"","sources":["../../src/lib/setup-page.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAI/D,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAuB,MAAM,iBAAiB,CAAC;AAGvF,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,eAAe,CAAC;IACxB,SAAS,EAAE,eAAe,CAAC;IAC3B,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC7B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,kBAAkB,CAAC;CACpC;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAOhD;AA0CD,uFAAuF;AACvF,wBAAgB,UAAU,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CAmoBxD"}
@@ -161,6 +161,8 @@ export function renderPage(model) {
161
161
  const selfhostedDefault = defaultEdition === 'selfhosted';
162
162
  const ghcrHiddenByDefault = preloadedLocked || selfhostedDefault;
163
163
  const defaultVersion = escapeHtml(defaults.version ?? (defaultEdition === 'selfhosted' ? STABLE_SELFHOSTED_RELEASE : DEFAULT_PORTABLE_VERSION));
164
+ const selfhostedReleaseLiteral = JSON.stringify(STABLE_SELFHOSTED_RELEASE);
165
+ const portableReleaseLiteral = JSON.stringify(DEFAULT_PORTABLE_VERSION);
164
166
  const filesystemSelected = defaults.storage === 'filesystem';
165
167
  const defaultProvider = defaults.provider && Object.prototype.hasOwnProperty.call(schema, defaults.provider)
166
168
  ? defaults.provider
@@ -494,24 +496,26 @@ input[name$="Port"],input[name="version"],input[name$=".endpoint"],input[name$="
494
496
  </div>
495
497
  <div class="step-panel" data-step="3" hidden>
496
498
  <section class="card"><div class="card-heading"><div><h2>First account</h2><p>The local owner identity created during first boot.</p></div></div>
499
+ <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>
497
500
  <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
501
  <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
502
  <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>
503
+ <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
504
  </section>
502
505
  </div>
503
506
  <div class="step-panel" data-step="4" hidden>
504
507
  <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
508
  <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>
509
+ <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
510
  <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
511
  <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
512
  <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
513
  </section>
511
514
  <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>
515
+ <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>
512
516
  <p id="model-summary" class="model-summary" aria-live="polite">AI offline · 1 models · not verified</p>
513
517
  <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>
518
+ <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
519
  <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
520
  <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
521
  </section>
@@ -523,7 +527,7 @@ input[name$="Port"],input[name="version"],input[name$=".endpoint"],input[name$="
523
527
  <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
528
  <details class="raw-log"><summary>Raw setup log</summary><pre id="progress-log" aria-live="polite"></pre></details>
525
529
  </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>
530
+ <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="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
531
  </main><script>
528
532
  const setupToken=${tokenLiteral};
529
533
  const consoleSessionEndedCopy='Console session ended — re-run knowz setup';
@@ -532,6 +536,8 @@ const aliasPrefills=${aliasPrefillLiteral};
532
536
  const vertexChatDefault=${vertexChatDefaultLiteral};
533
537
  const vertexEmbeddingDefault=${vertexEmbeddingDefaultLiteral};
534
538
  const qwen3EmbeddingDefault=${qwen3EmbeddingDefaultLiteral};
539
+ const selfhostedRelease=${selfhostedReleaseLiteral};
540
+ const portableRelease=${portableReleaseLiteral};
535
541
  const qwen3EmbeddingDims=${qwen3EmbeddingDimsLiteral};
536
542
  const formSchema=${schemaLiteral};
537
543
  const hasExistingState=${existingStateLiteral};
@@ -557,6 +563,7 @@ let modelCards=[];
557
563
  let startAnywayArmed=false;
558
564
  let existingChoiceArmed=false;
559
565
  let terminalEventSeen=false;
566
+ let generatedCredential=null;
560
567
  function selectedProviderInput(){return form.querySelector('input[name="provider"]:checked')}
561
568
  function selectedProvider(){return selectedProviderInput().value}
562
569
  function providerField(key,provider=selectedProvider()){return form.querySelector('[data-provider-group="'+provider+'"] [name="provider.'+key+'"]')}
@@ -568,13 +575,15 @@ function deriveModelCards(){const provider=selectedProvider();const fields=provi
568
575
  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}
569
576
  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
577
  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')}
578
+ function updateModelSummary(){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
579
  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
580
  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
581
  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
582
  // 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'}
583
+ 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')}
584
+ 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}
585
+ function verificationComplete(){return incompleteChecks().length===0}
586
+ function renderIncompleteChecks(){softConfirm.querySelector('p').textContent='Complete these checks before starting: '+incompleteChecks().join('; ')+'. Start anyway?'}
578
587
  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
588
  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
589
  function invalidateConnectionTest(){if(connectionState!=='testing')setConnectionState('idle','Not tested');startAnywayArmed=false;softConfirm.hidden=true;}
@@ -597,7 +606,7 @@ document.getElementById('start-anyway').addEventListener('click',function(){star
597
606
  document.getElementById('apply-existing-changes').addEventListener('click',function(){existingChoice.hidden=true;existingChoiceArmed=false;form.elements.reconfigure.checked=true;form.requestSubmit()});
598
607
  document.getElementById('inspect-existing').addEventListener('click',function(){existingChoice.hidden=true;existingChoiceArmed=true;form.requestSubmit()});
599
608
  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()}
609
+ function updateEdition(){const selfhosted=form.elements.edition.value==='selfhosted';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
610
  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
611
  form.elements.imageMode.addEventListener('change',updateImageMode);form.elements.edition.addEventListener('change',updateEdition);updateEdition();
603
612
  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}}
@@ -612,7 +621,9 @@ function handleEvent(eventType,data){if(eventType==='progress'){appendRaw(data);
612
621
  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
622
  function showFailure(message){runError.textContent=message;runError.hidden=false;document.getElementById('back-config').hidden=false;runError.focus();}
614
623
  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'}}
624
+ function renderResult(result){progressView.hidden=true;resultView.hidden=false;const inspecting=Boolean(result&&result.existing);const credential=result&&result.oneTimeCredential&&result.oneTimeCredential.generated===true?result.oneTimeCredential:null;generatedCredential=credential;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||Boolean(credential);const oneTime=document.getElementById('one-time-credential');oneTime.hidden=inspecting||!credential;document.getElementById('next-steps').hidden=inspecting;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;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'}}
625
+ 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'}});
626
+ document.getElementById('copy-generated-password').addEventListener('click',function(){if(generatedCredential)void navigator.clipboard.writeText(generatedCredential.password)});
616
627
  document.querySelectorAll('#next-steps button[data-copy]').forEach(function(button){button.addEventListener('click',function(){void navigator.clipboard.writeText(button.dataset.copy)})});
617
628
  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
629
  const stepPanels=Array.from(document.querySelectorAll('.step-panel'));
@@ -668,7 +679,7 @@ railSteps.forEach(function(button){
668
679
  });
669
680
  });
670
681
  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.')}});
682
+ 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;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.')}});
672
683
  </script></body></html>`;
673
684
  }
674
685
  //# sourceMappingURL=setup-page.js.map