openportal 0.1.5 → 0.1.7

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 (53) hide show
  1. package/bin/openportal.js +0 -0
  2. package/dist/server.d.ts.map +1 -1
  3. package/dist/server.js +37 -13
  4. package/package.json +1 -1
  5. package/web/.next/static/{y2ycO03ve196WDQMARHOK → JANTDVN3WAi1HyGF4sYyu}/_buildManifest.js +3 -3
  6. package/web/.next/static/chunks/{9865709466b09f79.js → 075bf1844a2a8238.js} +1 -1
  7. package/web/.next/static/chunks/{b5caad256518cb33.js → 12a285422aefa8f5.js} +2 -2
  8. package/web/.next/static/chunks/{35cc9dbdc670c73c.js → 1cf50cbb0c19d809.js} +2 -2
  9. package/web/.next/static/chunks/58dfd7eaecc95072.css +1 -0
  10. package/web/.next/static/chunks/{9ba9a5774c9421bd.js → adca6b6ebb8e46ad.js} +2 -2
  11. package/web/.next/static/chunks/{8644d68bf325ff24.js → e3cea2af1c7eeb38.js} +2 -2
  12. package/web/.next/static/chunks/{52b90bc1740162c2.js → f2181a2896b161d3.js} +1 -1
  13. package/web/.next/static/chunks/{turbopack-8e653f3ad3a8ed18.js → turbopack-5bc5d12324421501.js} +1 -1
  14. package/web/.next/static/chunks/{turbopack-26af71e419c11487.js → turbopack-a10eb107cf4b4fb7.js} +2 -2
  15. package/web/.next/static/chunks/{turbopack-d5098189d63fd7b8.js → turbopack-c25d63f359fc1234.js} +1 -1
  16. package/web/.next/static/chunks/{turbopack-4ad0df7330c00c8d.js → turbopack-e65f135dc5679f88.js} +1 -1
  17. package/web/_modules/.bun/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_interop_require_default.cjs +6 -0
  18. package/web/_modules/.bun/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs +38 -0
  19. package/web/_modules/.bun/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_check_private_redeclaration.js +6 -0
  20. package/web/_modules/.bun/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_apply_descriptor_get.js +6 -0
  21. package/web/_modules/.bun/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_apply_descriptor_set.js +13 -0
  22. package/web/_modules/.bun/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_extract_field_descriptor.js +6 -0
  23. package/web/_modules/.bun/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_private_field_get.js +8 -0
  24. package/web/_modules/.bun/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_private_field_init.js +7 -0
  25. package/web/_modules/.bun/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_private_field_set.js +9 -0
  26. package/web/_modules/.bun/@swc+helpers@0.5.15/node_modules/@swc/helpers/package.json +471 -0
  27. package/web/apps/web/.next/BUILD_ID +1 -1
  28. package/web/apps/web/.next/build-manifest.json +10 -10
  29. package/web/apps/web/.next/server/chunks/[root-of-the-server]__43673403._.js +3 -0
  30. package/web/apps/web/.next/server/chunks/[root-of-the-server]__49897688._.js +3 -0
  31. package/web/apps/web/.next/server/chunks/[root-of-the-server]__f366ca98._.js +1 -1
  32. package/web/apps/web/.next/server/chunks/ssr/[root-of-the-server]__1a54ba1e._.js +1 -1
  33. package/web/apps/web/.next/server/middleware-build-manifest.js +8 -8
  34. package/web/apps/web/.next/server/pages/404.html +1 -1
  35. package/web/apps/web/.next/server/pages/500.html +1 -1
  36. package/web/apps/web/.next/server/pages/_app/build-manifest.json +2 -2
  37. package/web/apps/web/.next/server/pages/_app/client-build-manifest.json +1 -1
  38. package/web/apps/web/.next/server/pages/api/[[...slugs]].js +1 -1
  39. package/web/apps/web/.next/server/pages/api/[[...slugs]].js.nft.json +1 -1
  40. package/web/apps/web/.next/server/pages/index/build-manifest.json +2 -2
  41. package/web/apps/web/.next/server/pages/index/client-build-manifest.json +1 -1
  42. package/web/apps/web/.next/server/pages/index.html +1 -1
  43. package/web/apps/web/.next/server/pages/session/[id]/build-manifest.json +2 -2
  44. package/web/apps/web/.next/server/pages/session/[id]/client-build-manifest.json +1 -1
  45. package/web/apps/web/.next/server/pages/session/[id].html +1 -1
  46. package/web/apps/web/.next/server/pages/settings/build-manifest.json +2 -2
  47. package/web/apps/web/.next/server/pages/settings/client-build-manifest.json +1 -1
  48. package/web/apps/web/.next/server/pages/settings.html +1 -1
  49. package/web/.next/static/chunks/4147ffc67a7b837c.css +0 -1
  50. package/web/apps/web/.next/server/chunks/[root-of-the-server]__d3d7c8fd._.js +0 -3
  51. package/web/apps/web/.next/server/chunks/[root-of-the-server]__ffad457f._.js +0 -3
  52. /package/web/.next/static/{y2ycO03ve196WDQMARHOK → JANTDVN3WAi1HyGF4sYyu}/_clientMiddlewareManifest.json +0 -0
  53. /package/web/.next/static/{y2ycO03ve196WDQMARHOK → JANTDVN3WAi1HyGF4sYyu}/_ssgManifest.js +0 -0
