@nagellabs/libi 0.1.8 → 0.1.9

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 (165) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +5 -5
  3. package/.next/diagnostics/route-bundle-stats.json +16 -16
  4. package/.next/externals-manifest.json +1 -1
  5. package/.next/fallback-build-manifest.json +3 -3
  6. package/.next/prerender-manifest.json +3 -3
  7. package/.next/required-server-files.js +1 -1
  8. package/.next/required-server-files.json +1 -1
  9. package/.next/server/app/(app)/editor/page/build-manifest.json +2 -2
  10. package/.next/server/app/(app)/instructions/page/build-manifest.json +2 -2
  11. package/.next/server/app/(app)/mcps-skills/page/build-manifest.json +2 -2
  12. package/.next/server/app/(app)/mcps-skills/skills/[name]/page/build-manifest.json +2 -2
  13. package/.next/server/app/(app)/mcps-skills/skills/new/page/build-manifest.json +2 -2
  14. package/.next/server/app/(app)/settings/page/build-manifest.json +2 -2
  15. package/.next/server/app/_global-error/page/build-manifest.json +2 -2
  16. package/.next/server/app/_global-error.html +1 -1
  17. package/.next/server/app/_global-error.rsc +1 -1
  18. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  19. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  20. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  21. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  22. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  23. package/.next/server/app/_not-found/page/build-manifest.json +2 -2
  24. package/.next/server/app/api/agent/cancel/route.js +8 -8
  25. package/.next/server/app/api/agent/cancel/route.js.nft.json +1 -1
  26. package/.next/server/app/api/agent/detect/route.js.nft.json +1 -1
  27. package/.next/server/app/api/agent/dispatch/route.js +5 -5
  28. package/.next/server/app/api/agent/dispatch/route.js.nft.json +1 -1
  29. package/.next/server/app/api/agent/events/route.js +11 -11
  30. package/.next/server/app/api/agent/events/route.js.nft.json +1 -1
  31. package/.next/server/app/api/agent/messages/route.js +7 -7
  32. package/.next/server/app/api/agent/messages/route.js.nft.json +1 -1
  33. package/.next/server/app/api/agent/providers/route.js.nft.json +1 -1
  34. package/.next/server/app/api/agent/send/route.js +7 -7
  35. package/.next/server/app/api/agent/send/route.js.nft.json +1 -1
  36. package/.next/server/app/api/agent/start/route.js +7 -7
  37. package/.next/server/app/api/agent/start/route.js.nft.json +1 -1
  38. package/.next/server/app/api/agent/stop/route.js +8 -8
  39. package/.next/server/app/api/agent/stop/route.js.nft.json +1 -1
  40. package/.next/server/app/api/agents/[agentId]/install/route.js +4 -4
  41. package/.next/server/app/api/agents/[agentId]/install/route.js.nft.json +1 -1
  42. package/.next/server/app/api/codex/connect/route.js.nft.json +1 -1
  43. package/.next/server/app/api/db/resolve/route.js +9 -9
  44. package/.next/server/app/api/db/resolve/route.js.nft.json +1 -1
  45. package/.next/server/app/api/export/chromium/route.js +5 -5
  46. package/.next/server/app/api/export/chromium/route.js.nft.json +1 -1
  47. package/.next/server/app/api/export/route.js +4 -4
  48. package/.next/server/app/api/export/route.js.nft.json +1 -1
  49. package/.next/server/app/api/files/by-id/[fileId]/filmstrip-status/route.js +4 -4
  50. package/.next/server/app/api/files/by-id/[fileId]/filmstrip-status/route.js.nft.json +1 -1
  51. package/.next/server/app/api/files/by-id/[fileId]/rename/route.js +7 -7
  52. package/.next/server/app/api/files/by-id/[fileId]/rename/route.js.nft.json +1 -1
  53. package/.next/server/app/api/folders/[folderId]/duplicate/route.js +6 -6
  54. package/.next/server/app/api/folders/[folderId]/duplicate/route.js.nft.json +1 -1
  55. package/.next/server/app/api/install-from-url/route.js +10 -10
  56. package/.next/server/app/api/install-from-url/route.js.nft.json +1 -1
  57. package/.next/server/app/api/instructions/override/route.js.nft.json +1 -1
  58. package/.next/server/app/api/jobs/[id]/events/route.js +8 -8
  59. package/.next/server/app/api/jobs/[id]/events/route.js.nft.json +1 -1
  60. package/.next/server/app/api/jobs/[id]/retry/route.js +4 -4
  61. package/.next/server/app/api/jobs/[id]/retry/route.js.nft.json +1 -1
  62. package/.next/server/app/api/jobs/[id]/route.js +4 -4
  63. package/.next/server/app/api/jobs/[id]/route.js.nft.json +1 -1
  64. package/.next/server/app/api/jobs/[id]/status/route.js +3 -3
  65. package/.next/server/app/api/jobs/[id]/status/route.js.nft.json +1 -1
  66. package/.next/server/app/api/jobs/route.js +9 -9
  67. package/.next/server/app/api/jobs/route.js.nft.json +1 -1
  68. package/.next/server/app/api/notify/route.js.nft.json +1 -1
  69. package/.next/server/app/api/pieces/[pieceId]/duplicate/route.js +4 -4
  70. package/.next/server/app/api/pieces/[pieceId]/duplicate/route.js.nft.json +1 -1
  71. package/.next/server/app/api/pieces/[pieceId]/tracks/[trackId]/manual-anchors/apply-deletes/route.js +9 -9
  72. package/.next/server/app/api/pieces/[pieceId]/tracks/[trackId]/manual-anchors/apply-deletes/route.js.nft.json +1 -1
  73. package/.next/server/app/api/pieces/[pieceId]/tracks/[trackId]/manual-anchors/route.js +9 -9
  74. package/.next/server/app/api/pieces/[pieceId]/tracks/[trackId]/manual-anchors/route.js.nft.json +1 -1
  75. package/.next/server/app/api/render/frames/route.js +7 -7
  76. package/.next/server/app/api/render/frames/route.js.nft.json +1 -1
  77. package/.next/server/app/api/runtime/update/route.js +5 -5
  78. package/.next/server/app/api/runtime/update/route.js.nft.json +1 -1
  79. package/.next/server/app/api/sessions/[sessionId]/activate/route.js +8 -8
  80. package/.next/server/app/api/sessions/[sessionId]/activate/route.js.nft.json +1 -1
  81. package/.next/server/app/api/sessions/[sessionId]/context/route.js +8 -8
  82. package/.next/server/app/api/sessions/[sessionId]/context/route.js.nft.json +1 -1
  83. package/.next/server/app/api/sessions/[sessionId]/deactivate/route.js +8 -8
  84. package/.next/server/app/api/sessions/[sessionId]/deactivate/route.js.nft.json +1 -1
  85. package/.next/server/app/api/sessions/[sessionId]/model/route.js +7 -7
  86. package/.next/server/app/api/sessions/[sessionId]/model/route.js.nft.json +1 -1
  87. package/.next/server/app/api/sessions/[sessionId]/permission/route.js +7 -7
  88. package/.next/server/app/api/sessions/[sessionId]/permission/route.js.nft.json +1 -1
  89. package/.next/server/app/api/sessions/permission-modes/route.js +7 -7
  90. package/.next/server/app/api/sessions/permission-modes/route.js.nft.json +1 -1
  91. package/.next/server/app/api/sessions/route.js +7 -7
  92. package/.next/server/app/api/sessions/route.js.nft.json +1 -1
  93. package/.next/server/app/api/settings/mcp-servers/[id]/dependencies/route.js +7 -7
  94. package/.next/server/app/api/settings/mcp-servers/[id]/dependencies/route.js.nft.json +1 -1
  95. package/.next/server/app/api/settings/mcp-servers/[id]/install-plan/route.js +5 -5
  96. package/.next/server/app/api/settings/mcp-servers/[id]/install-plan/route.js.nft.json +1 -1
  97. package/.next/server/app/api/settings/mcp-servers/[id]/retry/route.js +7 -7
  98. package/.next/server/app/api/settings/mcp-servers/[id]/retry/route.js.nft.json +1 -1
  99. package/.next/server/app/api/settings/mcp-servers/[id]/retry-dep/route.js +7 -7
  100. package/.next/server/app/api/settings/mcp-servers/[id]/retry-dep/route.js.nft.json +1 -1
  101. package/.next/server/app/api/settings/mcp-servers/[id]/route.js.nft.json +1 -1
  102. package/.next/server/app/api/settings/mcp-servers/resync/route.js +7 -7
  103. package/.next/server/app/api/settings/mcp-servers/resync/route.js.nft.json +1 -1
  104. package/.next/server/app/api/settings/memories/route.js.nft.json +1 -1
  105. package/.next/server/app/api/skill-eval/configure/route.js +8 -8
  106. package/.next/server/app/api/skill-eval/configure/route.js.nft.json +1 -1
  107. package/.next/server/app/api/terminal/sessions/route.js +2 -2
  108. package/.next/server/app/api/terminal/ws-info/route.js.nft.json +1 -1
  109. package/.next/server/app/api/tracking/run/route.js +4 -4
  110. package/.next/server/app/api/tracking/run/route.js.nft.json +1 -1
  111. package/.next/server/app/page/build-manifest.json +2 -2
  112. package/.next/server/chunks/[root-of-the-server]__04thdbt._.js +3 -3
  113. package/.next/server/chunks/[root-of-the-server]__04thdbt._.js.map +2 -2
  114. package/.next/server/chunks/[root-of-the-server]__05bfu4m._.js +3 -3
  115. package/.next/server/chunks/[root-of-the-server]__05bfu4m._.js.map +2 -2
  116. package/.next/server/chunks/[root-of-the-server]__09qyvq1._.js +3 -3
  117. package/.next/server/chunks/[root-of-the-server]__09qyvq1._.js.map +2 -2
  118. package/.next/server/chunks/[root-of-the-server]__0gnut6f._.js +3 -3
  119. package/.next/server/chunks/[root-of-the-server]__0gnut6f._.js.map +1 -1
  120. package/.next/server/chunks/[root-of-the-server]__0l_-iy7._.js +3 -3
  121. package/.next/server/chunks/[root-of-the-server]__0l_-iy7._.js.map +1 -1
  122. package/.next/server/chunks/[root-of-the-server]__0s0b6ty._.js +3 -3
  123. package/.next/server/chunks/[root-of-the-server]__0s0b6ty._.js.map +1 -1
  124. package/.next/server/chunks/[root-of-the-server]__0sj68ta._.js +3 -3
  125. package/.next/server/chunks/[root-of-the-server]__0sj68ta._.js.map +1 -1
  126. package/.next/server/chunks/[root-of-the-server]__10oxitf._.js +3 -3
  127. package/.next/server/chunks/[root-of-the-server]__10oxitf._.js.map +2 -2
  128. package/.next/server/chunks/[root-of-the-server]__11.cp_g._.js +3 -3
  129. package/.next/server/chunks/[root-of-the-server]__11.cp_g._.js.map +2 -2
  130. package/.next/server/chunks/_04i643i._.js +3 -3
  131. package/.next/server/chunks/_0_t4b-f._.js +4 -4
  132. package/.next/server/chunks/_0gc3hkv._.js +3 -3
  133. package/.next/server/chunks/_0hainf0._.js +4 -4
  134. package/.next/server/chunks/_0jrwb4i._.js +3 -3
  135. package/.next/server/chunks/_0ms~zo_._.js +3 -3
  136. package/.next/server/chunks/_0ou5g0c._.js +4 -4
  137. package/.next/server/chunks/_0ovzm6d._.js +4 -4
  138. package/.next/server/chunks/_0pwx1vo._.js +3 -3
  139. package/.next/server/chunks/_0snzqta._.js +4 -4
  140. package/.next/server/chunks/lib_08x49mw._.js +3 -3
  141. package/.next/server/chunks/lib_runtime_runtime-prune_ts_0eaw~-q._.js +3 -3
  142. package/.next/server/chunks/node_modules_003ody_._.js +3 -3
  143. package/.next/server/chunks/ssr/_0675jux._.js +3 -3
  144. package/.next/server/instrumentation.js.nft.json +1 -1
  145. package/.next/server/middleware-build-manifest.js +5 -5
  146. package/.next/server/pages/500.html +1 -1
  147. package/.next/server/server-reference-manifest.js +1 -1
  148. package/.next/server/server-reference-manifest.json +1 -1
  149. package/.next/static/chunks/{0c4f164pt1cw~.js → 0rgnvt2t.fexk.js} +3 -3
  150. package/.next/static/chunks/{turbopack-07eje62zh5_9e.js → turbopack-06tait4frhc5a.js} +3 -3
  151. package/.next/trace-build +1 -1
  152. package/THIRD-PARTY-NOTICES.md +1 -1
  153. package/dist-cli/BUILD_INFO.json +6 -6
  154. package/dist-cli/lib/analytics/config.js +1 -1
  155. package/dist-cli/lib/install/next-externals.js +6 -1
  156. package/dist-cli/lib/onboarding/piece/v1/index.js +5 -1
  157. package/dist-cli/lib/server/next-server.js +12 -2
  158. package/lib/analytics/config.ts +15 -2
  159. package/lib/install/next-externals.ts +36 -1
  160. package/lib/onboarding/piece/v1/index.ts +5 -1
  161. package/lib/server/next-server.ts +29 -4
  162. package/package.json +1 -1
  163. /package/.next/static/{fX0xUAoWQHHhMjl4jpDOL → 05vWgPQtQKJ6EuLHg8nZ3}/_buildManifest.js +0 -0
  164. /package/.next/static/{fX0xUAoWQHHhMjl4jpDOL → 05vWgPQtQKJ6EuLHg8nZ3}/_clientMiddlewareManifest.js +0 -0
  165. /package/.next/static/{fX0xUAoWQHHhMjl4jpDOL → 05vWgPQtQKJ6EuLHg8nZ3}/_ssgManifest.js +0 -0
