@kb-labs/studio-app 2.118.2 → 2.119.0-canary.0b4b21a55

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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@kb-labs/studio-app",
3
3
  "description": "KB Labs Studio application",
4
- "version": "2.118.2",
4
+ "version": "2.119.0-canary.0b4b21a55",
5
5
  "type": "module",
6
6
  "main": "./server.js",
7
7
  "files": [
@@ -30,21 +30,21 @@
30
30
  "reactflow": "^11.11.4",
31
31
  "zod": "^3.25.76",
32
32
  "zustand": "^5.0.2",
33
- "@kb-labs/core-contracts": "2.118.2",
34
- "@kb-labs/quality-contracts": "2.118.2",
35
- "@kb-labs/agent-contracts": "2.118.2",
36
- "@kb-labs/qa-contracts": "2.118.2",
37
- "@kb-labs/release-manager-contracts": "2.118.2",
38
- "@kb-labs/rest-api-contracts": "2.118.2",
39
- "@kb-labs/studio-data-client": "2.118.2",
40
- "@kb-labs/studio-devtools": "2.118.2",
41
- "@kb-labs/studio-event-bus": "2.118.2",
42
- "@kb-labs/studio-federation": "2.118.2",
43
- "@kb-labs/studio-hooks": "2.118.2",
44
- "@kb-labs/studio-plugin-tools": "2.118.2",
45
- "@kb-labs/studio-ui-core": "2.118.2",
46
- "@kb-labs/studio-ui-kit": "2.118.2",
47
- "@kb-labs/workflow-contracts": "2.118.2"
33
+ "@kb-labs/core-contracts": "2.119.0-canary.0b4b21a55",
34
+ "@kb-labs/agent-contracts": "2.119.0-canary.0b4b21a55",
35
+ "@kb-labs/quality-contracts": "2.119.0-canary.0b4b21a55",
36
+ "@kb-labs/qa-contracts": "2.119.0-canary.0b4b21a55",
37
+ "@kb-labs/release-manager-contracts": "2.119.0-canary.0b4b21a55",
38
+ "@kb-labs/rest-api-contracts": "2.119.0-canary.0b4b21a55",
39
+ "@kb-labs/studio-data-client": "2.119.0-canary.0b4b21a55",
40
+ "@kb-labs/studio-devtools": "2.119.0-canary.0b4b21a55",
41
+ "@kb-labs/studio-event-bus": "2.119.0-canary.0b4b21a55",
42
+ "@kb-labs/studio-federation": "2.119.0-canary.0b4b21a55",
43
+ "@kb-labs/studio-plugin-tools": "2.119.0-canary.0b4b21a55",
44
+ "@kb-labs/studio-hooks": "2.119.0-canary.0b4b21a55",
45
+ "@kb-labs/studio-ui-core": "2.119.0-canary.0b4b21a55",
46
+ "@kb-labs/studio-ui-kit": "2.119.0-canary.0b4b21a55",
47
+ "@kb-labs/workflow-contracts": "2.119.0-canary.0b4b21a55"
48
48
  },
49
49
  "devDependencies": {
50
50
  "@module-federation/enhanced": "^2.3.3",
@@ -70,7 +70,7 @@
70
70
  "tsup": "^8",
71
71
  "typescript": "^5",
72
72
  "vitest": "^3.2.6",
73
- "@kb-labs/devkit": "2.118.2"
73
+ "@kb-labs/devkit": "2.119.0-canary.0b4b21a55"
74
74
  },
75
75
  "engines": {
76
76
  "node": ">=22.0.0",
package/server.js CHANGED
@@ -16,7 +16,7 @@
16
16
  * This server only serves static files.
17
17
  */
18
18
  import { createServer, request as httpRequest } from 'node:http';
19
- import { readFile, stat } from 'node:fs/promises';
19
+ import { readFile, stat, realpath } from 'node:fs/promises';
20
20
  import { join, extname, resolve } from 'node:path';
21
21
  import { fileURLToPath } from 'node:url';
22
22
 
@@ -135,7 +135,30 @@ const server = createServer(async (req, res) => {
135
135
  }
136
136
  });
137
137
 
138
- server.listen(PORT, HOST, () => {
139
- console.log(`Studio http://localhost:${PORT}`);
140
- console.log(`API ${runtimeConfig.KB_API_BASE_URL}`);
141
- });
138
+ // Only listen when this file is the entrypoint — a bare `import` (e.g. the
139
+ // release pipeline's clean-install packaging check) must not start a server.
140
+ // Deploy installs run through a `services/<short>/current` symlink: Node
141
+ // resolves symlinks when computing import.meta.url but leaves process.argv[1]
142
+ // as the literal (unresolved) path it was invoked with, so a strict string
143
+ // comparison never matches there — the guard silently fails, listen() is
144
+ // never called, and the process exits 0 without starting. Compare realpaths
145
+ // on both sides so a symlinked entrypoint still counts as "this is main".
146
+ async function isEntrypoint() {
147
+ if (!process.argv[1]) return false;
148
+ try {
149
+ const [self, argv1] = await Promise.all([
150
+ realpath(fileURLToPath(import.meta.url)),
151
+ realpath(process.argv[1]),
152
+ ]);
153
+ return self === argv1;
154
+ } catch {
155
+ return false;
156
+ }
157
+ }
158
+
159
+ if (await isEntrypoint()) {
160
+ server.listen(PORT, HOST, () => {
161
+ console.log(`Studio http://localhost:${PORT}`);
162
+ console.log(`API ${runtimeConfig.KB_API_BASE_URL}`);
163
+ });
164
+ }
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
package/dist/favicon.svg DELETED
@@ -1,7 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" role="img" aria-label="Lab flask favicon icon">
2
- <rect x="4" y="4" width="56" height="56" rx="14" fill="#0B1320" />
3
- <path d="M27 10h10v7l-1.6 2.3v8.4c0 2.2.9 4.4 2.4 6.1l6.4 9c2.8 3.9.1 9.2-4.7 9.2H24.5c-4.8 0-7.5-5.3-4.7-9.2l6.4-9c1.5-1.7 2.4-3.9 2.4-6.1v-8.4L27 17z" fill="#EAF3FF" />
4
- <path d="M21.8 43.2c2.2-2.8 18.2-2.8 20.4 0l2 2.8c1.8 2.6-.1 6-3.2 6H23c-3.1 0-5-3.4-3.2-6z" fill="#3B82F6" />
5
- <ellipse cx="28" cy="35.2" rx="3.3" ry="5.4" fill="#FFFFFF" opacity="0.48" />
6
- <circle cx="35.5" cy="46.2" r="1.6" fill="#BFDBFE" />
7
- </svg>
package/dist/index.html DELETED
@@ -1 +0,0 @@
1
- <!doctype html><html lang="en"><head><meta charset="UTF-8"><base href="/"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><link rel="icon" type="image/x-icon" href="/favicon.ico"><meta name="viewport" content="width=device-width,initial-scale=1.0"><title>KB Labs Studio</title><link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin><link href="https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@600;700&display=swap" rel="stylesheet"><link href="favicon.svg" rel="icon"><script defer src="main.167555bb.js"></script><link href="main.310506eb.css" rel="stylesheet"></head><body><div id="root"></div></body></html>