larkup 0.4.48 → 0.4.50

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 (71) hide show
  1. package/.next/standalone/apps/web/.next/BUILD_ID +1 -1
  2. package/.next/standalone/apps/web/.next/app-path-routes-manifest.json +10 -10
  3. package/.next/standalone/apps/web/.next/build-manifest.json +2 -2
  4. package/.next/standalone/apps/web/.next/prerender-manifest.json +3 -3
  5. package/.next/standalone/apps/web/.next/required-server-files.json +1 -1
  6. package/.next/standalone/apps/web/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  7. package/.next/standalone/apps/web/.next/server/app/_global-error.html +1 -1
  8. package/.next/standalone/apps/web/.next/server/app/_global-error.rsc +1 -1
  9. package/.next/standalone/apps/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  10. package/.next/standalone/apps/web/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  11. package/.next/standalone/apps/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  12. package/.next/standalone/apps/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  13. package/.next/standalone/apps/web/.next/server/app/_not-found.html +1 -1
  14. package/.next/standalone/apps/web/.next/server/app/_not-found.rsc +2 -2
  15. package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  16. package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  17. package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  18. package/.next/standalone/apps/web/.next/server/app/add/page_client-reference-manifest.js +1 -1
  19. package/.next/standalone/apps/web/.next/server/app/add.html +1 -1
  20. package/.next/standalone/apps/web/.next/server/app/add.rsc +2 -2
  21. package/.next/standalone/apps/web/.next/server/app/add.segments/_full.segment.rsc +2 -2
  22. package/.next/standalone/apps/web/.next/server/app/add.segments/_tree.segment.rsc +1 -1
  23. package/.next/standalone/apps/web/.next/server/app/add.segments/add/__PAGE__.segment.rsc +2 -2
  24. package/.next/standalone/apps/web/.next/server/app/chat/[id]/page_client-reference-manifest.js +1 -1
  25. package/.next/standalone/apps/web/.next/server/app/chat/page_client-reference-manifest.js +1 -1
  26. package/.next/standalone/apps/web/.next/server/app/chat.html +1 -1
  27. package/.next/standalone/apps/web/.next/server/app/chat.rsc +2 -2
  28. package/.next/standalone/apps/web/.next/server/app/chat.segments/_full.segment.rsc +2 -2
  29. package/.next/standalone/apps/web/.next/server/app/chat.segments/_tree.segment.rsc +1 -1
  30. package/.next/standalone/apps/web/.next/server/app/chat.segments/chat/__PAGE__.segment.rsc +2 -2
  31. package/.next/standalone/apps/web/.next/server/app/data/page_client-reference-manifest.js +1 -1
  32. package/.next/standalone/apps/web/.next/server/app/data.html +1 -1
  33. package/.next/standalone/apps/web/.next/server/app/data.rsc +2 -2
  34. package/.next/standalone/apps/web/.next/server/app/data.segments/_full.segment.rsc +2 -2
  35. package/.next/standalone/apps/web/.next/server/app/data.segments/_tree.segment.rsc +1 -1
  36. package/.next/standalone/apps/web/.next/server/app/data.segments/data/__PAGE__.segment.rsc +2 -2
  37. package/.next/standalone/apps/web/.next/server/app/index.html +1 -1
  38. package/.next/standalone/apps/web/.next/server/app/index.rsc +2 -2
  39. package/.next/standalone/apps/web/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  40. package/.next/standalone/apps/web/.next/server/app/index.segments/_full.segment.rsc +2 -2
  41. package/.next/standalone/apps/web/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  42. package/.next/standalone/apps/web/.next/server/app/page_client-reference-manifest.js +1 -1
  43. package/.next/standalone/apps/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  44. package/.next/standalone/apps/web/.next/server/app/settings.html +1 -1
  45. package/.next/standalone/apps/web/.next/server/app/settings.rsc +2 -2
  46. package/.next/standalone/apps/web/.next/server/app/settings.segments/_full.segment.rsc +2 -2
  47. package/.next/standalone/apps/web/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
  48. package/.next/standalone/apps/web/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +2 -2
  49. package/.next/standalone/apps/web/.next/server/app/widget-demo/page_client-reference-manifest.js +1 -1
  50. package/.next/standalone/apps/web/.next/server/app/widget-demo.html +1 -1
  51. package/.next/standalone/apps/web/.next/server/app/widget-demo.rsc +2 -2
  52. package/.next/standalone/apps/web/.next/server/app/widget-demo.segments/_full.segment.rsc +2 -2
  53. package/.next/standalone/apps/web/.next/server/app/widget-demo.segments/_tree.segment.rsc +1 -1
  54. package/.next/standalone/apps/web/.next/server/app/widget-demo.segments/widget-demo/__PAGE__.segment.rsc +2 -2
  55. package/.next/standalone/apps/web/.next/server/app-paths-manifest.json +10 -10
  56. package/.next/standalone/apps/web/.next/server/chunks/309.js +1 -1
  57. package/.next/standalone/apps/web/.next/server/middleware-build-manifest.js +1 -1
  58. package/.next/standalone/apps/web/.next/server/pages/404.html +1 -1
  59. package/.next/standalone/apps/web/.next/server/pages/500.html +1 -1
  60. package/.next/standalone/apps/web/.next/server/preview-props.json +3 -3
  61. package/.next/standalone/apps/web/.next/server/server-reference-manifest.json +1 -1
  62. package/.next/standalone/apps/web/.next/static/chunks/app/{layout-899b698be984b499.js → layout-614a36b83ada6ceb.js} +1 -1
  63. package/.next/standalone/apps/web/bin/larkup.js +31 -2
  64. package/.next/standalone/apps/web/lib/chat/matching-analysis-fallback.test.ts +17 -2
  65. package/.next/standalone/apps/web/lib/release-metadata.test.ts +7 -0
  66. package/.next/standalone/apps/web/package.json +1 -1
  67. package/.next/standalone/apps/web/server.js +1 -1
  68. package/bin/larkup.js +31 -2
  69. package/package.json +3 -3
  70. /package/.next/standalone/apps/web/.next/static/{iyyFWA5t561KPecM8hQqE → YhZYLHkRObR01YpuQvCP6}/_buildManifest.js +0 -0
  71. /package/.next/standalone/apps/web/.next/static/{iyyFWA5t561KPecM8hQqE → YhZYLHkRObR01YpuQvCP6}/_ssgManifest.js +0 -0