@@ -1,5 +1,5 @@
1
- ;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="be1c184f-7f9a-2e09-1569-22b21054e65c")}catch(e){}}();
2
- module.exports=[881540,e=>{"use strict";e.i(28618),e.s([])},362900,366835,e=>{"use strict";var t=e.i(336763),n=e.i(527622);e.i(881540);var i=e.i(28618),r=e.i(938281);let s={enabled:!0,userId:null,optOutAt:null,firstRunNoticeShown:!1,milestones:[]};var a=e.i(660526),l=e.i(750227),o=e.i(902157);function u(){let e=a.default.homedir();return"darwin"===process.platform?l.default.join(e,"Movies","libi"):l.default.join(e,"Videos","libi")}e.s(["defaultExportFolder",0,u,"ensureFolderExists",0,function(e){o.default.mkdirSync(e,{recursive:!0})}],366835);let d={preferredAgent:null,panelChatSize:40,panelEditorSize:40,panelResourcesSize:20,panelChatVisible:!0,panelResourcesVisible:!1,agentApprovalModes:null,agentModelPreferences:null,onboardingPersona:null,personaSelectedAt:null,agentEverConnected:!1,onboardingDemoOfferedAt:null,onboardingDemoDismissedAt:null},c={backgroundJobComplete:!0},g={connected:!1,lastSyncStatus:"idle"},f={folder:null,format:"mp4",quality:"source"};function p(){let[e]=(0,n.getDb)().select({analytics:i.settings.analytics}).from(i.settings).where((0,t.eq)(i.settings.id,1)).limit(1).all();var r=e?.analytics??null;if(!r)return{...s};try{let e=JSON.parse(r);if(!e||"object"!=typeof e)return{...s};return{enabled:"boolean"!=typeof e.enabled||e.enabled,userId:"string"==typeof e.userId?e.userId:null,optOutAt:"number"==typeof e.optOutAt?e.optOutAt:null,firstRunNoticeShown:!0===e.firstRunNoticeShown,milestones:Array.isArray(e.milestones)?e.milestones.filter(e=>"string"==typeof e):[]}}catch{return{...s}}}function m(e){var t;let r=(0,n.getDb)(),s=(t=p(),{...t,...e}),a={analytics:JSON.stringify(s),updatedAt:new Date};return r.insert(i.settings).values({id:1,...a}).onConflictDoUpdate({target:i.settings.id,set:a}).run(),s}let y={choice:"unset",decidedAt:null};e.s(["getAnalyticsSettings",0,p,"getCodexConnectSetting",0,function(){try{let[e]=(0,n.getDb)().select({codex:i.settings.codex}).from(i.settings).where((0,t.eq)(i.settings.id,1)).limit(1).all(),r=e?.codex;if(!r)return{...g};let s=JSON.parse(r);if(!s||"object"!=typeof s||"boolean"!=typeof s.connected)return{...g};let a=s.lastSyncStatus;if("ok"!==a&&"error"!==a&&"idle"!==a)return{...g};return{connected:s.connected,lastSyncStatus:a}}catch(e){return r.serverLogger.warn({err:e,tag:"codex-connect",op:"read_degraded"},"getCodexConnectSetting: read failed, returning defaults"),{...g}}},"getCrashReportSettings",0,function(){let[e]=(0,n.getDb)().select({crashReports:i.settings.crashReports}).from(i.settings).where((0,t.eq)(i.settings.id,1)).limit(1).all();return function(e){if(!e)return{...y};try{let t=JSON.parse(e);if(!t||"object"!=typeof t)return{...y};let n=t.choice;if("unset"!==n&&"on"!==n&&"off"!==n)return{...y};let i="number"==typeof t.decidedAt?t.decidedAt:null;return{choice:n,decidedAt:i}}catch{return{...y}}}(e?.crashReports??null)},"getNotificationsSetting",0,function(){let[e]=(0,n.getDb)().select({notifications:i.settings.notifications}).from(i.settings).where((0,t.eq)(i.settings.id,1)).limit(1).all(),r=e?.notifications;if(!r)return{...c};try{let e=JSON.parse(r);if(!e||"object"!=typeof e||"boolean"!=typeof e.backgroundJobComplete)return{...c};return{backgroundJobComplete:e.backgroundJobComplete}}catch{return{...c}}},"getOrCreateAnalyticsUserId",0,function(){let e=p();if(e.userId)return e.userId;let t=crypto.randomUUID();return m({userId:t}),t},"getSettings",0,function(){let e=(0,n.getDb)(),[r]=e.select().from(i.settings).where((0,t.eq)(i.settings.id,1)).limit(1).all();return r?{preferredAgent:r.preferredAgent??null,panelChatSize:r.panelChatSize,panelEditorSize:r.panelEditorSize,panelResourcesSize:r.panelResourcesSize,panelChatVisible:r.panelChatVisible,panelResourcesVisible:r.panelResourcesVisible,agentApprovalModes:r.agentApprovalModes??null,agentModelPreferences:r.agentModelPreferences??null,onboardingPersona:r.onboardingPersona??null,personaSelectedAt:r.personaSelectedAt??null,agentEverConnected:r.agentEverConnected,onboardingDemoOfferedAt:r.onboardingDemoOfferedAt??null,onboardingDemoDismissedAt:r.onboardingDemoDismissedAt??null}:(e.insert(i.settings).values({id:1}).run(),{...d})},"markAnalyticsMilestoneOnce",0,function(e){var t;let{settings:n,added:i}=(t=p(),t.milestones.includes(e)?{settings:t,added:!1}:{settings:{...t,milestones:[...t.milestones,e]},added:!0});return i&&m({milestones:n.milestones}),i},"resolveExportFolder",0,function(){return function(){let[e]=(0,n.getDb)().select({exportDefaults:i.settings.exportDefaults}).from(i.settings).where((0,t.eq)(i.settings.id,1)).limit(1).all(),r=e?.exportDefaults;if(!r)return{...f};try{let e=JSON.parse(r);if(!e||"object"!=typeof e)return{...f};return{folder:"string"==typeof e.folder&&e.folder?e.folder:null,format:"webm"===e.format?"webm":"mp4",quality:"1080p"===e.quality||"1440p"===e.quality||"4k"===e.quality?e.quality:"source"}}catch{return{...f}}}().folder??u()},"setCodexConnectSetting",0,function(e){let t=(0,n.getDb)(),r={codex:JSON.stringify(e),updatedAt:new Date};t.insert(i.settings).values({id:1,...r}).onConflictDoUpdate({target:i.settings.id,set:r}).run()},"updateSettings",0,function(e){let t=(0,n.getDb)(),r={updatedAt:new Date};void 0!==e.preferredAgent&&(r.preferredAgent=e.preferredAgent),void 0!==e.panelChatSize&&(r.panelChatSize=e.panelChatSize),void 0!==e.panelEditorSize&&(r.panelEditorSize=e.panelEditorSize),void 0!==e.panelResourcesSize&&(r.panelResourcesSize=e.panelResourcesSize),void 0!==e.panelChatVisible&&(r.panelChatVisible=e.panelChatVisible),void 0!==e.panelResourcesVisible&&(r.panelResourcesVisible=e.panelResourcesVisible),void 0!==e.agentApprovalModes&&(r.agentApprovalModes=e.agentApprovalModes),void 0!==e.agentModelPreferences&&(r.agentModelPreferences=e.agentModelPreferences),void 0!==e.onboardingPersona&&(r.onboardingPersona=e.onboardingPersona),void 0!==e.personaSelectedAt&&(r.personaSelectedAt=e.personaSelectedAt),void 0!==e.agentEverConnected&&(r.agentEverConnected=e.agentEverConnected),void 0!==e.onboardingDemoOfferedAt&&(r.onboardingDemoOfferedAt=e.onboardingDemoOfferedAt),void 0!==e.onboardingDemoDismissedAt&&(r.onboardingDemoDismissedAt=e.onboardingDemoDismissedAt),t.insert(i.settings).values({id:1,...r}).onConflictDoUpdate({target:i.settings.id,set:r}).run()}],362900)},502287,e=>{"use strict";e.s(["isTestMode",0,function(){let e=process.env.LIBI_TEST_MODE;return"1"===e||"true"===e}])},317812,604765,e=>{"use strict";var t,n=e.i(396918);e.i(763369),e.i(539774);var i=e.i(533102),r=e.i(336763),s=e.i(527622),a=e.i(28618);function l(e){if(!e)return{};let t={};for(let[n,i]of Object.entries(e))null!=i&&("string"==typeof i?t[n]=i.slice(0,100):"number"==typeof i||"boolean"==typeof i?t[n]=i:t[n]=String(i).slice(0,100));return t}e.s(["sanitizeParams",0,l,"toAgentEventId",0,function(e){return"claude-code"===e||"codex"===e?e:void 0}],604765);var o=e.i(362900);let u=process.env.NEXT_PUBLIC_LIBI_GA4_MEASUREMENT_ID||"G-7XJTYHWMFN",d="1"!==(t=process.env).LIBI_ANALYTICS_DISABLED&&"1"===t.NEXT_PUBLIC_LIBI_ANALYTICS,c="production"!==process.env.NODE_ENV,g="1"===process.env.LIBI_ANALYTICS_DISABLED;var f=e.i(502287),p=e.i(938281);let m=null,y=new Set,b=null,A=null;async function S(e={}){let t=e.now??Date.now,d=e.fetchImpl??fetch,g=e.getSettings??o.getAnalyticsSettings,f=e.markMilestoneOnce??o.markAnalyticsMilestoneOnce,b=(0,s.getDb)(),A=g();if(!A.enabled){let e=b.select({id:a.analyticsQueue.id}).from(a.analyticsQueue).all();return e.length>0&&b.delete(a.analyticsQueue).run(),{sent:0,failed:0,dropped:e.length}}let h=t(),v=b.select().from(a.analyticsQueue).where((0,r.lte)(a.analyticsQueue.nextAttemptAt,new Date(h))).orderBy((0,n.asc)(a.analyticsQueue.nextAttemptAt),(0,n.asc)(a.analyticsQueue.createdAt),(0,n.asc)(i.sql`rowid`)).limit(20).all(),D=0,I=0,C=0,w=!1,N=A.userId??(0,o.getOrCreateAnalyticsUserId)();for(let e of v){var O;let{state:t,sessionStart:n}=null===(O=m)||h-O.lastHitAt>18e5?{state:{sessionId:String(Math.floor(h/1e3)),lastHitAt:h,hitNumber:1},sessionStart:!0}:{state:{sessionId:O.sessionId,lastHitAt:h,hitNumber:O.hitNumber+1},sessionStart:!1};m=t;let i=!1;if(!w){w=!0;try{i=f("analytics_first_hit")}catch{i=!1}}let s={};try{s=JSON.parse(e.paramsJson)}catch{s={}}let o=function(e,t){let n=new URLSearchParams;for(let[i,r]of(n.set("v","2"),n.set("tid",t),n.set("cid",e.clientId),n.set("sid",e.sessionId),n.set("_s",String(e.hitNumber)),n.set("en",e.name),n.set("_et",String(Math.max(1,Math.round(e.engagementMs)))),e.userId&&n.set("uid",e.userId),e.sessionStart&&n.set("_ss","1"),e.firstVisit&&n.set("_fv","1"),e.debug&&n.set("_dbg","1"),Object.entries(e.params)))"number"==typeof r?n.set(`epn.${i}`,String(r)):n.set(`ep.${i}`,String(r));return`https://www.google-analytics.com/g/collect?${n.toString()}`}({name:e.name,params:l(s),clientId:N,userId:N,sessionId:t.sessionId,hitNumber:t.hitNumber,sessionStart:n,firstVisit:i,debug:c,engagementMs:1},u),g=!1,A=null;try{let e=await d(o,{method:"POST",signal:AbortSignal.timeout(5e3)});g=e.ok,A=e.status}catch{g=!1}if(g){b.delete(a.analyticsQueue).where((0,r.eq)(a.analyticsQueue.id,e.id)).run(),D++;continue}null===A||y.has(A)||(y.add(A),p.serverLogger.warn({tag:"analytics",op:"collect_rejected",status:A},"GA4 /g/collect rejected an event"));let S=e.attempts+1;S>=8?(b.delete(a.analyticsQueue).where((0,r.eq)(a.analyticsQueue.id,e.id)).run(),C++,p.serverLogger.warn({tag:"analytics",op:"event_dropped",name:e.name,attempts:S},"Dropping analytics event after exhausting retries")):(b.update(a.analyticsQueue).set({attempts:S,nextAttemptAt:new Date(h+Math.min(3e4*2**(S-1),36e5))}).where((0,r.eq)(a.analyticsQueue.id,e.id)).run(),I++)}return{sent:D,failed:I,dropped:C}}function h(e={}){if(A)return A;let t=S(e).then(()=>void 0).catch(e=>{p.serverLogger.warn({tag:"analytics",op:"drain_failed",err:e},"Analytics drain failed")}).finally(()=>{A===t&&(A=null)});return A=t,t}e.s(["enqueueAnalyticsEvent",0,function(e,t){try{if((0,f.isTestMode)()||g||!(0,o.getAnalyticsSettings)().enabled)return;let u=l(t),d=(0,s.getDb)();d.insert(a.analyticsQueue).values({id:crypto.randomUUID(),name:e,paramsJson:JSON.stringify(u),nextAttemptAt:new Date(0)}).run();let[{n:c}]=d.select({n:i.sql`count(${i.sql.raw("*")})`.mapWith(Number)}).from(a.analyticsQueue).all();if(c>500){let e=d.select({id:a.analyticsQueue.id}).from(a.analyticsQueue).orderBy((0,n.asc)(a.analyticsQueue.createdAt)).limit(c-500).all().map(e=>e.id);d.delete(a.analyticsQueue).where((0,r.inArray)(a.analyticsQueue.id,e)).run()}}catch{}},"startAnalyticsDrain",0,function(e={}){d&&!b&&(h(e),b=setInterval(()=>h(e),15e3),b.unref?.())}],317812)}];
1
+ ;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="a28e0ce7-bf9c-a0b0-906e-415468dc24ee")}catch(e){}}();
2
+ module.exports=[881540,e=>{"use strict";e.i(28618),e.s([])},362900,366835,e=>{"use strict";var t=e.i(336763),n=e.i(527622);e.i(881540);var i=e.i(28618),r=e.i(938281);let s={enabled:!0,userId:null,optOutAt:null,firstRunNoticeShown:!1,milestones:[]};var a=e.i(660526),l=e.i(750227),o=e.i(902157);function u(){let e=a.default.homedir();return"darwin"===process.platform?l.default.join(e,"Movies","libi"):l.default.join(e,"Videos","libi")}e.s(["defaultExportFolder",0,u,"ensureFolderExists",0,function(e){o.default.mkdirSync(e,{recursive:!0})}],366835);let d={preferredAgent:null,panelChatSize:40,panelEditorSize:40,panelResourcesSize:20,panelChatVisible:!0,panelResourcesVisible:!1,agentApprovalModes:null,agentModelPreferences:null,onboardingPersona:null,personaSelectedAt:null,agentEverConnected:!1,onboardingDemoOfferedAt:null,onboardingDemoDismissedAt:null},c={backgroundJobComplete:!0},g={connected:!1,lastSyncStatus:"idle"},f={folder:null,format:"mp4",quality:"source"};function p(){let[e]=(0,n.getDb)().select({analytics:i.settings.analytics}).from(i.settings).where((0,t.eq)(i.settings.id,1)).limit(1).all();var r=e?.analytics??null;if(!r)return{...s};try{let e=JSON.parse(r);if(!e||"object"!=typeof e)return{...s};return{enabled:"boolean"!=typeof e.enabled||e.enabled,userId:"string"==typeof e.userId?e.userId:null,optOutAt:"number"==typeof e.optOutAt?e.optOutAt:null,firstRunNoticeShown:!0===e.firstRunNoticeShown,milestones:Array.isArray(e.milestones)?e.milestones.filter(e=>"string"==typeof e):[]}}catch{return{...s}}}function m(e){var t;let r=(0,n.getDb)(),s=(t=p(),{...t,...e}),a={analytics:JSON.stringify(s),updatedAt:new Date};return r.insert(i.settings).values({id:1,...a}).onConflictDoUpdate({target:i.settings.id,set:a}).run(),s}let y={choice:"unset",decidedAt:null};e.s(["getAnalyticsSettings",0,p,"getCodexConnectSetting",0,function(){try{let[e]=(0,n.getDb)().select({codex:i.settings.codex}).from(i.settings).where((0,t.eq)(i.settings.id,1)).limit(1).all(),r=e?.codex;if(!r)return{...g};let s=JSON.parse(r);if(!s||"object"!=typeof s||"boolean"!=typeof s.connected)return{...g};let a=s.lastSyncStatus;if("ok"!==a&&"error"!==a&&"idle"!==a)return{...g};return{connected:s.connected,lastSyncStatus:a}}catch(e){return r.serverLogger.warn({err:e,tag:"codex-connect",op:"read_degraded"},"getCodexConnectSetting: read failed, returning defaults"),{...g}}},"getCrashReportSettings",0,function(){let[e]=(0,n.getDb)().select({crashReports:i.settings.crashReports}).from(i.settings).where((0,t.eq)(i.settings.id,1)).limit(1).all();return function(e){if(!e)return{...y};try{let t=JSON.parse(e);if(!t||"object"!=typeof t)return{...y};let n=t.choice;if("unset"!==n&&"on"!==n&&"off"!==n)return{...y};let i="number"==typeof t.decidedAt?t.decidedAt:null;return{choice:n,decidedAt:i}}catch{return{...y}}}(e?.crashReports??null)},"getNotificationsSetting",0,function(){let[e]=(0,n.getDb)().select({notifications:i.settings.notifications}).from(i.settings).where((0,t.eq)(i.settings.id,1)).limit(1).all(),r=e?.notifications;if(!r)return{...c};try{let e=JSON.parse(r);if(!e||"object"!=typeof e||"boolean"!=typeof e.backgroundJobComplete)return{...c};return{backgroundJobComplete:e.backgroundJobComplete}}catch{return{...c}}},"getOrCreateAnalyticsUserId",0,function(){let e=p();if(e.userId)return e.userId;let t=crypto.randomUUID();return m({userId:t}),t},"getSettings",0,function(){let e=(0,n.getDb)(),[r]=e.select().from(i.settings).where((0,t.eq)(i.settings.id,1)).limit(1).all();return r?{preferredAgent:r.preferredAgent??null,panelChatSize:r.panelChatSize,panelEditorSize:r.panelEditorSize,panelResourcesSize:r.panelResourcesSize,panelChatVisible:r.panelChatVisible,panelResourcesVisible:r.panelResourcesVisible,agentApprovalModes:r.agentApprovalModes??null,agentModelPreferences:r.agentModelPreferences??null,onboardingPersona:r.onboardingPersona??null,personaSelectedAt:r.personaSelectedAt??null,agentEverConnected:r.agentEverConnected,onboardingDemoOfferedAt:r.onboardingDemoOfferedAt??null,onboardingDemoDismissedAt:r.onboardingDemoDismissedAt??null}:(e.insert(i.settings).values({id:1}).run(),{...d})},"markAnalyticsMilestoneOnce",0,function(e){var t;let{settings:n,added:i}=(t=p(),t.milestones.includes(e)?{settings:t,added:!1}:{settings:{...t,milestones:[...t.milestones,e]},added:!0});return i&&m({milestones:n.milestones}),i},"resolveExportFolder",0,function(){return function(){let[e]=(0,n.getDb)().select({exportDefaults:i.settings.exportDefaults}).from(i.settings).where((0,t.eq)(i.settings.id,1)).limit(1).all(),r=e?.exportDefaults;if(!r)return{...f};try{let e=JSON.parse(r);if(!e||"object"!=typeof e)return{...f};return{folder:"string"==typeof e.folder&&e.folder?e.folder:null,format:"webm"===e.format?"webm":"mp4",quality:"1080p"===e.quality||"1440p"===e.quality||"4k"===e.quality?e.quality:"source"}}catch{return{...f}}}().folder??u()},"setCodexConnectSetting",0,function(e){let t=(0,n.getDb)(),r={codex:JSON.stringify(e),updatedAt:new Date};t.insert(i.settings).values({id:1,...r}).onConflictDoUpdate({target:i.settings.id,set:r}).run()},"updateSettings",0,function(e){let t=(0,n.getDb)(),r={updatedAt:new Date};void 0!==e.preferredAgent&&(r.preferredAgent=e.preferredAgent),void 0!==e.panelChatSize&&(r.panelChatSize=e.panelChatSize),void 0!==e.panelEditorSize&&(r.panelEditorSize=e.panelEditorSize),void 0!==e.panelResourcesSize&&(r.panelResourcesSize=e.panelResourcesSize),void 0!==e.panelChatVisible&&(r.panelChatVisible=e.panelChatVisible),void 0!==e.panelResourcesVisible&&(r.panelResourcesVisible=e.panelResourcesVisible),void 0!==e.agentApprovalModes&&(r.agentApprovalModes=e.agentApprovalModes),void 0!==e.agentModelPreferences&&(r.agentModelPreferences=e.agentModelPreferences),void 0!==e.onboardingPersona&&(r.onboardingPersona=e.onboardingPersona),void 0!==e.personaSelectedAt&&(r.personaSelectedAt=e.personaSelectedAt),void 0!==e.agentEverConnected&&(r.agentEverConnected=e.agentEverConnected),void 0!==e.onboardingDemoOfferedAt&&(r.onboardingDemoOfferedAt=e.onboardingDemoOfferedAt),void 0!==e.onboardingDemoDismissedAt&&(r.onboardingDemoDismissedAt=e.onboardingDemoDismissedAt),t.insert(i.settings).values({id:1,...r}).onConflictDoUpdate({target:i.settings.id,set:r}).run()}],362900)},502287,e=>{"use strict";e.s(["isTestMode",0,function(){let e=process.env.LIBI_TEST_MODE;return"1"===e||"true"===e}])},317812,604765,e=>{"use strict";var t,n,i=e.i(396918);e.i(763369),e.i(539774);var r=e.i(533102),s=e.i(336763),a=e.i(527622),l=e.i(28618);function o(e){if(!e)return{};let t={};for(let[n,i]of Object.entries(e))null!=i&&("string"==typeof i?t[n]=i.slice(0,100):"number"==typeof i||"boolean"==typeof i?t[n]=i:t[n]=String(i).slice(0,100));return t}e.s(["sanitizeParams",0,o,"toAgentEventId",0,function(e){return"claude-code"===e||"codex"===e?e:void 0}],604765);var u=e.i(362900);let d=process.env.NEXT_PUBLIC_LIBI_GA4_MEASUREMENT_ID||"G-7XJTYHWMFN",c="1"!==(t=process.env).LIBI_ANALYTICS_DISABLED&&"1"===t.NEXT_PUBLIC_LIBI_ANALYTICS,g="1"===(n=process.env).LIBI_ANALYTICS_DEBUG||"production"!==n.NODE_ENV,f="1"===process.env.LIBI_ANALYTICS_DISABLED;var p=e.i(502287),m=e.i(938281);let y=null,b=new Set,A=null,S=null;async function h(e={}){let t=e.now??Date.now,n=e.fetchImpl??fetch,c=e.getSettings??u.getAnalyticsSettings,f=e.markMilestoneOnce??u.markAnalyticsMilestoneOnce,p=(0,a.getDb)(),A=c();if(!A.enabled){let e=p.select({id:l.analyticsQueue.id}).from(l.analyticsQueue).all();return e.length>0&&p.delete(l.analyticsQueue).run(),{sent:0,failed:0,dropped:e.length}}let S=t(),v=p.select().from(l.analyticsQueue).where((0,s.lte)(l.analyticsQueue.nextAttemptAt,new Date(S))).orderBy((0,i.asc)(l.analyticsQueue.nextAttemptAt),(0,i.asc)(l.analyticsQueue.createdAt),(0,i.asc)(r.sql`rowid`)).limit(20).all(),D=0,I=0,C=0,w=!1,N=A.userId??(0,u.getOrCreateAnalyticsUserId)();for(let e of v){var E;let{state:t,sessionStart:i}=null===(E=y)||S-E.lastHitAt>18e5?{state:{sessionId:String(Math.floor(S/1e3)),lastHitAt:S,hitNumber:1},sessionStart:!0}:{state:{sessionId:E.sessionId,lastHitAt:S,hitNumber:E.hitNumber+1},sessionStart:!1};y=t;let r=!1;if(!w){w=!0;try{r=f("analytics_first_hit")}catch{r=!1}}let a={};try{a=JSON.parse(e.paramsJson)}catch{a={}}let u=function(e,t){let n=new URLSearchParams;for(let[i,r]of(n.set("v","2"),n.set("tid",t),n.set("cid",e.clientId),n.set("sid",e.sessionId),n.set("_s",String(e.hitNumber)),n.set("en",e.name),n.set("_et",String(Math.max(1,Math.round(e.engagementMs)))),e.userId&&n.set("uid",e.userId),e.sessionStart&&n.set("_ss","1"),e.firstVisit&&n.set("_fv","1"),e.debug&&n.set("_dbg","1"),Object.entries(e.params)))"number"==typeof r?n.set(`epn.${i}`,String(r)):n.set(`ep.${i}`,String(r));return`https://www.google-analytics.com/g/collect?${n.toString()}`}({name:e.name,params:o(a),clientId:N,userId:N,sessionId:t.sessionId,hitNumber:t.hitNumber,sessionStart:i,firstVisit:r,debug:g,engagementMs:1},d),c=!1,A=null;try{let e=await n(u,{method:"POST",signal:AbortSignal.timeout(5e3)});c=e.ok,A=e.status}catch{c=!1}if(c){p.delete(l.analyticsQueue).where((0,s.eq)(l.analyticsQueue.id,e.id)).run(),D++;continue}null===A||b.has(A)||(b.add(A),m.serverLogger.warn({tag:"analytics",op:"collect_rejected",status:A},"GA4 /g/collect rejected an event"));let h=e.attempts+1;h>=8?(p.delete(l.analyticsQueue).where((0,s.eq)(l.analyticsQueue.id,e.id)).run(),C++,m.serverLogger.warn({tag:"analytics",op:"event_dropped",name:e.name,attempts:h},"Dropping analytics event after exhausting retries")):(p.update(l.analyticsQueue).set({attempts:h,nextAttemptAt:new Date(S+Math.min(3e4*2**(h-1),36e5))}).where((0,s.eq)(l.analyticsQueue.id,e.id)).run(),I++)}return{sent:D,failed:I,dropped:C}}function v(e={}){if(S)return S;let t=h(e).then(()=>void 0).catch(e=>{m.serverLogger.warn({tag:"analytics",op:"drain_failed",err:e},"Analytics drain failed")}).finally(()=>{S===t&&(S=null)});return S=t,t}e.s(["enqueueAnalyticsEvent",0,function(e,t){try{if((0,p.isTestMode)()||f||!(0,u.getAnalyticsSettings)().enabled)return;let n=o(t),d=(0,a.getDb)();d.insert(l.analyticsQueue).values({id:crypto.randomUUID(),name:e,paramsJson:JSON.stringify(n),nextAttemptAt:new Date(0)}).run();let[{n:c}]=d.select({n:r.sql`count(${r.sql.raw("*")})`.mapWith(Number)}).from(l.analyticsQueue).all();if(c>500){let e=d.select({id:l.analyticsQueue.id}).from(l.analyticsQueue).orderBy((0,i.asc)(l.analyticsQueue.createdAt)).limit(c-500).all().map(e=>e.id);d.delete(l.analyticsQueue).where((0,s.inArray)(l.analyticsQueue.id,e)).run()}}catch{}},"startAnalyticsDrain",0,function(e={}){c&&!A&&(v(e),A=setInterval(()=>v(e),15e3),A.unref?.())}],317812)}];
3
3
 
