@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
@@ -1,5 +1,38 @@
1
1
  {
2
2
  "releases": [
3
+ {
4
+ "version": "0.44.1",
5
+ "flavors": [
6
+ "portable",
7
+ "portable-gcp"
8
+ ],
9
+ "releasedAt": "2026-09-04T05:26:59Z",
10
+ "minCliVersion": "0.3.0",
11
+ "notes": "Interview Studio v1, guest answer flow, honest knowledge dates. Supersedes v0.44.0 (web image build failed). Commercial grant required for portable pull.",
12
+ "digests": null
13
+ },
14
+ {
15
+ "version": "0.43.0",
16
+ "flavors": [
17
+ "portable",
18
+ "portable-gcp"
19
+ ],
20
+ "releasedAt": "2026-09-02T00:00:00Z",
21
+ "minCliVersion": "0.3.0",
22
+ "notes": "Commercial grant required for portable pull. Registration alone does not entitle image pulls.",
23
+ "digests": null
24
+ },
25
+ {
26
+ "version": "0.42.0",
27
+ "flavors": [
28
+ "portable",
29
+ "portable-gcp"
30
+ ],
31
+ "releasedAt": "2026-09-02T00:00:00Z",
32
+ "minCliVersion": "0.3.0",
33
+ "notes": "Commercial grant required for portable pull. Registration alone does not entitle image pulls.",
34
+ "digests": null
35
+ },
3
36
  {
4
37
  "version": "0.41.0",
5
38
  "flavors": [
@@ -5,14 +5,35 @@ KNOWZ_SELFHOSTED_VERSION=0.15.1
5
5
  API_PORT=5000
6
6
  WEB_PORT=3000
7
7
  MCP_PORT=3001
8
- DB_PORT=1433
8
+ # Database host port (loopback only). `knowz up` derives API_PORT+10432 so a local Postgres or a
9
+ # second instance never collides; set it explicitly for hand-written .env files.
10
+ DB_PORT=5432
9
11
 
12
+ POSTGRES_PASSWORD=
10
13
  SA_PASSWORD=
11
14
  JWT_SECRET=
12
15
  ADMIN_USERNAME=admin
13
16
  ADMIN_PASSWORD=
17
+ # The CLI sets true only for a freshly generated first-boot password.
18
+ ADMIN_PASSWORD_REQUIRES_CHANGE=false
14
19
  MCP_SERVICE_KEY=
15
20
 
21
+ # Optional: native OpenAI-compatible AI (LM Studio / Ollama / vLLM / OpenAI)
22
+ # For a model server on this host, the CLI rewrites localhost to host.docker.internal.
23
+ # OPENAI_COMPAT_ENDPOINT=http://host.docker.internal:1234/v1
24
+ # OPENAI_COMPAT_APIKEY=
25
+ # OPENAI_COMPAT_CHAT_MODEL=your-chat-model
26
+ # OPENAI_COMPAT_EMBEDDING_MODEL=your-embedding-model
27
+ # EMBEDDING_DIMENSIONS=768
28
+
29
+ # SQL-era public releases use an internal compatibility adapter automatically.
30
+ # These are derived by the CLI from the OpenAI-compatible values above; users
31
+ # do not need Azure credentials.
32
+ # AZURE_OPENAI_ENDPOINT=http://lmstudio-bridge:12345
33
+ # AZURE_OPENAI_APIKEY=local-compatible-adapter
34
+ # AZURE_OPENAI_DEPLOYMENT=your-chat-model
35
+ # AZURE_OPENAI_EMBEDDING=your-embedding-model
36
+
16
37
  # Optional: AI via Knowz mothership (operator-supplied; never baked)
17
38
  # KNOWZ_PLATFORM_ENABLED=true
18
39
  # KNOWZ_PLATFORM_URL=https://api.knowz.io
@@ -0,0 +1,113 @@
1
+ # Knowz Self-Hosted — compatibility kit for SQL-era public releases.
2
+ # Selected automatically from releases.json; do not use for native Postgres images.
3
+ # The optional local adapter lets legacy Azure-shaped APIs consume the provider
4
+ # already tested as OpenAI-compatible by the guided setup UI.
5
+
6
+ services:
7
+ lmstudio-bridge:
8
+ image: node:20-alpine
9
+ command: ["node", "/app/lmstudio-azure-bridge.mjs"]
10
+ environment:
11
+ OPENAI_COMPAT_ENDPOINT: "${OPENAI_COMPAT_ENDPOINT:-http://host.docker.internal:1234/v1}"
12
+ OPENAI_COMPAT_APIKEY: "${OPENAI_COMPAT_APIKEY:-}"
13
+ PORT: "12345"
14
+ extra_hosts:
15
+ - "host.docker.internal:host-gateway"
16
+ volumes:
17
+ - ./lmstudio-azure-bridge.mjs:/app/lmstudio-azure-bridge.mjs:ro
18
+ healthcheck:
19
+ test: ["CMD", "wget", "-q", "-O", "-", "http://127.0.0.1:12345/healthz"]
20
+ interval: 10s
21
+ timeout: 5s
22
+ retries: 5
23
+
24
+ db:
25
+ image: mcr.microsoft.com/mssql/server:2022-CU26-ubuntu-22.04
26
+ environment:
27
+ ACCEPT_EULA: "Y"
28
+ MSSQL_SA_PASSWORD: "${SA_PASSWORD:?SA_PASSWORD must be set in .env (>=12 chars, SQL Server complexity rules)}"
29
+ MSSQL_PID: "Express"
30
+ ports:
31
+ - "127.0.0.1:${DB_PORT:-1433}:1433"
32
+ volumes:
33
+ - knowz-db-data:/var/opt/mssql
34
+ healthcheck:
35
+ test: /opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -P "$${MSSQL_SA_PASSWORD}" -Q "SELECT 1" -C -b
36
+ interval: 10s
37
+ timeout: 5s
38
+ retries: 10
39
+ start_period: 30s
40
+
41
+ api:
42
+ image: ghcr.io/knowz-io/knowz-selfhosted-api:${KNOWZ_SELFHOSTED_VERSION:?KNOWZ_SELFHOSTED_VERSION must be set}
43
+ ports:
44
+ - "${API_PORT:-5000}:8080"
45
+ depends_on:
46
+ db:
47
+ condition: service_healthy
48
+ lmstudio-bridge:
49
+ condition: service_healthy
50
+ environment:
51
+ ConnectionStrings__McpDb: "Server=db,1433;Database=KnowzSelfHosted;User Id=sa;Password=${SA_PASSWORD:?SA_PASSWORD must be set};TrustServerCertificate=True;Encrypt=True"
52
+ Database__AutoMigrate: "true"
53
+ SelfHosted__JwtSecret: "${JWT_SECRET:?JWT_SECRET must be set in .env (>=32 chars)}"
54
+ SelfHosted__SuperAdminUsername: "${ADMIN_USERNAME:?ADMIN_USERNAME must be set in .env}"
55
+ SelfHosted__SuperAdminPassword: "${ADMIN_PASSWORD:?ADMIN_PASSWORD must be set in .env}"
56
+ SelfHosted__RequireSuperAdminPasswordChange: "${ADMIN_PASSWORD_REQUIRES_CHANGE:-false}"
57
+ SelfHosted__AllowedOrigins__0: "http://localhost:${WEB_PORT:-3000}"
58
+ SelfHosted__RateLimiting__Enabled: "true"
59
+ MCP__ServiceKey: "${MCP_SERVICE_KEY:?MCP_SERVICE_KEY must be set in .env}"
60
+ Storage__Provider: "LocalFileSystem"
61
+ Storage__Local__RootPath: "/data/files"
62
+ AzureOpenAI__Endpoint: "${AZURE_OPENAI_ENDPOINT:-}"
63
+ AzureOpenAI__ApiKey: "${AZURE_OPENAI_APIKEY:-}"
64
+ AzureOpenAI__DeploymentName: "${AZURE_OPENAI_DEPLOYMENT:-gpt-5.4}"
65
+ AzureOpenAI__EmbeddingDeploymentName: "${AZURE_OPENAI_EMBEDDING:-text-embedding-3-large}"
66
+ Embedding__ModelName: "${EMBEDDING_MODEL_NAME:-text-embedding-3-large}"
67
+ Embedding__Dimensions: "${EMBEDDING_DIMENSIONS:-3072}"
68
+ AzureAISearch__Endpoint: "${AZURE_SEARCH_ENDPOINT:-}"
69
+ AzureAISearch__ApiKey: "${AZURE_SEARCH_APIKEY:-}"
70
+ AzureAISearch__IndexName: "${AZURE_SEARCH_INDEX:-knowz-selfhosted}"
71
+ KnowzPlatform__Enabled: "${KNOWZ_PLATFORM_ENABLED:-false}"
72
+ KnowzPlatform__BaseUrl: "${KNOWZ_PLATFORM_URL:-}"
73
+ KnowzPlatform__ApiKey: "${KNOWZ_PLATFORM_APIKEY:-}"
74
+ volumes:
75
+ - knowz-file-storage:/data/files
76
+ healthcheck:
77
+ test: curl -f http://localhost:8080/healthz || exit 1
78
+ interval: 30s
79
+ timeout: 10s
80
+ retries: 5
81
+ start_period: 30s
82
+
83
+ web:
84
+ image: ghcr.io/knowz-io/knowz-selfhosted-web:${KNOWZ_SELFHOSTED_VERSION:?KNOWZ_SELFHOSTED_VERSION must be set}
85
+ ports:
86
+ - "${WEB_PORT:-3000}:8080"
87
+ depends_on:
88
+ api:
89
+ condition: service_started
90
+
91
+ mcp:
92
+ image: ghcr.io/knowz-io/knowz-selfhosted-mcp:${KNOWZ_SELFHOSTED_VERSION:?KNOWZ_SELFHOSTED_VERSION must be set}
93
+ ports:
94
+ - "${MCP_PORT:-3001}:8080"
95
+ depends_on:
96
+ api:
97
+ condition: service_healthy
98
+ environment:
99
+ Knowz__BaseUrl: "${MCP_API_URL:-http://api:8080}"
100
+ MCP__BackendMode: "${MCP_BACKEND_MODE:-selfhosted}"
101
+ MCP__ApiKeyValidationEndpoint: "${MCP_API_KEY_VALIDATION_ENDPOINT:-/api/vaults}"
102
+ MCP__ServiceKey: "${MCP_SERVICE_KEY:?MCP_SERVICE_KEY must be set in .env}"
103
+ Authentication__ValidateApiKey: "${MCP_VALIDATE_API_KEY:-true}"
104
+ healthcheck:
105
+ test: curl -f http://localhost:8080/.well-known/oauth-authorization-server || exit 1
106
+ interval: 30s
107
+ timeout: 10s
108
+ retries: 5
109
+ start_period: 15s
110
+
111
+ volumes:
112
+ knowz-db-data:
113
+ knowz-file-storage:
@@ -2,27 +2,27 @@
2
2
  # Canonical source: this file. The npm CLI copies it via sync-selfhosted-assets.mjs.
3
3
  # Source-build remains selfhosted/docker-compose.yml (build: contexts).
4
4
  #
5
- # FAIL-CLOSED: SA_PASSWORD, JWT_SECRET, ADMIN_USERNAME, ADMIN_PASSWORD, MCP_SERVICE_KEY
5
+ # FAIL-CLOSED: POSTGRES_PASSWORD, JWT_SECRET, ADMIN_USERNAME, ADMIN_PASSWORD, MCP_SERVICE_KEY
6
6
  # have no defaults. The CLI mints them into a 0600 .env on first up.
7
7
  # Pin KNOWZ_SELFHOSTED_VERSION to a concrete semver — never `latest`.
8
8
 
9
9
  services:
10
10
  db:
11
- image: mcr.microsoft.com/mssql/server:2022-CU26-ubuntu-22.04
11
+ image: pgvector/pgvector:pg16
12
12
  environment:
13
- ACCEPT_EULA: "Y"
14
- MSSQL_SA_PASSWORD: "${SA_PASSWORD:?SA_PASSWORD must be set in .env (>=12 chars, SQL Server complexity rules)}"
15
- MSSQL_PID: "Express"
13
+ POSTGRES_USER: knowz
14
+ POSTGRES_PASSWORD: "${POSTGRES_PASSWORD:?POSTGRES_PASSWORD must be set in .env}"
15
+ POSTGRES_DB: knowz_selfhosted
16
16
  ports:
17
- - "${DB_PORT:-1433}:1433"
17
+ - "127.0.0.1:${DB_PORT:-5432}:5432"
18
18
  volumes:
19
- - knowz-db-data:/var/opt/mssql
19
+ - knowz-db-data:/var/lib/postgresql/data
20
20
  healthcheck:
21
- test: /opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -P "$${MSSQL_SA_PASSWORD}" -Q "SELECT 1" -C -b
22
- interval: 10s
21
+ test: ["CMD-SHELL", "pg_isready -U knowz -d knowz_selfhosted"]
22
+ interval: 5s
23
23
  timeout: 5s
24
24
  retries: 10
25
- start_period: 30s
25
+ start_period: 10s
26
26
 
27
27
  api:
28
28
  image: ghcr.io/knowz-io/knowz-selfhosted-api:${KNOWZ_SELFHOSTED_VERSION:?KNOWZ_SELFHOSTED_VERSION must be set}
@@ -32,22 +32,28 @@ services:
32
32
  db:
33
33
  condition: service_healthy
34
34
  environment:
35
- ConnectionStrings__McpDb: "Server=db,1433;Database=KnowzSelfHosted;User Id=sa;Password=${SA_PASSWORD:?SA_PASSWORD must be set};TrustServerCertificate=True;Encrypt=True"
35
+ ConnectionStrings__McpDb: "Host=db;Port=5432;Database=knowz_selfhosted;Username=knowz;Password=${POSTGRES_PASSWORD:?POSTGRES_PASSWORD must be set}"
36
36
  Database__AutoMigrate: "true"
37
37
  SelfHosted__JwtSecret: "${JWT_SECRET:?JWT_SECRET must be set in .env (>=32 chars)}"
38
38
  SelfHosted__SuperAdminUsername: "${ADMIN_USERNAME:?ADMIN_USERNAME must be set in .env}"
39
39
  SelfHosted__SuperAdminPassword: "${ADMIN_PASSWORD:?ADMIN_PASSWORD must be set in .env}"
40
+ SelfHosted__RequireSuperAdminPasswordChange: "${ADMIN_PASSWORD_REQUIRES_CHANGE:-false}"
40
41
  SelfHosted__AllowedOrigins__0: "http://localhost:${WEB_PORT:-3000}"
41
42
  SelfHosted__RateLimiting__Enabled: "true"
42
43
  MCP__ServiceKey: "${MCP_SERVICE_KEY:?MCP_SERVICE_KEY must be set in .env}"
43
44
  Storage__Provider: "LocalFileSystem"
44
45
  Storage__Local__RootPath: "/data/files"
46
+ OpenAiCompatible__Endpoint: "${OPENAI_COMPAT_ENDPOINT:-}"
47
+ OpenAiCompatible__ApiKey: "${OPENAI_COMPAT_APIKEY:-}"
48
+ OpenAiCompatible__ChatModel: "${OPENAI_COMPAT_CHAT_MODEL:-}"
49
+ OpenAiCompatible__EmbeddingModel: "${OPENAI_COMPAT_EMBEDDING_MODEL:-}"
50
+ OpenAiCompatible__EmbeddingDimensions: "${EMBEDDING_DIMENSIONS:-1536}"
45
51
  AzureOpenAI__Endpoint: "${AZURE_OPENAI_ENDPOINT:-}"
46
52
  AzureOpenAI__ApiKey: "${AZURE_OPENAI_APIKEY:-}"
47
53
  AzureOpenAI__DeploymentName: "${AZURE_OPENAI_DEPLOYMENT:-gpt-5.4}"
48
- AzureOpenAI__EmbeddingDeploymentName: "${AZURE_OPENAI_EMBEDDING:-text-embedding-3-large}"
49
- Embedding__ModelName: "${EMBEDDING_MODEL_NAME:-text-embedding-3-large}"
50
- Embedding__Dimensions: "${EMBEDDING_DIMENSIONS:-3072}"
54
+ AzureOpenAI__EmbeddingDeploymentName: "${AZURE_OPENAI_EMBEDDING:-text-embedding-3-small}"
55
+ Embedding__ModelName: "${EMBEDDING_MODEL_NAME:-text-embedding-3-small}"
56
+ Embedding__Dimensions: "${EMBEDDING_DIMENSIONS:-1536}"
51
57
  AzureAISearch__Endpoint: "${AZURE_SEARCH_ENDPOINT:-}"
52
58
  AzureAISearch__ApiKey: "${AZURE_SEARCH_APIKEY:-}"
53
59
  AzureAISearch__IndexName: "${AZURE_SEARCH_INDEX:-knowz-selfhosted}"
@@ -56,6 +62,8 @@ services:
56
62
  KnowzPlatform__ApiKey: "${KNOWZ_PLATFORM_APIKEY:-}"
57
63
  volumes:
58
64
  - knowz-file-storage:/data/files
65
+ extra_hosts:
66
+ - "host.docker.internal:host-gateway"
59
67
  healthcheck:
60
68
  test: curl -f http://localhost:8080/healthz || exit 1
61
69
  interval: 30s
@@ -0,0 +1,73 @@
1
+ import http from 'node:http';
2
+ import { Readable } from 'node:stream';
3
+
4
+ const listenPort = Number(process.env.PORT || 12345);
5
+ const upstreamBase = (process.env.OPENAI_COMPAT_ENDPOINT || 'http://host.docker.internal:1234/v1')
6
+ .replace(/\/$/, '');
7
+ const upstreamApiKey = process.env.OPENAI_COMPAT_APIKEY || 'local-compatible-adapter';
8
+
9
+ function sendJson(response, statusCode, payload) {
10
+ response.writeHead(statusCode, { 'content-type': 'application/json' });
11
+ response.end(JSON.stringify(payload));
12
+ }
13
+
14
+ const server = http.createServer(async (request, response) => {
15
+ if (request.method === 'GET' && request.url === '/healthz') {
16
+ sendJson(response, 200, { status: 'healthy' });
17
+ return;
18
+ }
19
+
20
+ const route = request.url?.match(
21
+ /^\/openai\/deployments\/([^/]+)\/(chat\/completions|embeddings)(?:\?.*)?$/,
22
+ );
23
+ if (request.method !== 'POST' || !route) {
24
+ sendJson(response, 404, { error: { message: 'Unsupported compatibility route' } });
25
+ return;
26
+ }
27
+
28
+ const chunks = [];
29
+ for await (const chunk of request) chunks.push(chunk);
30
+
31
+ try {
32
+ const deployment = decodeURIComponent(route[1]);
33
+ const body = JSON.parse(Buffer.concat(chunks).toString('utf8'));
34
+ body.model = deployment;
35
+
36
+ const upstream = await fetch(`${upstreamBase}/${route[2]}`, {
37
+ method: 'POST',
38
+ headers: {
39
+ 'content-type': 'application/json',
40
+ accept: request.headers.accept || 'application/json',
41
+ authorization: `Bearer ${upstreamApiKey}`,
42
+ },
43
+ body: JSON.stringify(body),
44
+ });
45
+
46
+ if (route[2] === 'embeddings' && upstream.ok) {
47
+ const payload = await upstream.json();
48
+ for (const item of payload.data || []) {
49
+ if (!Array.isArray(item.embedding)) continue;
50
+ const packed = Buffer.allocUnsafe(item.embedding.length * 4);
51
+ item.embedding.forEach((value, index) => packed.writeFloatLE(value, index * 4));
52
+ item.embedding = packed.toString('base64');
53
+ }
54
+ response.writeHead(upstream.status, { 'content-type': 'application/json' });
55
+ response.end(JSON.stringify(payload));
56
+ return;
57
+ }
58
+
59
+ const headers = {};
60
+ for (const [key, value] of upstream.headers) {
61
+ if (key !== 'content-length' && key !== 'transfer-encoding') headers[key] = value;
62
+ }
63
+ response.writeHead(upstream.status, headers);
64
+ if (upstream.body) Readable.fromWeb(upstream.body).pipe(response);
65
+ else response.end();
66
+ } catch (error) {
67
+ sendJson(response, 502, {
68
+ error: { message: `OpenAI-compatible adapter request failed: ${error.message}` },
69
+ });
70
+ }
71
+ });
72
+
73
+ server.listen(listenPort, '0.0.0.0');
@@ -1,28 +1,59 @@
1
1
  {
2
2
  "releases": [
3
+ {
4
+ "version": "0.16.0",
5
+ "status": "complete",
6
+ "flavors": ["selfhosted"],
7
+ "releasedAt": "2026-09-04T05:28:39Z",
8
+ "minCliVersion": "0.4.0",
9
+ "notes": "Native PostgreSQL 16 + pgvector. Limited edition (honesty). MCP 26/36. Azure deploy not offered. File-sync uses PlatformConnection credentials.",
10
+ "digests": null,
11
+ "runtime": {
12
+ "database": "postgres",
13
+ "composeAsset": "docker-compose.yml"
14
+ }
15
+ },
3
16
  {
4
17
  "version": "0.15.1",
18
+ "status": "complete",
5
19
  "flavors": ["selfhosted"],
6
20
  "releasedAt": "2026-09-01T12:49:00Z",
7
21
  "minCliVersion": null,
8
22
  "notes": "User-role mothership connect/browse/pull. Anonymous GHCR triple.",
9
- "digests": null
23
+ "digests": null,
24
+ "runtime": {
25
+ "database": "mssql",
26
+ "composeAsset": "docker-compose.mssql.yml",
27
+ "compatibleProviderAdapter": "lmstudio-azure-bridge.mjs"
28
+ }
10
29
  },
11
30
  {
12
31
  "version": "0.15.0",
32
+ "status": "complete",
13
33
  "flavors": ["selfhosted"],
14
34
  "releasedAt": "2026-09-01T12:15:00Z",
15
35
  "minCliVersion": null,
16
36
  "notes": "Look/feel restyle, session decrypt, fail-closed compose, vite-only web image. First complete public GHCR triple since the split 0.14.x tags.",
17
- "digests": null
37
+ "digests": null,
38
+ "runtime": {
39
+ "database": "mssql",
40
+ "composeAsset": "docker-compose.mssql.yml",
41
+ "compatibleProviderAdapter": "lmstudio-azure-bridge.mjs"
42
+ }
18
43
  },
19
44
  {
20
45
  "version": "0.14.11",
46
+ "status": "incomplete",
21
47
  "flavors": ["selfhosted"],
22
48
  "releasedAt": "2026-05-28T00:00:00Z",
23
49
  "minCliVersion": null,
24
50
  "notes": "Incomplete GHCR set: api:0.14.11 exists; web/mcp 0.14.11 404 (web/mcp last published at 0.14.10). Do not pin.",
25
- "digests": null
51
+ "digests": null,
52
+ "runtime": {
53
+ "database": "mssql",
54
+ "composeAsset": "docker-compose.mssql.yml",
55
+ "compatibleProviderAdapter": "lmstudio-azure-bridge.mjs"
56
+ }
26
57
  }
27
58
  ]
28
59
  }