package/bin/openportal.js CHANGED
File without changes
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAiB9D,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AA+CD,wBAAsB,cAAc,CAClC,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAwE9B;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,CAKtD"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAiB9D,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AA8ED,wBAAsB,cAAc,CAClC,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CA8E9B;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,CAKtD"}
package/dist/server.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { spawn } from "node:child_process";
2
2
  import { resolve, dirname, delimiter } from "node:path";
3
- import { existsSync } from "node:fs";
3
+ import { existsSync, symlinkSync, lstatSync } from "node:fs";
4
4
  import { fileURLToPath } from "node:url";
5
5
  import { log, logError, logSuccess, logWarning, trackProcess, waitForService, colors, } from "./utils.js";
6
6
  const __filename = fileURLToPath(import.meta.url);
@@ -9,30 +9,52 @@ function findWebDirectory() {
9
9
  const possiblePaths = [
10
10
  {
11
11
  webDir: resolve(__dirname, "..", "web", "apps", "web"),
12
- modulesDir: resolve(__dirname, "..", "web", "_modules"),
12
+ rootDir: resolve(__dirname, "..", "web"),
13
13
  },
14
14
  {
15
15
  webDir: resolve(__dirname, "..", "web"),
16
- modulesDir: resolve(__dirname, "..", "web", "_modules"),
16
+ rootDir: resolve(__dirname, "..", "web"),
17
17
  },
18
18
  {
19
19
  webDir: resolve(__dirname, "..", "..", "web"),
20
- modulesDir: resolve(__dirname, "..", "..", "web", "_modules"),
20
+ rootDir: resolve(__dirname, "..", "..", "web"),
21
21
  },
22
22
  {
23
23
  webDir: resolve(__dirname, "..", "..", "..", "apps", "web", ".next", "standalone"),
24
- modulesDir: null,
24
+ rootDir: resolve(__dirname, "..", "..", "..", "apps", "web", ".next", "standalone"),
25
25
  },
26
26
  ];
27
- for (const { webDir, modulesDir } of possiblePaths) {
27
+ for (const { webDir, rootDir } of possiblePaths) {
28
28
  const serverPath = resolve(webDir, "server.js");
29
29
  if (existsSync(serverPath)) {
30
- const resolvedModulesDir = modulesDir && existsSync(modulesDir) ? modulesDir : null;
31
- return { webDir, modulesDir: resolvedModulesDir };
30
+ const modulesDirs = new Set();
31
+ const appModulesDir = resolve(webDir, "_modules");
32
+ if (existsSync(appModulesDir)) {
33
+ modulesDirs.add(appModulesDir);
34
+ }
35
+ const rootModulesDir = resolve(rootDir, "_modules");
36
+ if (existsSync(rootModulesDir)) {
37
+ modulesDirs.add(rootModulesDir);
38
+ }
39
+ return { webDir, modulesDirs: [...modulesDirs] };
32
40
  }
33
41
  }
34
42
  return null;
35
43
  }
44
+ function ensureNodeModulesSymlink(modulesDir) {
45
+ const parentDir = resolve(modulesDir, "..");
46
+ const nodeModulesPath = resolve(parentDir, "node_modules");
47
+ try {
48
+ if (existsSync(nodeModulesPath)) {
49
+ const stats = lstatSync(nodeModulesPath);
50
+ if (stats.isSymbolicLink() || stats.isDirectory()) {
51
+ return;
52
+ }
53
+ }
54
+ symlinkSync("_modules", nodeModulesPath, "dir");
55
+ }
56
+ catch { }
57
+ }
36
58
  export async function startWebServer(config) {
37
59
  const result = findWebDirectory();
38
60
  if (!result) {
@@ -40,12 +62,14 @@ export async function startWebServer(config) {
40
62
  logWarning("Expected to find server.js in the web directory.");
41
63
  return null;
42
64
  }
43
- const { webDir, modulesDir } = result;
65
+ const { webDir, modulesDirs } = result;
66
+ for (const modulesDir of modulesDirs) {
67
+ ensureNodeModulesSymlink(modulesDir);
68
+ }
44
69
  log(`Starting web server on port ${config.port}...`);
45
70
  const serverPath = resolve(webDir, "server.js");
46
- const nodePathEnv = modulesDir
47
- ? [modulesDir, process.env.NODE_PATH].filter(Boolean).join(delimiter)
48
- : process.env.NODE_PATH;
71
+ const nodePathEntries = [...modulesDirs, process.env.NODE_PATH].filter(Boolean);
72
+ const nodePathEnv = nodePathEntries.length > 0 ? nodePathEntries.join(delimiter) : undefined;
49
73
  const proc = spawn("node", [serverPath], {
50
74
  cwd: webDir,
51
75
  stdio: ["ignore", "pipe", "pipe"],
@@ -54,7 +78,7 @@ export async function startWebServer(config) {
54
78
  PORT: config.port.toString(),
55
79
  HOSTNAME: "0.0.0.0",
56
80
  NODE_ENV: "production",
57
- NODE_PATH: nodePathEnv,
81
+ ...(nodePathEnv ? { NODE_PATH: nodePathEnv } : {}),
58
82
  OPENCODE_SERVER_URL: `http://${config.opencodeHost}:${config.opencodePort}`,
59
83
  },
60
84
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openportal",
3
- "version": "0.1.5",
3
+ "version": "0.1.7",
4
4
  "description": "CLI to run OpenCode Portal - a web UI for OpenCode AI coding agent",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,15 +1,15 @@
1
1
  self.__BUILD_MANIFEST = {
2
2
  "/": [
3
- "static/chunks/9ba9a5774c9421bd.js"
3
+ "static/chunks/adca6b6ebb8e46ad.js"
4
4
  ],
5
5
  "/_error": [
6
6
  "static/chunks/aebf799dac29fe08.js"
7
7
  ],
8
8
  "/session/[id]": [
9
- "static/chunks/35cc9dbdc670c73c.js"
9
+ "static/chunks/1cf50cbb0c19d809.js"
10
10
  ],
11
11
  "/settings": [
12
- "static/chunks/b5caad256518cb33.js"
12
+ "static/chunks/12a285422aefa8f5.js"
13
13
  ],
14
14
  "__rewrites": {
15
15
  "afterFiles": [],