package/bin/larkup.js CHANGED
@@ -19,6 +19,9 @@ process.env.LARKUP_DATA_DIR = larkupDataDir;
19
19
 
20
20
  const args = process.argv.slice(2);
21
21
  const command = args[0];
22
+ // Windows exposes npm through npm.cmd. Spawning the extensionless Unix name
23
+ // fails with ENOENT even though npm works when entered directly in cmd.exe.
24
+ const npmExecutable = process.platform === 'win32' ? 'npm.cmd' : 'npm';
22
25
 
23
26
  if (command === '--version' || command === '-v') {
24
27
  console.log(pkg.version);
@@ -31,6 +34,7 @@ if (command === '--version' || command === '-v') {
31
34
  process.exit(1);
32
35
  }
33
36
  await migrateLegacyRuntimeState();
37
+ await prepareLocalAnalysisRuntime();
34
38
  const child = spawn(process.execPath, [standaloneServer], {
35
39
  cwd: packageDir,
36
40
  stdio: 'inherit',
@@ -80,7 +84,7 @@ if (command === '--version' || command === '-v') {
80
84
  console.log('');
81
85
  await migrateLegacyRuntimeState();
82
86
  const child = spawn(
83
- 'npm',
87
+ npmExecutable,
84
88
  [
85
89
  'install',
86
90
  '-g',
@@ -194,6 +198,29 @@ async function migrateLegacyRuntimeState() {
194
198
  }
195
199
  }
196
200
 
201
+ /**
202
+ * Prepare the managed Python environment before the browser can submit an
203
+ * analysis request. A fresh Windows install may need several minutes to fetch
204
+ * pandas, numpy, and the other pinned wheels; doing that inside the streamed
205
+ * chat request can outlive the model step even though installation succeeds.
206
+ *
207
+ * This launcher is used only by the local npm application. Managed Cloud hosts
208
+ * start their configured remote sandbox adapters through the server runtime
209
+ * and never enter this path.
210
+ */
211
+ async function prepareLocalAnalysisRuntime() {
212
+ console.log(`\x1b[38;2;223;156;32mPreparing local analysis runtime…\x1b[0m`);
213
+ try {
214
+ const { SandboxManager } = await import('@larkup/sandbox');
215
+ await new SandboxManager({ backend: 'local' }).setup();
216
+ console.log(`\x1b[32mLocal analysis runtime ready.\x1b[0m`);
217
+ } catch (error) {
218
+ const message = error instanceof Error ? error.message : String(error);
219
+ console.warn(`Local analysis runtime is unavailable: ${message}`);
220
+ console.warn('Larkup will still start, but code-analysis tools will remain unavailable.');
221
+ }
222
+ }
223
+
197
224
  async function activeProjectConfig() {
198
225
  const root = projectRoot();
199
226
  const entries = await fs.readdir(root, { withFileTypes: true }).catch(() => []);
@@ -482,7 +509,9 @@ async function removeLocalPathEntries(localRoot) {
482
509
 
483
510
  function uninstallGlobalPackage() {
484
511
  return new Promise((resolve, reject) => {
485
- const child = spawn('npm', ['uninstall', '-g', 'larkup', '@larkup/cli'], { stdio: 'inherit' });
512
+ const child = spawn(npmExecutable, ['uninstall', '-g', 'larkup', '@larkup/cli'], {
513
+ stdio: 'inherit',
514
+ });
486
515
  child.once('error', reject);
487
516
  child.once('exit', (code) => {
488
517
  if (code === 0) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "larkup",
3
- "version": "0.4.48",
3
+ "version": "0.4.50",
4
4
  "engines": {
5
5
  "node": ">=22"
6
6
  },
@@ -71,9 +71,9 @@
71
71
  "zod": "^4.4.3",
72
72
  "zustand": "^5.0.14",
73
73
  "@larkup/workspace-ui": "0.2.0",
74
- "@larkup/runtime-kit": "0.3.0",
75
74
  "@larkup/workspace-server": "0.2.30",
76
- "@larkup/workspace-app": "0.2.12"
75
+ "@larkup/workspace-app": "0.2.12",
76
+ "@larkup/runtime-kit": "0.3.0"
77
77
  },
78
78
  "devDependencies": {
79
79
  "@tailwindcss/postcss": "^4.2.0",