viba-cli 0.1.3

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 (228) hide show
  1. package/.next/BUILD_ID +1 -0
  2. package/.next/app-path-routes-manifest.json +8 -0
  3. package/.next/build-manifest.json +20 -0
  4. package/.next/export-marker.json +6 -0
  5. package/.next/fallback-build-manifest.json +12 -0
  6. package/.next/images-manifest.json +67 -0
  7. package/.next/next-minimal-server.js.nft.json +1 -0
  8. package/.next/next-server.js.nft.json +1 -0
  9. package/.next/package.json +1 -0
  10. package/.next/prerender-manifest.json +114 -0
  11. package/.next/required-server-files.js +330 -0
  12. package/.next/required-server-files.json +330 -0
  13. package/.next/routes-manifest.json +89 -0
  14. package/.next/server/app/_global-error/page/app-paths-manifest.json +3 -0
  15. package/.next/server/app/_global-error/page/build-manifest.json +17 -0
  16. package/.next/server/app/_global-error/page/next-font-manifest.json +6 -0
  17. package/.next/server/app/_global-error/page/react-loadable-manifest.json +1 -0
  18. package/.next/server/app/_global-error/page/server-reference-manifest.json +4 -0
  19. package/.next/server/app/_global-error/page.js +10 -0
  20. package/.next/server/app/_global-error/page.js.map +5 -0
  21. package/.next/server/app/_global-error/page.js.nft.json +1 -0
  22. package/.next/server/app/_global-error/page_client-reference-manifest.js +2 -0
  23. package/.next/server/app/_global-error.html +2 -0
  24. package/.next/server/app/_global-error.meta +15 -0
  25. package/.next/server/app/_global-error.rsc +12 -0
  26. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +5 -0
  27. package/.next/server/app/_global-error.segments/_full.segment.rsc +12 -0
  28. package/.next/server/app/_global-error.segments/_head.segment.rsc +5 -0
  29. package/.next/server/app/_global-error.segments/_index.segment.rsc +4 -0
  30. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -0
  31. package/.next/server/app/_not-found/page/app-paths-manifest.json +3 -0
  32. package/.next/server/app/_not-found/page/build-manifest.json +17 -0
  33. package/.next/server/app/_not-found/page/next-font-manifest.json +11 -0
  34. package/.next/server/app/_not-found/page/react-loadable-manifest.json +1 -0
  35. package/.next/server/app/_not-found/page/server-reference-manifest.json +4 -0
  36. package/.next/server/app/_not-found/page.js +15 -0
  37. package/.next/server/app/_not-found/page.js.map +5 -0
  38. package/.next/server/app/_not-found/page.js.nft.json +1 -0
  39. package/.next/server/app/_not-found/page_client-reference-manifest.js +2 -0
  40. package/.next/server/app/_not-found.html +1 -0
  41. package/.next/server/app/_not-found.meta +16 -0
  42. package/.next/server/app/_not-found.rsc +14 -0
  43. package/.next/server/app/_not-found.segments/_full.segment.rsc +14 -0
  44. package/.next/server/app/_not-found.segments/_head.segment.rsc +6 -0
  45. package/.next/server/app/_not-found.segments/_index.segment.rsc +5 -0
  46. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +5 -0
  47. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +4 -0
  48. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -0
  49. package/.next/server/app/icon.png/route/app-paths-manifest.json +3 -0
  50. package/.next/server/app/icon.png/route/build-manifest.json +11 -0
  51. package/.next/server/app/icon.png/route.js +6 -0
  52. package/.next/server/app/icon.png/route.js.map +5 -0
  53. package/.next/server/app/icon.png/route.js.nft.json +1 -0
  54. package/.next/server/app/icon.png.body +0 -0
  55. package/.next/server/app/icon.png.meta +1 -0
  56. package/.next/server/app/index.html +1 -0
  57. package/.next/server/app/index.meta +14 -0
  58. package/.next/server/app/index.rsc +20 -0
  59. package/.next/server/app/index.segments/__PAGE__.segment.rsc +9 -0
  60. package/.next/server/app/index.segments/_full.segment.rsc +20 -0
  61. package/.next/server/app/index.segments/_head.segment.rsc +6 -0
  62. package/.next/server/app/index.segments/_index.segment.rsc +5 -0
  63. package/.next/server/app/index.segments/_tree.segment.rsc +4 -0
  64. package/.next/server/app/new/page/app-paths-manifest.json +3 -0
  65. package/.next/server/app/new/page/build-manifest.json +17 -0
  66. package/.next/server/app/new/page/next-font-manifest.json +11 -0
  67. package/.next/server/app/new/page/react-loadable-manifest.json +1 -0
  68. package/.next/server/app/new/page/server-reference-manifest.json +245 -0
  69. package/.next/server/app/new/page.js +18 -0
  70. package/.next/server/app/new/page.js.map +5 -0
  71. package/.next/server/app/new/page.js.nft.json +1 -0
  72. package/.next/server/app/new/page_client-reference-manifest.js +2 -0
  73. package/.next/server/app/page/app-paths-manifest.json +3 -0
  74. package/.next/server/app/page/build-manifest.json +17 -0
  75. package/.next/server/app/page/next-font-manifest.json +11 -0
  76. package/.next/server/app/page/react-loadable-manifest.json +1 -0
  77. package/.next/server/app/page/server-reference-manifest.json +245 -0
  78. package/.next/server/app/page.js +18 -0
  79. package/.next/server/app/page.js.map +5 -0
  80. package/.next/server/app/page.js.nft.json +1 -0
  81. package/.next/server/app/page_client-reference-manifest.js +2 -0
  82. package/.next/server/app/session/[sessionId]/page/app-paths-manifest.json +3 -0
  83. package/.next/server/app/session/[sessionId]/page/build-manifest.json +17 -0
  84. package/.next/server/app/session/[sessionId]/page/next-font-manifest.json +11 -0
  85. package/.next/server/app/session/[sessionId]/page/react-loadable-manifest.json +1 -0
  86. package/.next/server/app/session/[sessionId]/page/server-reference-manifest.json +230 -0
  87. package/.next/server/app/session/[sessionId]/page.js +18 -0
  88. package/.next/server/app/session/[sessionId]/page.js.map +5 -0
  89. package/.next/server/app/session/[sessionId]/page.js.nft.json +1 -0
  90. package/.next/server/app/session/[sessionId]/page_client-reference-manifest.js +2 -0
  91. package/.next/server/app-paths-manifest.json +8 -0
  92. package/.next/server/chunks/[externals]_next_dist_a6d89067._.js +3 -0
  93. package/.next/server/chunks/[externals]_next_dist_a6d89067._.js.map +1 -0
  94. package/.next/server/chunks/[root-of-the-server]__c8bd587a._.js +21 -0
  95. package/.next/server/chunks/[root-of-the-server]__c8bd587a._.js.map +1 -0
  96. package/.next/server/chunks/[turbopack]_runtime.js +795 -0
  97. package/.next/server/chunks/[turbopack]_runtime.js.map +10 -0
  98. package/.next/server/chunks/_next-internal_server_app_icon_png_route_actions_fa3562e2.js +3 -0
  99. package/.next/server/chunks/_next-internal_server_app_icon_png_route_actions_fa3562e2.js.map +1 -0
  100. package/.next/server/chunks/ssr/[root-of-the-server]__0092b3d0._.js +3 -0
  101. package/.next/server/chunks/ssr/[root-of-the-server]__0092b3d0._.js.map +1 -0
  102. package/.next/server/chunks/ssr/[root-of-the-server]__0d3b7eea._.js +3 -0
  103. package/.next/server/chunks/ssr/[root-of-the-server]__0d3b7eea._.js.map +1 -0
  104. package/.next/server/chunks/ssr/[root-of-the-server]__11fa4345._.js +3 -0
  105. package/.next/server/chunks/ssr/[root-of-the-server]__11fa4345._.js.map +1 -0
  106. package/.next/server/chunks/ssr/[root-of-the-server]__2c2d9a9f._.js +3 -0
  107. package/.next/server/chunks/ssr/[root-of-the-server]__2c2d9a9f._.js.map +1 -0
  108. package/.next/server/chunks/ssr/[root-of-the-server]__30652385._.js +3 -0
  109. package/.next/server/chunks/ssr/[root-of-the-server]__30652385._.js.map +1 -0
  110. package/.next/server/chunks/ssr/[root-of-the-server]__4fb17f1e._.js +3 -0
  111. package/.next/server/chunks/ssr/[root-of-the-server]__4fb17f1e._.js.map +1 -0
  112. package/.next/server/chunks/ssr/[root-of-the-server]__606ef757._.js +3 -0
  113. package/.next/server/chunks/ssr/[root-of-the-server]__606ef757._.js.map +1 -0
  114. package/.next/server/chunks/ssr/[root-of-the-server]__62036393._.js +3 -0
  115. package/.next/server/chunks/ssr/[root-of-the-server]__62036393._.js.map +1 -0
  116. package/.next/server/chunks/ssr/[root-of-the-server]__69f5a83d._.js +3 -0
  117. package/.next/server/chunks/ssr/[root-of-the-server]__69f5a83d._.js.map +1 -0
  118. package/.next/server/chunks/ssr/[root-of-the-server]__78288fbe._.js +4 -0
  119. package/.next/server/chunks/ssr/[root-of-the-server]__78288fbe._.js.map +1 -0
  120. package/.next/server/chunks/ssr/[root-of-the-server]__7bf94cba._.js +3 -0
  121. package/.next/server/chunks/ssr/[root-of-the-server]__7bf94cba._.js.map +1 -0
  122. package/.next/server/chunks/ssr/[root-of-the-server]__91c2c151._.js +3 -0
  123. package/.next/server/chunks/ssr/[root-of-the-server]__91c2c151._.js.map +1 -0
  124. package/.next/server/chunks/ssr/[root-of-the-server]__a457c799._.js +3 -0
  125. package/.next/server/chunks/ssr/[root-of-the-server]__a457c799._.js.map +1 -0
  126. package/.next/server/chunks/ssr/[root-of-the-server]__a5d13d54._.js +3 -0
  127. package/.next/server/chunks/ssr/[root-of-the-server]__a5d13d54._.js.map +1 -0
  128. package/.next/server/chunks/ssr/[root-of-the-server]__cb11b5eb._.js +4 -0
  129. package/.next/server/chunks/ssr/[root-of-the-server]__cb11b5eb._.js.map +1 -0
  130. package/.next/server/chunks/ssr/[root-of-the-server]__d7127f3c._.js +3 -0
  131. package/.next/server/chunks/ssr/[root-of-the-server]__d7127f3c._.js.map +1 -0
  132. package/.next/server/chunks/ssr/[root-of-the-server]__e138fbba._.js +3 -0
  133. package/.next/server/chunks/ssr/[root-of-the-server]__e138fbba._.js.map +1 -0
  134. package/.next/server/chunks/ssr/[root-of-the-server]__e2f86be8._.js +3 -0
  135. package/.next/server/chunks/ssr/[root-of-the-server]__e2f86be8._.js.map +1 -0
  136. package/.next/server/chunks/ssr/[root-of-the-server]__edf0aa7a._.js +3 -0
  137. package/.next/server/chunks/ssr/[root-of-the-server]__edf0aa7a._.js.map +1 -0
  138. package/.next/server/chunks/ssr/[root-of-the-server]__f91abafd._.js +3 -0
  139. package/.next/server/chunks/ssr/[root-of-the-server]__f91abafd._.js.map +1 -0
  140. package/.next/server/chunks/ssr/[turbopack]_runtime.js +795 -0
  141. package/.next/server/chunks/ssr/[turbopack]_runtime.js.map +10 -0
  142. package/.next/server/chunks/ssr/_3bf0a72b._.js +4 -0
  143. package/.next/server/chunks/ssr/_3bf0a72b._.js.map +1 -0
  144. package/.next/server/chunks/ssr/_5512ef6c._.js +6 -0
  145. package/.next/server/chunks/ssr/_5512ef6c._.js.map +1 -0
  146. package/.next/server/chunks/ssr/_62292aba._.js +9 -0
  147. package/.next/server/chunks/ssr/_62292aba._.js.map +1 -0
  148. package/.next/server/chunks/ssr/_9f0559fd._.js +6 -0
  149. package/.next/server/chunks/ssr/_9f0559fd._.js.map +1 -0
  150. package/.next/server/chunks/ssr/_eeb65f56._.js +4 -0
  151. package/.next/server/chunks/ssr/_eeb65f56._.js.map +1 -0
  152. package/.next/server/chunks/ssr/_ff04b309._.js +4 -0
  153. package/.next/server/chunks/ssr/_ff04b309._.js.map +1 -0
  154. package/.next/server/chunks/ssr/_next-internal_server_app__global-error_page_actions_75761787.js +3 -0
  155. package/.next/server/chunks/ssr/_next-internal_server_app__global-error_page_actions_75761787.js.map +1 -0
  156. package/.next/server/chunks/ssr/_next-internal_server_app__not-found_page_actions_554ec2bf.js +3 -0
  157. package/.next/server/chunks/ssr/_next-internal_server_app__not-found_page_actions_554ec2bf.js.map +1 -0
  158. package/.next/server/chunks/ssr/node_modules_d3586d0c._.js +3 -0
  159. package/.next/server/chunks/ssr/node_modules_d3586d0c._.js.map +1 -0
  160. package/.next/server/chunks/ssr/node_modules_next_dist_08570d7f._.js +4 -0
  161. package/.next/server/chunks/ssr/node_modules_next_dist_08570d7f._.js.map +1 -0
  162. package/.next/server/chunks/ssr/node_modules_next_dist_174ae28d._.js +10 -0
  163. package/.next/server/chunks/ssr/node_modules_next_dist_174ae28d._.js.map +1 -0
  164. package/.next/server/chunks/ssr/node_modules_next_dist_65e60196._.js +3 -0
  165. package/.next/server/chunks/ssr/node_modules_next_dist_65e60196._.js.map +1 -0
  166. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_9774470f._.js +3 -0
  167. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_9774470f._.js.map +1 -0
  168. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_45780354.js +3 -0
  169. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_45780354.js.map +1 -0
  170. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_ece394eb.js +3 -0
  171. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_ece394eb.js.map +1 -0
  172. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_15817684.js +3 -0
  173. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_15817684.js.map +1 -0
  174. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_02f39477.js +4 -0
  175. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_02f39477.js.map +1 -0
  176. package/.next/server/chunks/ssr/node_modules_next_dist_esm_eedfc1fd._.js +6 -0
  177. package/.next/server/chunks/ssr/node_modules_next_dist_esm_eedfc1fd._.js.map +1 -0
  178. package/.next/server/chunks/ssr/node_modules_next_dist_f9713a08._.js +3 -0
  179. package/.next/server/chunks/ssr/node_modules_next_dist_f9713a08._.js.map +1 -0
  180. package/.next/server/chunks/ssr/src_app_0c8a77b8._.js +3 -0
  181. package/.next/server/chunks/ssr/src_app_0c8a77b8._.js.map +1 -0
  182. package/.next/server/chunks/ssr/src_app_session_[sessionId]_SessionPageClient_tsx_dab490d7._.js +7 -0
  183. package/.next/server/chunks/ssr/src_app_session_[sessionId]_SessionPageClient_tsx_dab490d7._.js.map +1 -0
  184. package/.next/server/functions-config-manifest.json +4 -0
  185. package/.next/server/interception-route-rewrite-manifest.js +1 -0
  186. package/.next/server/middleware-build-manifest.js +21 -0
  187. package/.next/server/middleware-manifest.json +6 -0
  188. package/.next/server/next-font-manifest.js +1 -0
  189. package/.next/server/next-font-manifest.json +23 -0
  190. package/.next/server/pages/404.html +1 -0
  191. package/.next/server/pages/500.html +2 -0
  192. package/.next/server/pages-manifest.json +4 -0
  193. package/.next/server/server-reference-manifest.js +1 -0
  194. package/.next/server/server-reference-manifest.json +543 -0
  195. package/.next/static/chunks/0dfa5be743492ce2.js +2 -0
  196. package/.next/static/chunks/2821166934dd45eb.js +1 -0
  197. package/.next/static/chunks/502b96711c502bab.js +1 -0
  198. package/.next/static/chunks/8906ac8ef3ff98d4.js +4 -0
  199. package/.next/static/chunks/8d69e9f4553d4e60.css +3 -0
  200. package/.next/static/chunks/a6dad97d9634a72d.js +1 -0
  201. package/.next/static/chunks/a6dad97d9634a72d.js.map +1 -0
  202. package/.next/static/chunks/aee6c7720838f8a2.js +1 -0
  203. package/.next/static/chunks/be08234e26dea978.js +5 -0
  204. package/.next/static/chunks/d2be314c3ece3fbe.js +1 -0
  205. package/.next/static/chunks/e0f2772b94870c7d.js +7 -0
  206. package/.next/static/chunks/f22bcf2c1367768a.js +1 -0
  207. package/.next/static/chunks/f997a831de68afef.js +1 -0
  208. package/.next/static/chunks/ff1a16fafef87110.js +1 -0
  209. package/.next/static/chunks/turbopack-53cb197a85e106e9.js +4 -0
  210. package/.next/static/e8aTDAK_fufq5OYn8Yv56/_buildManifest.js +15 -0
  211. package/.next/static/e8aTDAK_fufq5OYn8Yv56/_clientMiddlewareManifest.json +1 -0
  212. package/.next/static/e8aTDAK_fufq5OYn8Yv56/_ssgManifest.js +1 -0
  213. package/.next/static/media/4fa387ec64143e14-s.c1fdd6c2.woff2 +0 -0
  214. package/.next/static/media/7178b3e590c64307-s.b97b3418.woff2 +0 -0
  215. package/.next/static/media/797e433ab948586e-s.p.dbea232f.woff2 +0 -0
  216. package/.next/static/media/8a480f0b521d4e75-s.8e0177b5.woff2 +0 -0
  217. package/.next/static/media/bbc41e54d2fcbd21-s.799d8ef8.woff2 +0 -0
  218. package/.next/static/media/caa3a2e1cccd8315-s.p.853070df.woff2 +0 -0
  219. package/.next/static/media/icon.a4b588e3.png +0 -0
  220. package/README.md +86 -0
  221. package/bin/viba.mjs +151 -0
  222. package/next.config.mjs +13 -0
  223. package/package.json +59 -0
  224. package/public/file.svg +1 -0
  225. package/public/globe.svg +1 -0
  226. package/public/next.svg +1 -0
  227. package/public/vercel.svg +1 -0
  228. package/public/window.svg +1 -0