4
- //# debugId=be1c184f-7f9a-2e09-1569-22b21054e65c
4
+ //# debugId=a28e0ce7-bf9c-a0b0-906e-415468dc24ee
5
5
  //# sourceMappingURL=lib_08x49mw._.js.map
@@ -1,5 +1,5 @@
1
- ;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="47217743-b6f7-1cfb-4c1b-f3975fb51153")}catch(e){}}();
2
- module.exports=[633304,881643,e=>{"use strict";var t=e.i(902157),n=e.i(750227),r=e.i(938281),i=e.i(874533),l=e.i(812057),a=e.i(472691),o=e.i(486282),s=e.i(997901),u=e.i(219199),d=e.i(161389),f=e.i(45054),c=e.i(591491);class m extends Error{code;constructor(e,t){super(t),this.name="NextExternalsError",this.code=e}}let p="externals-manifest.json";function h(e){return`Rebuild with \`npm run build\` (or \`node scripts/next-build-release.js\`), which writes ${n.default.join(".next",p)} as part of the build; if you installed this from npm, reinstall the package (the published tarball always carries the manifest). Checked: ${e}`}let g=(0,l.promisify)(i.execFile),w="@nagellabs/libi",b="github.com",y="runtime-install";class v extends Error{kind;host;constructor(e,t,n=null){super(t),this.name="RuntimeInstallError",this.kind=e,this.host=n}}function S(){return n.default.join((0,a.getLibiHome)(),"runtime")}function x(e){return n.default.join(e,"node_modules",...w.split("/"))}function j(e){try{return new URL(e).host}catch{return e}}async function _(e,t,n){let r=(0,s.buildSpawnEnv)();return"electron-utility-process"===(0,o.selectNpmRunner)()?await (0,o.runNpmViaUtilityProcess)(e,t,{cwd:n,env:r,timeoutMs:9e5}):await g(process.execPath,[e,...t],{cwd:n,env:{...r,ELECTRON_RUN_AS_NODE:"1"},timeout:9e5,windowsHide:!0,maxBuffer:0x1000000})}async function k(e){let i=e.registryUrl??d.PUBLIC_NPM_REGISTRY,l=e.runtimeRootDir??S(),a=n.default.join(l,e.version),s=n.default.join(l,`.tmp-${e.version}-${process.pid}-${Date.now()}`),u=e.onProgress??(()=>{});t.default.mkdirSync(l,{recursive:!0}),t.default.rmSync(s,{recursive:!0,force:!0}),t.default.mkdirSync(s,{recursive:!0});try{t.default.writeFileSync(n.default.join(s,"package.json"),JSON.stringify({name:"libi-runtime",version:"0.0.0",private:!0,description:"Generated by lib/runtime/runtime-install.ts — a fetched @nagellabs/libi runtime snapshot. Do not edit."},null,2)+"\n");let l=(0,o.resolveVendoredNpmCli)(),d=["install",`${w}@${e.version}`,"--omit=dev","--ignore-scripts","--no-audit","--no-fund",`--registry=${i}`];u(`Downloading libi ${e.version}…`),r.serverLogger.info({tag:y,op:"npm_install_start",version:e.version,registryUrl:i},"installing runtime snapshot");try{await _(l,d,s)}catch(t){let e=t instanceof Error?t.message:String(t);if((0,f.looksUnreachable)(e))throw new v("registry-unreachable",`Could not reach the npm registry (${j(i)}): ${e}`,j(i));throw new v("unknown",`npm install failed: ${e}`)}let c=x(s);if(!t.default.existsSync(c))throw new v("verification-failed",`npm install produced no runtime root at ${c}`);u("Preparing the database engine…"),await N({prefix:s}),await E({prefix:s,electronVersion:e.electronVersion});let g=JSON.parse(t.default.readFileSync(n.default.join(c,"package.json"),"utf-8")),b=g.libi?.shellApiVersion;if(g.name!==w||!Number.isInteger(b))throw new v("verification-failed",`installed package is ${String(g.name)}@${String(g.version)} with shellApiVersion ${String(b)}`);for(let e of["dist-cli/lib/runtime/shell-api.js",".next/BUILD_ID"])if(!t.default.existsSync(n.default.join(c,e)))throw new v("verification-failed",`the downloaded runtime is missing ${e}`);try{!function(e){let r=n.default.join(e,"node_modules"),i=function(e){let r=n.default.join(e,p);try{let e=t.default.readFileSync(r,"utf-8"),n=JSON.parse(e);if(!n||"object"!=typeof n||Array.isArray(n))return null;let{buildId:i,links:l}=n;if("string"!=typeof i||0===i.length||!Array.isArray(l))return null;return{buildId:i,links:l.filter(e=>!!e&&"string"==typeof e.link&&"string"==typeof e.package)}}catch{return null}}(e);if(!i){let i,l;if(i=!1,l=!0,!function e(r){let a;try{a=t.default.readdirSync(r,{withFileTypes:!0})}catch{return}for(let o of a){let a=n.default.join(r,o.name);if(o.isSymbolicLink()){i=!0;try{t.default.realpathSync(a)}catch{l=!1}}else o.isDirectory()&&e(a)}}(r),i&&l)return;throw new m("MANIFEST_MISSING",`Next.js externals manifest is missing or unreadable and .next/node_modules holds no usable symlinks. Turbopack externalises packages under hashed names that resolve only through that symlink farm, so the server would start and then fail EVERY request with a 500. ${h(e)}`)}let l=function(e){try{let r=t.default.readFileSync(n.default.join(e,"BUILD_ID"),"utf-8").trim();return r.length>0?r:null}catch{return null}}(e);if(null===l)throw new m("MANIFEST_STALE",`Next.js externals manifest found, but .next/BUILD_ID is missing — this is not a complete production build, so the manifest cannot be verified against it. ${h(e)}`);if(l!==i.buildId)throw new m("MANIFEST_STALE",`Next.js externals manifest is STALE: it was written for build "${i.buildId}" but .next/BUILD_ID is "${l}". Turbopack's hashed external names change between builds, so restoring from it would create symlinks under the previous build's names and every request would 500. ${h(e)}`);if(0===i.links.length)return;let a=[],o=[],s=[];for(let l of i.links){let i=function(e,r){let i=n.default.resolve(e);for(let e=0;e<64;e++){let e=n.default.join(i,"node_modules",r);if(t.default.existsSync(e))return e;let l=n.default.dirname(i);if(l===i)break;i=l}return null}(e,l.package);if(!i){s.push(l);continue}let u=n.default.join(r,l.link);try{if(t.default.lstatSync(u).isSymbolicLink()&&t.default.realpathSync(u)===t.default.realpathSync(i)){o.push(l);continue}t.default.rmSync(u,{force:!0,recursive:!0})}catch{}let d=n.default.dirname(u);t.default.mkdirSync(d,{recursive:!0}),t.default.symlinkSync(n.default.relative(d,i),u,"dir"),a.push(l)}if(s.length>0)throw new m("PACKAGES_MISSING",`Could not locate ${s.length} externalised package(s) in any ancestor node_modules: ${s.map(e=>e.package).join(", ")}. The server would start and then fail requests that touch them. Reinstall dependencies (\`npm install\`) and try again. Searched upward from: ${e}`)}(n.default.join(c,".next"))}catch(e){throw new v("verification-failed",`the downloaded runtime's Next.js externals could not be restored: ${e instanceof Error?e.message:String(e)}`)}t.default.writeFileSync(n.default.join(s,".libi-runtime.json"),JSON.stringify({package:w,version:g.version,shellApiVersion:b,abi:e.abi,electronVersion:e.electronVersion,source:"fetched",installedAt:new Date().toISOString()},null,2)+"\n");let S=t.default.existsSync(a)?`${a}.old-${Date.now()}`:null;return S&&t.default.renameSync(a,S),t.default.renameSync(s,a),S&&t.default.rmSync(S,{recursive:!0,force:!0}),r.serverLogger.info({tag:y,op:"install_done",version:g.version,shellApiVersion:b,abi:e.abi,prefix:a},"runtime snapshot installed"),{prefix:a,root:x(a),version:g.version,shellApiVersion:b,abi:e.abi}}catch(n){t.default.rmSync(s,{recursive:!0,force:!0});let e=n instanceof v?n:new v("unknown",n instanceof Error?n.message:String(n));throw r.serverLogger.warn({tag:y,op:"install_failed",kind:e.kind,host:e.host},e.message),e}}function $(e){let r=(0,c.betterSqliteModuleDir)(e);if(!t.default.existsSync(r))throw new v("verification-failed",`better-sqlite3 is not present in the downloaded runtime (${r})`);let i=[n.default.join(e,"node_modules","prebuild-install","bin.js"),n.default.join(r,"node_modules","prebuild-install","bin.js")].find(e=>t.default.existsSync(e));if(!i)throw new v("verification-failed","prebuild-install is missing from the downloaded runtime, so the native database binding cannot be resolved without compiling — which libi will not do.");return{moduleDir:r,bin:i}}async function N(e){let{moduleDir:i,bin:l}=$(e.prefix),a=n.default.join(i,"build"),o=n.default.join(a,"Release","better_sqlite3.node"),d=[];for(let e of c.NODE_ABI_SIDECAR_MAJORS){try{await g((0,u.resolveNodeCommand)(),[l,"--runtime=node",`--target=${e}.0.0`],{cwd:i,windowsHide:!0,env:(0,s.buildSpawnEnv)(),timeout:3e5,maxBuffer:0x1000000})}catch{}if(!t.default.existsSync(o)){r.serverLogger.warn({tag:y,op:"sidecar_skipped",major:e},"no better-sqlite3 prebuild for this node major");continue}let f=n.default.join(a,(0,c.sidecarDirName)(e));t.default.mkdirSync(f,{recursive:!0}),t.default.copyFileSync(o,n.default.join(f,"better_sqlite3.node")),d.push(e)}if(t.default.rmSync(o,{force:!0}),0===d.length)throw new v("prebuild-unreachable",`Could not download a Node database binding from ${b} for any supported Node version (${c.NODE_ABI_SIDECAR_MAJORS.join(", ")}). libi's agent tools run in a separate Node process, so this runtime would boot a working window in which none of them can reach the database.`,b);return r.serverLogger.info({tag:y,op:"sidecars_fetched",majors:d},"parked plain-node better-sqlite3 bindings"),d}async function E(e){let{moduleDir:i,bin:l}=$(e.prefix),a=[l,"--runtime=electron",`--target=${e.electronVersion}`,"--dist-url=https://electronjs.org/headers"],o=n.default.join(i,"build","Release","better_sqlite3.node");try{await g((0,u.resolveNodeCommand)(),a,{cwd:i,windowsHide:!0,env:(0,s.buildSpawnEnv)(),timeout:3e5,maxBuffer:0x1000000})}catch(e){if(t.default.existsSync(o))r.serverLogger.warn({tag:y,op:"prebuild_command_failed_artifact_ok",err:e instanceof Error?e.message:String(e)},"prebuild-install did not exit cleanly but the binding is present");else{let t=e instanceof Error?e.message:String(e);throw new v("prebuild-unreachable",`Could not download the native database binding from ${b}: ${t}`,b)}}if(!t.default.existsSync(o))throw new v("prebuild-unreachable",`prebuild-install reported success but ${o} is missing`,b)}function D(e,t){let n=e=>{let[t,...n]=e.trim().split("-"),r=t.split(".").map(e=>{let t=Number.parseInt(e,10);return Number.isFinite(t)?t:0});for(;r.length<3;)r.push(0);return{nums:r,pre:n.length>0?n.join("-"):null}},r=n(e),i=n(t);for(let e=0;e<Math.max(r.nums.length,i.nums.length);e+=1){let t=(r.nums[e]??0)-(i.nums[e]??0);if(0!==t)return t}return r.pre===i.pre?0:null===r.pre?1:null===i.pre||r.pre<i.pre?-1:1}e.s(["RuntimeInstallError",0,v,"installRuntime",0,k,"userRuntimeDir",0,S],881643),e.i(59475);let I="runtime-update";e.s(["pruneRuntimesBelowBundled",0,function(e){let i,{bundledVersion:l}=e;if(!l)return{removed:[],kept:[]};let a=e.rootDir??S(),o=e.protectPrefix?n.default.resolve(e.protectPrefix):null;try{i=t.default.readdirSync(a,{withFileTypes:!0})}catch{return{removed:[],kept:[]}}let s=[],u=[];for(let e of i){if(!e.isDirectory()||e.name.startsWith(".")||e.name.includes(".old-"))continue;let i=n.default.join(a,e.name);if(o&&n.default.resolve(i)===o||D(e.name,l)>0){u.push(i);continue}try{t.default.rmSync(i,{recursive:!0,force:!0}),s.push(i),r.serverLogger.info({tag:I,op:"prune_below_bundled",dir:i,bundledVersion:l},"pruned a staged runtime the loader can never select again")}catch(e){r.serverLogger.warn({tag:I,op:"prune_failed",dir:i,err:e.message},"could not prune runtime directory")}}return{removed:s,kept:u}},"pruneUserRuntimes",0,function(e={}){let i,l=Math.max(1,e.keep??2),a=e.rootDir??S(),o=e.protectPrefix?n.default.resolve(e.protectPrefix):null;try{i=t.default.readdirSync(a,{withFileTypes:!0})}catch{return{removed:[],kept:[]}}let s=[],u=(e,i)=>{let l=n.default.join(a,e);if(!o||n.default.resolve(l)!==o)try{t.default.rmSync(l,{recursive:!0,force:!0}),s.push(l),r.serverLogger.info({tag:I,op:"prune_removed",dir:l,why:i},"pruned runtime")}catch(e){r.serverLogger.warn({tag:I,op:"prune_failed",dir:l,err:e.message},"could not prune runtime directory")}};for(let e of i)e.isDirectory()&&(e.name.startsWith(".tmp-")||e.name.includes(".old-"))&&u(e.name,"debris");let d=i.filter(e=>e.isDirectory()&&!e.name.startsWith(".")).map(e=>e.name).filter(e=>!e.includes(".old-")).sort((e,t)=>D(t,e)),f=[],c=0;for(let e of d){let t=n.default.join(a,e),r=null!==o&&n.default.resolve(t)===o;if(c<l||r){f.push(t),c+=1;continue}u(e,"surplus")}return{removed:s,kept:f}},"runningRuntimePrefix",0,function(e=process.cwd()){let t=n.default.resolve(e).split(n.default.sep);if(t.length<4)return null;let[r,i]=[t[t.length-2],t[t.length-1]];return"node_modules"!==t[t.length-3]||"@nagellabs/libi"!=`${r}/${i}`?null:t.slice(0,t.length-3).join(n.default.sep)}],633304)}];
1
+ ;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="f8255699-c4e8-66e5-1436-8865d34b2e97")}catch(e){}}();
2
+ module.exports=[633304,881643,e=>{"use strict";var t=e.i(902157),n=e.i(750227),r=e.i(938281),i=e.i(874533),l=e.i(812057),a=e.i(472691),o=e.i(486282),s=e.i(997901),u=e.i(219199),d=e.i(161389),c=e.i(45054),f=e.i(591491),m=e.i(290303);class p extends Error{code;constructor(e,t){super(t),this.name="NextExternalsError",this.code=e}}let h="externals-manifest.json";function g(e){return`Rebuild with \`npm run build\` (or \`node scripts/next-build-release.js\`), which writes ${n.default.join(".next",h)} as part of the build; if you installed this from npm, reinstall the package (the published tarball always carries the manifest). Checked: ${e}`}let w=(0,l.promisify)(i.execFile),y="@nagellabs/libi",b="github.com",v="runtime-install";class S extends Error{kind;host;constructor(e,t,n=null){super(t),this.name="RuntimeInstallError",this.kind=e,this.host=n}}function x(){return n.default.join((0,a.getLibiHome)(),"runtime")}function j(e){return n.default.join(e,"node_modules",...y.split("/"))}function k(e){try{return new URL(e).host}catch{return e}}async function _(e,t,n){let r=(0,s.buildSpawnEnv)();return"electron-utility-process"===(0,o.selectNpmRunner)()?await (0,o.runNpmViaUtilityProcess)(e,t,{cwd:n,env:r,timeoutMs:9e5}):await w(process.execPath,[e,...t],{cwd:n,env:{...r,ELECTRON_RUN_AS_NODE:"1"},timeout:9e5,windowsHide:!0,maxBuffer:0x1000000})}async function $(e){let i=e.registryUrl??d.PUBLIC_NPM_REGISTRY,l=e.runtimeRootDir??x(),a=n.default.join(l,e.version),s=n.default.join(l,`.tmp-${e.version}-${process.pid}-${Date.now()}`),u=e.onProgress??(()=>{});t.default.mkdirSync(l,{recursive:!0}),t.default.rmSync(s,{recursive:!0,force:!0}),t.default.mkdirSync(s,{recursive:!0});try{t.default.writeFileSync(n.default.join(s,"package.json"),JSON.stringify({name:"libi-runtime",version:"0.0.0",private:!0,description:"Generated by lib/runtime/runtime-install.ts — a fetched @nagellabs/libi runtime snapshot. Do not edit."},null,2)+"\n");let l=(0,o.resolveVendoredNpmCli)(),d=["install",`${y}@${e.version}`,"--omit=dev","--ignore-scripts","--no-audit","--no-fund",`--registry=${i}`];u(`Downloading libi ${e.version}…`),r.serverLogger.info({tag:v,op:"npm_install_start",version:e.version,registryUrl:i},"installing runtime snapshot");try{await _(l,d,s)}catch(t){let e=t instanceof Error?t.message:String(t);if((0,c.looksUnreachable)(e))throw new S("registry-unreachable",`Could not reach the npm registry (${k(i)}): ${e}`,k(i));throw new S("unknown",`npm install failed: ${e}`)}let f=j(s);if(!t.default.existsSync(f))throw new S("verification-failed",`npm install produced no runtime root at ${f}`);u("Preparing the database engine…"),await E({prefix:s}),await D({prefix:s,electronVersion:e.electronVersion});let w=JSON.parse(t.default.readFileSync(n.default.join(f,"package.json"),"utf-8")),b=w.libi?.shellApiVersion;if(w.name!==y||!Number.isInteger(b))throw new S("verification-failed",`installed package is ${String(w.name)}@${String(w.version)} with shellApiVersion ${String(b)}`);for(let e of["dist-cli/lib/runtime/shell-api.js",".next/BUILD_ID"])if(!t.default.existsSync(n.default.join(f,e)))throw new S("verification-failed",`the downloaded runtime is missing ${e}`);try{!function(e){let r=n.default.join(e,"node_modules"),i=function(e){let r=n.default.join(e,h);try{let e=t.default.readFileSync(r,"utf-8"),n=JSON.parse(e);if(!n||"object"!=typeof n||Array.isArray(n))return null;let{buildId:i,links:l}=n;if("string"!=typeof i||0===i.length||!Array.isArray(l))return null;return{buildId:i,links:l.filter(e=>!!e&&"string"==typeof e.link&&"string"==typeof e.package)}}catch{return null}}(e);if(!i){let i,l;if(i=!1,l=!0,!function e(r){let a;try{a=t.default.readdirSync(r,{withFileTypes:!0})}catch{return}for(let o of a){let a=n.default.join(r,o.name);if(o.isSymbolicLink()){i=!0;try{t.default.realpathSync(a)}catch{l=!1}}else o.isDirectory()&&e(a)}}(r),i&&l)return;throw new p("MANIFEST_MISSING",`Next.js externals manifest is missing or unreadable and .next/node_modules holds no usable symlinks. Turbopack externalises packages under hashed names that resolve only through that symlink farm, so the server would start and then fail EVERY request with a 500. ${g(e)}`)}let l=function(e){try{let r=t.default.readFileSync(n.default.join(e,"BUILD_ID"),"utf-8").trim();return r.length>0?r:null}catch{return null}}(e);if(null===l)throw new p("MANIFEST_STALE",`Next.js externals manifest found, but .next/BUILD_ID is missing — this is not a complete production build, so the manifest cannot be verified against it. ${g(e)}`);if(l!==i.buildId)throw new p("MANIFEST_STALE",`Next.js externals manifest is STALE: it was written for build "${i.buildId}" but .next/BUILD_ID is "${l}". Turbopack's hashed external names change between builds, so restoring from it would create symlinks under the previous build's names and every request would 500. ${g(e)}`);if(0===i.links.length)return;let a=[],o=[],s=[];for(let l of i.links){let i=function(e,r){let i=n.default.resolve(e);for(let e=0;e<64;e++){let e=n.default.join(i,"node_modules",r);if(t.default.existsSync(e))return e;let l=n.default.dirname(i);if(l===i)break;i=l}return null}(e,l.package);if(!i){s.push(l);continue}let u=n.default.join(r,l.link);try{if(t.default.lstatSync(u).isSymbolicLink()&&t.default.realpathSync(u)===t.default.realpathSync(i)){o.push(l);continue}t.default.rmSync(u,{force:!0,recursive:!0})}catch{}let d=n.default.dirname(u);t.default.mkdirSync(d,{recursive:!0}),(0,m.isWindows)()?t.default.symlinkSync(i,u,"junction"):t.default.symlinkSync(n.default.relative(d,i),u,"dir"),a.push(l)}if(s.length>0)throw new p("PACKAGES_MISSING",`Could not locate ${s.length} externalised package(s) in any ancestor node_modules: ${s.map(e=>e.package).join(", ")}. The server would start and then fail requests that touch them. Reinstall dependencies (\`npm install\`) and try again. Searched upward from: ${e}`)}(n.default.join(f,".next"))}catch(e){throw new S("verification-failed",`the downloaded runtime's Next.js externals could not be restored: ${e instanceof Error?e.message:String(e)}`)}t.default.writeFileSync(n.default.join(s,".libi-runtime.json"),JSON.stringify({package:y,version:w.version,shellApiVersion:b,abi:e.abi,electronVersion:e.electronVersion,source:"fetched",installedAt:new Date().toISOString()},null,2)+"\n");let x=t.default.existsSync(a)?`${a}.old-${Date.now()}`:null;return x&&t.default.renameSync(a,x),t.default.renameSync(s,a),x&&t.default.rmSync(x,{recursive:!0,force:!0}),r.serverLogger.info({tag:v,op:"install_done",version:w.version,shellApiVersion:b,abi:e.abi,prefix:a},"runtime snapshot installed"),{prefix:a,root:j(a),version:w.version,shellApiVersion:b,abi:e.abi}}catch(n){t.default.rmSync(s,{recursive:!0,force:!0});let e=n instanceof S?n:new S("unknown",n instanceof Error?n.message:String(n));throw r.serverLogger.warn({tag:v,op:"install_failed",kind:e.kind,host:e.host},e.message),e}}function N(e){let r=(0,f.betterSqliteModuleDir)(e);if(!t.default.existsSync(r))throw new S("verification-failed",`better-sqlite3 is not present in the downloaded runtime (${r})`);let i=[n.default.join(e,"node_modules","prebuild-install","bin.js"),n.default.join(r,"node_modules","prebuild-install","bin.js")].find(e=>t.default.existsSync(e));if(!i)throw new S("verification-failed","prebuild-install is missing from the downloaded runtime, so the native database binding cannot be resolved without compiling — which libi will not do.");return{moduleDir:r,bin:i}}async function E(e){let{moduleDir:i,bin:l}=N(e.prefix),a=n.default.join(i,"build"),o=n.default.join(a,"Release","better_sqlite3.node"),d=[];for(let e of f.NODE_ABI_SIDECAR_MAJORS){try{await w((0,u.resolveNodeCommand)(),[l,"--runtime=node",`--target=${e}.0.0`],{cwd:i,windowsHide:!0,env:(0,s.buildSpawnEnv)(),timeout:3e5,maxBuffer:0x1000000})}catch{}if(!t.default.existsSync(o)){r.serverLogger.warn({tag:v,op:"sidecar_skipped",major:e},"no better-sqlite3 prebuild for this node major");continue}let c=n.default.join(a,(0,f.sidecarDirName)(e));t.default.mkdirSync(c,{recursive:!0}),t.default.copyFileSync(o,n.default.join(c,"better_sqlite3.node")),d.push(e)}if(t.default.rmSync(o,{force:!0}),0===d.length)throw new S("prebuild-unreachable",`Could not download a Node database binding from ${b} for any supported Node version (${f.NODE_ABI_SIDECAR_MAJORS.join(", ")}). libi's agent tools run in a separate Node process, so this runtime would boot a working window in which none of them can reach the database.`,b);return r.serverLogger.info({tag:v,op:"sidecars_fetched",majors:d},"parked plain-node better-sqlite3 bindings"),d}async function D(e){let{moduleDir:i,bin:l}=N(e.prefix),a=[l,"--runtime=electron",`--target=${e.electronVersion}`,"--dist-url=https://electronjs.org/headers"],o=n.default.join(i,"build","Release","better_sqlite3.node");try{await w((0,u.resolveNodeCommand)(),a,{cwd:i,windowsHide:!0,env:(0,s.buildSpawnEnv)(),timeout:3e5,maxBuffer:0x1000000})}catch(e){if(t.default.existsSync(o))r.serverLogger.warn({tag:v,op:"prebuild_command_failed_artifact_ok",err:e instanceof Error?e.message:String(e)},"prebuild-install did not exit cleanly but the binding is present");else{let t=e instanceof Error?e.message:String(e);throw new S("prebuild-unreachable",`Could not download the native database binding from ${b}: ${t}`,b)}}if(!t.default.existsSync(o))throw new S("prebuild-unreachable",`prebuild-install reported success but ${o} is missing`,b)}function I(e,t){let n=e=>{let[t,...n]=e.trim().split("-"),r=t.split(".").map(e=>{let t=Number.parseInt(e,10);return Number.isFinite(t)?t:0});for(;r.length<3;)r.push(0);return{nums:r,pre:n.length>0?n.join("-"):null}},r=n(e),i=n(t);for(let e=0;e<Math.max(r.nums.length,i.nums.length);e+=1){let t=(r.nums[e]??0)-(i.nums[e]??0);if(0!==t)return t}return r.pre===i.pre?0:null===r.pre?1:null===i.pre||r.pre<i.pre?-1:1}e.s(["RuntimeInstallError",0,S,"installRuntime",0,$,"userRuntimeDir",0,x],881643),e.i(59475);let A="runtime-update";e.s(["pruneRuntimesBelowBundled",0,function(e){let i,{bundledVersion:l}=e;if(!l)return{removed:[],kept:[]};let a=e.rootDir??x(),o=e.protectPrefix?n.default.resolve(e.protectPrefix):null;try{i=t.default.readdirSync(a,{withFileTypes:!0})}catch{return{removed:[],kept:[]}}let s=[],u=[];for(let e of i){if(!e.isDirectory()||e.name.startsWith(".")||e.name.includes(".old-"))continue;let i=n.default.join(a,e.name);if(o&&n.default.resolve(i)===o||I(e.name,l)>0){u.push(i);continue}try{t.default.rmSync(i,{recursive:!0,force:!0}),s.push(i),r.serverLogger.info({tag:A,op:"prune_below_bundled",dir:i,bundledVersion:l},"pruned a staged runtime the loader can never select again")}catch(e){r.serverLogger.warn({tag:A,op:"prune_failed",dir:i,err:e.message},"could not prune runtime directory")}}return{removed:s,kept:u}},"pruneUserRuntimes",0,function(e={}){let i,l=Math.max(1,e.keep??2),a=e.rootDir??x(),o=e.protectPrefix?n.default.resolve(e.protectPrefix):null;try{i=t.default.readdirSync(a,{withFileTypes:!0})}catch{return{removed:[],kept:[]}}let s=[],u=(e,i)=>{let l=n.default.join(a,e);if(!o||n.default.resolve(l)!==o)try{t.default.rmSync(l,{recursive:!0,force:!0}),s.push(l),r.serverLogger.info({tag:A,op:"prune_removed",dir:l,why:i},"pruned runtime")}catch(e){r.serverLogger.warn({tag:A,op:"prune_failed",dir:l,err:e.message},"could not prune runtime directory")}};for(let e of i)e.isDirectory()&&(e.name.startsWith(".tmp-")||e.name.includes(".old-"))&&u(e.name,"debris");let d=i.filter(e=>e.isDirectory()&&!e.name.startsWith(".")).map(e=>e.name).filter(e=>!e.includes(".old-")).sort((e,t)=>I(t,e)),c=[],f=0;for(let e of d){let t=n.default.join(a,e),r=null!==o&&n.default.resolve(t)===o;if(f<l||r){c.push(t),f+=1;continue}u(e,"surplus")}return{removed:s,kept:c}},"runningRuntimePrefix",0,function(e=process.cwd()){let t=n.default.resolve(e).split(n.default.sep);if(t.length<4)return null;let[r,i]=[t[t.length-2],t[t.length-1]];return"node_modules"!==t[t.length-3]||"@nagellabs/libi"!=`${r}/${i}`?null:t.slice(0,t.length-3).join(n.default.sep)}],633304)}];
3
3
 
4
- //# debugId=47217743-b6f7-1cfb-4c1b-f3975fb51153
4
+ //# debugId=f8255699-c4e8-66e5-1436-8865d34b2e97
5
5
  //# sourceMappingURL=lib_runtime_runtime-prune_ts_0eaw~-q._.js.map