@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.
- package/assets/portable/releases.json +33 -0
- package/assets/selfhosted/.env.example +22 -1
- package/assets/selfhosted/docker-compose.mssql.yml +113 -0
- package/assets/selfhosted/docker-compose.yml +22 -14
- package/assets/selfhosted/lmstudio-azure-bridge.mjs +73 -0
- package/assets/selfhosted/releases.json +34 -3
- package/dist/.tsbuildinfo +1 -1
- package/dist/commands/up.d.ts.map +1 -1
- package/dist/commands/up.js +1 -0
- package/dist/commands/up.js.map +1 -1
- package/dist/lib/platform-frontdoor-runtime.d.ts.map +1 -1
- package/dist/lib/platform-frontdoor-runtime.js +2 -9
- package/dist/lib/platform-frontdoor-runtime.js.map +1 -1
- package/dist/lib/platform-frontdoor.d.ts +2 -2
- package/dist/lib/platform-frontdoor.d.ts.map +1 -1
- package/dist/lib/platform-frontdoor.js +3 -1
- package/dist/lib/platform-frontdoor.js.map +1 -1
- package/dist/lib/platform-onboarding.d.ts +10 -0
- package/dist/lib/platform-onboarding.d.ts.map +1 -1
- package/dist/lib/platform-onboarding.js +21 -0
- package/dist/lib/platform-onboarding.js.map +1 -1
- package/dist/lib/selfhosted-lifecycle.d.ts +23 -5
- package/dist/lib/selfhosted-lifecycle.d.ts.map +1 -1
- package/dist/lib/selfhosted-lifecycle.js +132 -10
- package/dist/lib/selfhosted-lifecycle.js.map +1 -1
- package/dist/lib/setup-console.d.ts +3 -0
- package/dist/lib/setup-console.d.ts.map +1 -1
- package/dist/lib/setup-console.js +35 -3
- package/dist/lib/setup-console.js.map +1 -1
- package/dist/lib/setup-page.d.ts.map +1 -1
- package/dist/lib/setup-page.js +21 -10
- package/dist/lib/setup-page.js.map +1 -1
- package/dist/lib/setup-plan.d.ts.map +1 -1
- package/dist/lib/setup-plan.js +2 -1
- package/dist/lib/setup-plan.js.map +1 -1
- package/dist/lib/setup-server.d.ts.map +1 -1
- package/dist/lib/setup-server.js +14 -1
- package/dist/lib/setup-server.js.map +1 -1
- package/oclif.manifest.json +1920 -1920
- 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.
|
|
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?.
|
|
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
|
-
|
|
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
|
-
|
|
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 (/
|
|
74
|
-
throw new Error('Selfhosted pull kit must be fail-closed (no default
|
|
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
|
|
140
|
-
|
|
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;
|
|
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
|
-
|
|
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:
|
|
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;
|
|
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,
|
|
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"}
|
package/dist/lib/setup-page.js
CHANGED
|
@@ -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
|
|
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 & 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">
|
|
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 & 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>
|
|
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
|
|
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 <profile> --to <profile></code><button type="button" class="button" data-copy="knowz transfer --from <profile> --to <profile>">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
|
|
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
|
|
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
|