package/bin/viba.mjs ADDED
@@ -0,0 +1,151 @@
1
+ #!/usr/bin/env node
2
+
3
+ import { spawn } from "node:child_process";
4
+ import fs from "node:fs";
5
+ import { createRequire } from "node:module";
6
+ import net from "node:net";
7
+ import path from "node:path";
8
+ import { fileURLToPath } from "node:url";
9
+
10
+ const __filename = fileURLToPath(import.meta.url);
11
+ const __dirname = path.dirname(__filename);
12
+ const APP_ROOT = path.resolve(__dirname, "..");
13
+ const require = createRequire(import.meta.url);
14
+ const NEXT_BIN = require.resolve("next/dist/bin/next");
15
+ const DEFAULT_PORT = 3200;
16
+
17
+ function printHelp() {
18
+ console.log(`Usage: viba-cli [options]
19
+
20
+ Options:
21
+ -p, --port <port> Port to run on (default: 3200)
22
+ --dev Run in development mode
23
+ -h, --help Show this help message
24
+ `);
25
+ }
26
+
27
+ function parseArgs(argv) {
28
+ const options = {
29
+ mode: "start",
30
+ port: undefined,
31
+ portExplicit: false,
32
+ };
33
+
34
+ for (let i = 0; i < argv.length; i += 1) {
35
+ const arg = argv[i];
36
+
37
+ if (arg === "--help" || arg === "-h") {
38
+ printHelp();
39
+ process.exit(0);
40
+ }
41
+
42
+ if (arg === "--dev") {
43
+ options.mode = "dev";
44
+ continue;
45
+ }
46
+
47
+ if (arg === "--port" || arg === "-p") {
48
+ const value = argv[i + 1];
49
+ if (!value) {
50
+ throw new Error("Missing value for --port.");
51
+ }
52
+ const parsed = Number.parseInt(value, 10);
53
+ if (!Number.isInteger(parsed) || parsed < 1 || parsed > 65535) {
54
+ throw new Error(`Invalid port: ${value}`);
55
+ }
56
+ options.port = parsed;
57
+ options.portExplicit = true;
58
+ i += 1;
59
+ continue;
60
+ }
61
+
62
+ throw new Error(`Unknown option: ${arg}`);
63
+ }
64
+
65
+ return options;
66
+ }
67
+
68
+ function checkPortAvailable(port) {
69
+ return new Promise((resolve) => {
70
+ const server = net.createServer();
71
+
72
+ server.once("error", () => resolve(false));
73
+ server.once("listening", () => {
74
+ server.close(() => resolve(true));
75
+ });
76
+
77
+ server.listen(port, "127.0.0.1");
78
+ });
79
+ }
80
+
81
+ async function findAvailablePort(startPort, maxAttempts = 20) {
82
+ for (let i = 0; i < maxAttempts; i += 1) {
83
+ const candidate = startPort + i;
84
+ const available = await checkPortAvailable(candidate);
85
+ if (available) {
86
+ return candidate;
87
+ }
88
+ }
89
+ throw new Error(`Could not find an available port in range ${startPort}-${startPort + maxAttempts - 1}.`);
90
+ }
91
+
92
+ function runNext(args) {
93
+ return new Promise((resolve, reject) => {
94
+ const child = spawn(process.execPath, [NEXT_BIN, ...args], {
95
+ cwd: APP_ROOT,
96
+ stdio: "inherit",
97
+ env: process.env,
98
+ });
99
+
100
+ child.on("error", reject);
101
+ child.on("exit", (code, signal) => {
102
+ if (signal) {
103
+ process.kill(process.pid, signal);
104
+ return;
105
+ }
106
+ resolve(code === null ? 1 : code);
107
+ });
108
+ });
109
+ }
110
+
111
+ function ensureBuildExists() {
112
+ const buildIdPath = path.join(APP_ROOT, ".next", "BUILD_ID");
113
+ if (!fs.existsSync(buildIdPath)) {
114
+ throw new Error(
115
+ "No production build found in this package (.next/BUILD_ID is missing). The npm package must be published with prebuilt assets.",
116
+ );
117
+ }
118
+ }
119
+
120
+ async function main() {
121
+ try {
122
+ const options = parseArgs(process.argv.slice(2));
123
+ const envPort = Number.parseInt(process.env.PORT || "", 10);
124
+ const preferredPort =
125
+ options.port ??
126
+ (Number.isInteger(envPort) && envPort > 0 && envPort <= 65535 ? envPort : DEFAULT_PORT);
127
+
128
+ let port = preferredPort;
129
+ if (!options.portExplicit && !process.env.PORT) {
130
+ port = await findAvailablePort(preferredPort);
131
+ if (port !== preferredPort) {
132
+ console.log(`Port ${preferredPort} is in use. Using ${port} instead.`);
133
+ }
134
+ }
135
+
136
+ if (options.mode === "dev") {
137
+ console.log(`Starting viba in development mode on http://localhost:${port}`);
138
+ process.exit(await runNext(["dev", "--webpack", "-p", String(port)]));
139
+ }
140
+
141
+ ensureBuildExists();
142
+ console.log(`Starting viba on http://localhost:${port}`);
143
+ process.exit(await runNext(["start", "-p", String(port)]));
144
+ } catch (error) {
145
+ const errorMessage = error instanceof Error ? error.message : String(error);
146
+ console.error(`viba failed to start: ${errorMessage}`);
147
+ process.exit(1);
148
+ }
149
+ }
150
+
151
+ main();
@@ -0,0 +1,13 @@
1
+ /** @type {import("next").NextConfig} */
2
+ const nextConfig = {
3
+ async rewrites() {
4
+ return [
5
+ {
6
+ source: "/terminal/:path*",
7
+ destination: "http://127.0.0.1:7681/:path*",
8
+ },
9
+ ];
10
+ },
11
+ };
12
+
13
+ export default nextConfig;
package/package.json ADDED
@@ -0,0 +1,59 @@
1
+ {
2
+ "name": "viba-cli",
3
+ "version": "0.1.3",
4
+ "private": false,
5
+ "description": "Local session manager for AI coding agents.",
6
+ "bin": {
7
+ "viba-cli": "bin/viba.mjs"
8
+ },
9
+ "files": [
10
+ "bin",
11
+ ".next/BUILD_ID",
12
+ ".next/server",
13
+ ".next/static",
14
+ ".next/*.json",
15
+ ".next/*.js",
16
+ "public",
17
+ "next.config.mjs",
18
+ "README.md"
19
+ ],
20
+ "scripts": {
21
+ "dev": "npx gfport 3200 -- next dev --webpack -p {PORT}",
22
+ "build": "next build",
23
+ "prepack": "rm -rf .next && npm run build",
24
+ "start": "next start -p 3200",
25
+ "lint": "eslint",
26
+ "cli": "node ./bin/viba.mjs",
27
+ "pack:preview": "npm pack --dry-run"
28
+ },
29
+ "keywords": [
30
+ "ai",
31
+ "coding-agent",
32
+ "git-worktree",
33
+ "nextjs"
34
+ ],
35
+ "license": "MIT",
36
+ "dependencies": {
37
+ "@types/uuid": "^10.0.0",
38
+ "clsx": "^2.1.1",
39
+ "daisyui": "^5.5.18",
40
+ "lucide-react": "^0.563.0",
41
+ "next": "16.1.6",
42
+ "react": "19.2.3",
43
+ "react-dom": "19.2.3",
44
+ "simple-git": "^3.30.0",
45
+ "tailwind-merge": "^3.4.0",
46
+ "uuid": "^13.0.0"
47
+ },
48
+ "devDependencies": {
49
+ "@tailwindcss/postcss": "^4",
50
+ "@types/node": "^20",
51
+ "@types/react": "^19",
52
+ "@types/react-dom": "^19",
53
+ "eslint": "^9",
54
+ "eslint-config-next": "16.1.6",
55
+ "gfport": "^1.0.1",
56
+ "tailwindcss": "^4",
57
+ "typescript": "5.9.3"
58
+ }
59
+ }
@@ -0,0 +1 @@
1
+ <svg fill="none" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M14.5 13.5V5.41a1 1 0 0 0-.3-.7L9.8.29A1 1 0 0 0 9.08 0H1.5v13.5A2.5 2.5 0 0 0 4 16h8a2.5 2.5 0 0 0 2.5-2.5m-1.5 0v-7H8v-5H3v12a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1M9.5 5V2.12L12.38 5zM5.13 5h-.62v1.25h2.12V5zm-.62 3h7.12v1.25H4.5zm.62 3h-.62v1.25h7.12V11z" clip-rule="evenodd" fill="#666" fill-rule="evenodd"/></svg>
@@ -0,0 +1 @@
1
+ <svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><g clip-path="url(#a)"><path fill-rule="evenodd" clip-rule="evenodd" d="M10.27 14.1a6.5 6.5 0 0 0 3.67-3.45q-1.24.21-2.7.34-.31 1.83-.97 3.1M8 16A8 8 0 1 0 8 0a8 8 0 0 0 0 16m.48-1.52a7 7 0 0 1-.96 0H7.5a4 4 0 0 1-.84-1.32q-.38-.89-.63-2.08a40 40 0 0 0 3.92 0q-.25 1.2-.63 2.08a4 4 0 0 1-.84 1.31zm2.94-4.76q1.66-.15 2.95-.43a7 7 0 0 0 0-2.58q-1.3-.27-2.95-.43a18 18 0 0 1 0 3.44m-1.27-3.54a17 17 0 0 1 0 3.64 39 39 0 0 1-4.3 0 17 17 0 0 1 0-3.64 39 39 0 0 1 4.3 0m1.1-1.17q1.45.13 2.69.34a6.5 6.5 0 0 0-3.67-3.44q.65 1.26.98 3.1M8.48 1.5l.01.02q.41.37.84 1.31.38.89.63 2.08a40 40 0 0 0-3.92 0q.25-1.2.63-2.08a4 4 0 0 1 .85-1.32 7 7 0 0 1 .96 0m-2.75.4a6.5 6.5 0 0 0-3.67 3.44 29 29 0 0 1 2.7-.34q.31-1.83.97-3.1M4.58 6.28q-1.66.16-2.95.43a7 7 0 0 0 0 2.58q1.3.27 2.95.43a18 18 0 0 1 0-3.44m.17 4.71q-1.45-.12-2.69-.34a6.5 6.5 0 0 0 3.67 3.44q-.65-1.27-.98-3.1" fill="#666"/></g><defs><clipPath id="a"><path fill="#fff" d="M0 0h16v16H0z"/></clipPath></defs></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 394 80"><path fill="#000" d="M262 0h68.5v12.7h-27.2v66.6h-13.6V12.7H262V0ZM149 0v12.7H94v20.4h44.3v12.6H94v21h55v12.6H80.5V0h68.7zm34.3 0h-17.8l63.8 79.4h17.9l-32-39.7 32-39.6h-17.9l-23 28.6-23-28.6zm18.3 56.7-9-11-27.1 33.7h17.8l18.3-22.7z"/><path fill="#000" d="M81 79.3 17 0H0v79.3h13.6V17l50.2 62.3H81Zm252.6-.4c-1 0-1.8-.4-2.5-1s-1.1-1.6-1.1-2.6.3-1.8 1-2.5 1.6-1 2.6-1 1.8.3 2.5 1a3.4 3.4 0 0 1 .6 4.3 3.7 3.7 0 0 1-3 1.8zm23.2-33.5h6v23.3c0 2.1-.4 4-1.3 5.5a9.1 9.1 0 0 1-3.8 3.5c-1.6.8-3.5 1.3-5.7 1.3-2 0-3.7-.4-5.3-1s-2.8-1.8-3.7-3.2c-.9-1.3-1.4-3-1.4-5h6c.1.8.3 1.6.7 2.2s1 1.2 1.6 1.5c.7.4 1.5.5 2.4.5 1 0 1.8-.2 2.4-.6a4 4 0 0 0 1.6-1.8c.3-.8.5-1.8.5-3V45.5zm30.9 9.1a4.4 4.4 0 0 0-2-3.3 7.5 7.5 0 0 0-4.3-1.1c-1.3 0-2.4.2-3.3.5-.9.4-1.6 1-2 1.6a3.5 3.5 0 0 0-.3 4c.3.5.7.9 1.3 1.2l1.8 1 2 .5 3.2.8c1.3.3 2.5.7 3.7 1.2a13 13 0 0 1 3.2 1.8 8.1 8.1 0 0 1 3 6.5c0 2-.5 3.7-1.5 5.1a10 10 0 0 1-4.4 3.5c-1.8.8-4.1 1.2-6.8 1.2-2.6 0-4.9-.4-6.8-1.2-2-.8-3.4-2-4.5-3.5a10 10 0 0 1-1.7-5.6h6a5 5 0 0 0 3.5 4.6c1 .4 2.2.6 3.4.6 1.3 0 2.5-.2 3.5-.6 1-.4 1.8-1 2.4-1.7a4 4 0 0 0 .8-2.4c0-.9-.2-1.6-.7-2.2a11 11 0 0 0-2.1-1.4l-3.2-1-3.8-1c-2.8-.7-5-1.7-6.6-3.2a7.2 7.2 0 0 1-2.4-5.7 8 8 0 0 1 1.7-5 10 10 0 0 1 4.3-3.5c2-.8 4-1.2 6.4-1.2 2.3 0 4.4.4 6.2 1.2 1.8.8 3.2 2 4.3 3.4 1 1.4 1.5 3 1.5 5h-5.8z"/></svg>
@@ -0,0 +1 @@
1
+ <svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1155 1000"><path d="m577.3 0 577.4 1000H0z" fill="#fff"/></svg>
@@ -0,0 +1 @@
1
+ <svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path fill-rule="evenodd" clip-rule="evenodd" d="M1.5 2.5h13v10a1 1 0 0 1-1 1h-11a1 1 0 0 1-1-1zM0 1h16v11.5a2.5 2.5 0 0 1-2.5 2.5h-11A2.5 2.5 0 0 1 0 12.5zm3.75 4.5a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5M7 4.75a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0m1.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5" fill="#666"/></svg>