vibe64 0.1.32 → 0.1.34

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 (294) hide show
  1. package/bin/run.js +1717 -1648
  2. package/bin/server.js +81 -68
  3. package/bin/upgrade-state.js +5438 -5189
  4. package/dist/assets/{GithubBrowserTabs-2bEGbRAs.js → GithubBrowserTabs-DO5PHon-.js} +1 -1
  5. package/dist/assets/GithubMarkdown-BQ6MfCDJ.js +3 -0
  6. package/dist/assets/GithubMarkdown-U7-j-qNI.css +1 -0
  7. package/dist/assets/StudioErrorNotice-sQfmeR-z.js +1 -0
  8. package/dist/assets/VAlert-P256xaE0.js +1 -0
  9. package/dist/assets/VAutocomplete-BDb95qJX.js +1 -0
  10. package/dist/assets/VAvatar-9ilDR2r2.css +1 -0
  11. package/dist/assets/VAvatar-DPzqDH4r.js +1 -0
  12. package/dist/assets/VBtn-B2MBK2DL.js +1 -0
  13. package/dist/assets/VCard-mXy0k4aS.js +1 -0
  14. package/dist/assets/VCheckbox-C7A1ZW4D.js +1 -0
  15. package/dist/assets/VChip-CcI-Oo2J.js +1 -0
  16. package/dist/assets/VDialog-Bu3EfKb1.js +1 -0
  17. package/dist/assets/VDivider-BMEqUoAB.js +1 -0
  18. package/dist/assets/VExpansionPanels-Dgjrop0V.js +1 -0
  19. package/dist/assets/VMenu-C_x18lwb.js +1 -0
  20. package/dist/assets/VOverlay-CeMZurIN.js +1 -0
  21. package/dist/assets/VRadioGroup-CUu2-KIP.js +1 -0
  22. package/dist/assets/VRow-Cpw7OHQV.js +1 -0
  23. package/dist/assets/{VSelect-DY-ZuBJJ.js → VSelect-DL3HaA5m.js} +1 -1
  24. package/dist/assets/VSheet-DZWsu0kL.js +1 -0
  25. package/dist/assets/VSkeletonLoader-CttxM1tw.js +1 -0
  26. package/dist/assets/VSpacer-Dhmsvk4t.js +1 -0
  27. package/dist/assets/{VSwitch-Bm1bwl2V.js → VSwitch-BRHeDJkH.js} +1 -1
  28. package/dist/assets/VTextField-BR2eZeFT.js +1 -0
  29. package/dist/assets/VTextarea-DbqamXJd.js +1 -0
  30. package/dist/assets/Vibe64AsyncModuleState-Dx7YKRPp.js +1 -0
  31. package/dist/assets/Vibe64DashboardBackButton-DD9UR77P.css +1 -0
  32. package/dist/assets/Vibe64DashboardBackButton-yE6cyYg2.js +1 -0
  33. package/dist/assets/Vibe64DashboardPageHeader-BXQR00HK.js +1 -0
  34. package/dist/assets/Vibe64DashboardPageHeader-Gm1IvlHx.css +1 -0
  35. package/dist/assets/Vibe64DashboardShell-CuCVMhOc.js +1 -0
  36. package/dist/assets/Vibe64DashboardShell-MBkUHjs-.css +1 -0
  37. package/dist/assets/Vibe64DatabaseWorkspace-BONJdxBS.js +18 -0
  38. package/dist/assets/{Vibe64DatabaseWorkspace-C39Jvver.css → Vibe64DatabaseWorkspace-CR4pzzcf.css} +1 -1
  39. package/dist/assets/Vibe64OutputControls-DAAmA09l.js +8 -0
  40. package/dist/assets/{Vibe64OutputControls-CsZFv12r.css → Vibe64OutputControls-DPBsyDZM.css} +1 -1
  41. package/dist/assets/{Vibe64RepositoryWorkspace-ebUaYOU4.js → Vibe64RepositoryWorkspace-ByQlZbyO.js} +2 -2
  42. package/dist/assets/{Vibe64RepositoryWorkspace-Cqm6TOFk.css → Vibe64RepositoryWorkspace-CVHcT93M.css} +1 -1
  43. package/dist/assets/Vibe64SessionFiles-B0u9HKdF.js +107 -0
  44. package/dist/assets/Vibe64SessionFiles-NjOMVwPR.css +1 -0
  45. package/dist/assets/Vibe64TemporaryAiFixAction-BGlcrq4d.js +1 -0
  46. package/dist/assets/Vibe64UiStoryboardView-3WXph5bz.css +1 -0
  47. package/dist/assets/Vibe64UiStoryboardView-Brlwdvqi.js +7 -0
  48. package/dist/assets/Vibe64UnavailableSessions-zwlWlcZD.js +1 -0
  49. package/dist/assets/_sessionId_-CvOkQbVy.js +1 -0
  50. package/dist/assets/{_sessionTool_-B39BIzzZ.js → _sessionTool_-Dwod5ns9.js} +1 -1
  51. package/dist/assets/_slug_-B31c15cc.css +1 -0
  52. package/dist/assets/_slug_-Dy35qLo1.js +1 -0
  53. package/dist/assets/access-BVu5XYm2.js +1 -0
  54. package/dist/assets/app-DRXCcv05.css +1 -0
  55. package/dist/assets/app-zt7HwQKT.js +1 -0
  56. package/dist/assets/assistantRouting-CwbwfkwB.js +3 -0
  57. package/dist/assets/{changes-ByjS7QGx.js → changes-olY8cnFK.js} +1 -1
  58. package/dist/assets/{client-C-tpoG6F.js → client-BrV4QPwG.js} +1 -1
  59. package/dist/assets/createSimpleFunctional-CZTGuNuR.js +1 -0
  60. package/dist/assets/dashboard-BnXD-H4R.js +1 -0
  61. package/dist/assets/definitions-DaOPIkyB.js +1 -0
  62. package/dist/assets/env-DJhnLOH7.css +1 -0
  63. package/dist/assets/env-DN0vW4EI.js +1 -0
  64. package/dist/assets/{error-DFKtZBJ8.js → error-DgrgRbJJ.js} +1 -1
  65. package/dist/assets/{error-DE4zo8Lk.js → error-Dug56can.js} +1 -1
  66. package/dist/assets/health-7oIQODer.css +1 -0
  67. package/dist/assets/health-Z6m96GDr.js +1 -0
  68. package/dist/assets/history-BOwbCRQP.css +1 -0
  69. package/dist/assets/history-BxlpB-YH.js +1 -0
  70. package/dist/assets/incoming-BOxRVlOM.js +2 -0
  71. package/dist/assets/incoming-DWDrmxyH.css +1 -0
  72. package/dist/assets/index-BUq-MczL.js +86 -0
  73. package/dist/assets/{index-D4MsP3dq.css → index-DtmBqE3h.css} +1 -1
  74. package/dist/assets/{integrations-B4txOZfY.js → integrations-BFltGDVI.js} +1 -1
  75. package/dist/assets/issues-1iS5zoed.js +1 -0
  76. package/dist/assets/issues-XnpGgdmn.css +1 -0
  77. package/dist/assets/layout-BkWVNT37.js +1 -0
  78. package/dist/assets/lazy-NHSwD9FS.js +1 -0
  79. package/dist/assets/mdi-C54lQ0i_.js +1 -0
  80. package/dist/assets/{pages-BW2l8fNe.js → pages-DuMgH61T.js} +1 -1
  81. package/dist/assets/{placement-JxzrmUR3.js → placement-CwTqWLQH.js} +1 -1
  82. package/dist/assets/placement-DLsU3pCW.js +1 -0
  83. package/dist/assets/pull-requests-BJOwNL4k.js +1 -0
  84. package/dist/assets/pull-requests-CdbhyFOv.css +1 -0
  85. package/dist/assets/{repository-BTC3lkrh.js → repository-JWLVST3D.js} +1 -1
  86. package/dist/assets/{VAvatar-CAFvgSUo.js → ripple-BVltMmyV.js} +2 -2
  87. package/dist/assets/ripple-DqhAt1Ze.css +1 -0
  88. package/dist/assets/runtime-core.esm-bundler-DGXg_mpN.js +3 -0
  89. package/dist/assets/{session-CG-TUCJt.css → session-5qADMzDP.css} +1 -1
  90. package/dist/assets/session-C5Nj8Dlq.js +1 -0
  91. package/dist/assets/settings-BopLnpB0.css +1 -0
  92. package/dist/assets/settings-c273Ikrm.js +1 -0
  93. package/dist/assets/ssrBoot-Rlh6kLbD.js +1 -0
  94. package/dist/assets/{studioGateApi-C0GvzVlt.js → studioGateApi-DhA9IJGZ.js} +1 -1
  95. package/dist/assets/{studioUrls-CIab-Axb.js → studioUrls-Dj8rXeXO.js} +1 -1
  96. package/dist/assets/{useApi-BPuI6ZR9-Dr8wK_Co.js → useApi-BPuI6ZR9-CFWU1m37.js} +1 -1
  97. package/dist/assets/useArchivedVibe64Sessions-CVZx2Rtm.js +1 -0
  98. package/dist/assets/useCommand-DWuxfAV0.js +1 -0
  99. package/dist/assets/useEndpointResource-MWVNfmMa.js +1 -0
  100. package/dist/assets/{usePaths-DVTieF_G.js → usePaths-Db88-HOm.js} +1 -1
  101. package/dist/assets/{useUiFeedback-Tzi-PRlX.js → useUiFeedback-0FqKuZRP.js} +1 -1
  102. package/dist/assets/useVibe64ConversationLog-8cKh1eDm.js +1 -0
  103. package/dist/assets/useVibe64DatabaseTools-BcRG1s3i.js +1 -0
  104. package/dist/assets/useVibe64LearningMode-Bl0dGdCh.js +28 -0
  105. package/dist/assets/useVibe64LearningMode-C3PcXdVg.css +1 -0
  106. package/dist/assets/useVibe64ProjectScope-DOEVkBqX.js +1 -0
  107. package/dist/assets/useVibe64SessionData-DFTyLzci.js +1 -0
  108. package/dist/assets/useVibe64SessionSelection-j9lsllx4.js +1 -0
  109. package/dist/assets/useVibe64SystemGraph-tNkIwSBQ.js +1 -0
  110. package/dist/assets/{useVibe64Terminal-C2XJ9Y1K.js → useVibe64Terminal-BPnN25WH.js} +1 -1
  111. package/dist/assets/vibe64AssistantHost-DdE_-lZF.js +1 -0
  112. package/dist/assets/vibe64LessonDashboard-DlKYjisq.js +1 -0
  113. package/dist/assets/vibe64ProjectScope.local-DqT6e5un.js +1 -0
  114. package/dist/assets/vibe64RepositoryRealtime-DXk0Jai3.js +1 -0
  115. package/dist/assets/vibe64SessionFocus-OJ2toBd9.css +1 -0
  116. package/dist/assets/vibe64SessionFocus-kqPOPaOH.js +1 -0
  117. package/dist/assets/{vibe64SessionInfo-D8l22MFm.js → vibe64SessionInfo-BHxtTrLX.js} +1 -1
  118. package/dist/assets/vibe64SessionToolDefinitions-NfLd1HZI.js +1 -0
  119. package/dist/assets/vue-flow-core-BlVEnES8.js +26 -0
  120. package/dist/index.html +51 -48
  121. package/docs/colleague-usage/account-profile-and-appearance.md +29 -0
  122. package/docs/colleague-usage/ai-accounts-and-routing.md +23 -4
  123. package/docs/colleague-usage/ai-balance-and-allowance.md +4 -0
  124. package/docs/colleague-usage/architecture-explanations.md +99 -0
  125. package/docs/colleague-usage/auto-workflow.md +49 -11
  126. package/docs/colleague-usage/coding-agent-failures.md +94 -0
  127. package/docs/colleague-usage/coding-agent-goal-pause.md +110 -0
  128. package/docs/colleague-usage/coding-agent-goals.md +140 -38
  129. package/docs/colleague-usage/coding-agent-history.md +20 -2
  130. package/docs/colleague-usage/coding-agent-recovery.md +136 -0
  131. package/docs/colleague-usage/coding-agents.md +138 -150
  132. package/docs/colleague-usage/colleague-recovery.md +28 -5
  133. package/docs/colleague-usage/colleague-upgrade-recovery.md +4 -0
  134. package/docs/colleague-usage/colleague-watches.md +84 -0
  135. package/docs/colleague-usage/colleague.md +18 -34
  136. package/docs/colleague-usage/connected-contributions.md +196 -0
  137. package/docs/colleague-usage/connected-projects.md +196 -0
  138. package/docs/colleague-usage/conversation-context.md +67 -1
  139. package/docs/colleague-usage/dashboard-navigation.md +79 -5
  140. package/docs/colleague-usage/database.md +11 -0
  141. package/docs/colleague-usage/developing-vibe64.md +137 -0
  142. package/docs/colleague-usage/development-copies.md +20 -0
  143. package/docs/colleague-usage/development-env.md +34 -0
  144. package/docs/colleague-usage/file-interfaces.md +156 -0
  145. package/docs/colleague-usage/github-work.md +88 -1
  146. package/docs/colleague-usage/health-checks.md +32 -0
  147. package/docs/colleague-usage/incoming-changes.md +94 -0
  148. package/docs/colleague-usage/learning-chat-retention.md +11 -2
  149. package/docs/colleague-usage/learning-code-questions.md +55 -0
  150. package/docs/colleague-usage/learning-course-catalogue.md +118 -0
  151. package/docs/colleague-usage/learning-diagrams-and-voice.md +97 -0
  152. package/docs/colleague-usage/learning-history.md +17 -9
  153. package/docs/colleague-usage/learning-lesson-watch.md +95 -0
  154. package/docs/colleague-usage/learning-mode-ui.md +187 -85
  155. package/docs/colleague-usage/learning-native-session.md +12 -10
  156. package/docs/colleague-usage/learning-practical-exercises.md +71 -0
  157. package/docs/colleague-usage/learning-practical-gestures.md +18 -1
  158. package/docs/colleague-usage/learning-practice-projects.md +55 -4
  159. package/docs/colleague-usage/learning-session-creation.md +7 -7
  160. package/docs/colleague-usage/learning-teacher-guide.md +52 -0
  161. package/docs/colleague-usage/learning-with-colleague.md +59 -80
  162. package/docs/colleague-usage/lesson-authoring.md +12 -4
  163. package/docs/colleague-usage/lesson-practical-assessment.md +3 -1
  164. package/docs/colleague-usage/managed-app-access.md +6 -0
  165. package/docs/colleague-usage/message-delivery-recovery.md +56 -0
  166. package/docs/colleague-usage/plans.md +14 -7
  167. package/docs/colleague-usage/preview-browser-checks.md +61 -0
  168. package/docs/colleague-usage/preview-lesson-presentation.md +56 -0
  169. package/docs/colleague-usage/preview-starting-application.md +92 -0
  170. package/docs/colleague-usage/preview.md +70 -96
  171. package/docs/colleague-usage/project-architecture.md +229 -0
  172. package/docs/colleague-usage/project-language-tools.md +31 -0
  173. package/docs/colleague-usage/project-messages.md +106 -0
  174. package/docs/colleague-usage/project-settings.md +22 -0
  175. package/docs/colleague-usage/project-setup.md +29 -2
  176. package/docs/colleague-usage/session-terminal.md +42 -0
  177. package/docs/colleague-usage/sessions.md +122 -52
  178. package/docs/colleague-usage/teaching-content.md +12 -6
  179. package/docs/colleague-usage/temporary-chat-context.md +29 -0
  180. package/docs/colleague-usage/temporary-chats.md +95 -2
  181. package/docs/colleague-usage/voice-chat.md +10 -43
  182. package/docs/colleague-usage/voice-face-and-speaking-voice.md +73 -0
  183. package/docs/colleague-usage/workspace-preparation.md +89 -0
  184. package/docs/training-content.md +208 -7
  185. package/node_modules/@jskit-ai/assistant-core/package.json +1 -1
  186. package/node_modules/@jskit-ai/assistant-runtime/README.md +29 -0
  187. package/node_modules/@jskit-ai/assistant-runtime/package.json +1 -1
  188. package/node_modules/@jskit-ai/assistant-voice/package.json +1 -1
  189. package/node_modules/@jskit-ai/connector-google-calendar/package.json +1 -1
  190. package/node_modules/@jskit-ai/connectors-catalog/package.json +1 -1
  191. package/node_modules/@jskit-ai/connectors-core/package.json +1 -1
  192. package/node_modules/@jskit-ai/http-runtime/package.json +1 -1
  193. package/node_modules/@jskit-ai/kernel/package.json +1 -1
  194. package/node_modules/@jskit-ai/payments-core/package.json +1 -1
  195. package/node_modules/@jskit-ai/realtime/package.json +1 -1
  196. package/node_modules/@jskit-ai/resource-core/package.json +1 -1
  197. package/node_modules/@jskit-ai/resource-crud-core/package.json +1 -1
  198. package/node_modules/@jskit-ai/uploads-runtime/package.json +1 -1
  199. package/node_modules/@local/vibe64-core/package.json +1 -0
  200. package/node_modules/@local/vibe64-execution/src/host/execHelper.js +280 -272
  201. package/node_modules/@local/vibe64-genesis/README.md +15 -0
  202. package/node_modules/@local/vibe64-genesis/bin/vibe64-genesis-host-context +879 -1225
  203. package/node_modules/@local/vibe64-genesis/package.json +2 -1
  204. package/node_modules/@local/vibe64-genesis/src/server/index.js +496 -418
  205. package/node_modules/@local/vibe64-genesis/src/server/promptContext.js +165 -146
  206. package/node_modules/@local/vibe64-runtime/src/server/agentSessionCommandHook.js +8 -8
  207. package/node_modules/@local/vibe64-runtime/src/server/codexAppServerProcess.js +128 -129
  208. package/node_modules/@local/vibe64-system-graph/README.md +136 -6
  209. package/node_modules/@local/vibe64-terminals/package.json +3 -0
  210. package/node_modules/@local/vibe64-terminals/src/server/sessionWorkOperationCommand.js +1527 -1326
  211. package/node_modules/@local/vibe64-training/package.json +6 -1
  212. package/node_modules/@local/vibe64-voice/package.json +1 -0
  213. package/package.json +16 -16
  214. package/server.bundle.mjs +42853 -40268
  215. package/dist/assets/StudioErrorNotice-Ccjvcn9C.js +0 -1
  216. package/dist/assets/VAlert-B7ciJKQL.js +0 -1
  217. package/dist/assets/VAutocomplete-QjMk5d_j.js +0 -1
  218. package/dist/assets/VAvatar-nHaK192T.css +0 -1
  219. package/dist/assets/VBtn-Kl_qcBsy.js +0 -1
  220. package/dist/assets/VCard-nrJPeo91.js +0 -1
  221. package/dist/assets/VCheckbox-DTRAWOIf.js +0 -1
  222. package/dist/assets/VChip-Dfs5jX0f.js +0 -1
  223. package/dist/assets/VDialog-Dt1VjJg1.js +0 -1
  224. package/dist/assets/VDivider-DFsS0OTx.js +0 -1
  225. package/dist/assets/VExpansionPanels-CYKU0cAr.js +0 -1
  226. package/dist/assets/VMenu-BLxobsuU.js +0 -1
  227. package/dist/assets/VOverlay-BvFVZKNS.js +0 -1
  228. package/dist/assets/VRadioGroup-DzQzpCfg.js +0 -1
  229. package/dist/assets/VRow-BR2RMCM1.js +0 -1
  230. package/dist/assets/VSheet-BA95RNmA.js +0 -1
  231. package/dist/assets/VSkeletonLoader-hpJqr0HL.js +0 -1
  232. package/dist/assets/VSpacer-B1l1hVvU.js +0 -1
  233. package/dist/assets/VTextField-CA_p3N4d.js +0 -1
  234. package/dist/assets/VTextarea-NyCqY4h5.js +0 -1
  235. package/dist/assets/Vibe64AsyncModuleState-DEFlqJ97.js +0 -1
  236. package/dist/assets/Vibe64DashboardShell-BNv2I-P8.js +0 -1
  237. package/dist/assets/Vibe64DashboardShell-w20wNTGW.css +0 -1
  238. package/dist/assets/Vibe64DatabaseWorkspace-CuY5lN1o.js +0 -43
  239. package/dist/assets/Vibe64OutputControls-D2JuYlYU.js +0 -8
  240. package/dist/assets/Vibe64SessionFiles-C-rWehq_.js +0 -34
  241. package/dist/assets/Vibe64SessionFiles-Dsr6KQNP.css +0 -1
  242. package/dist/assets/Vibe64SubsystemsView-BvdU_o6H.css +0 -1
  243. package/dist/assets/Vibe64SubsystemsView-DJCjSzQM.js +0 -1
  244. package/dist/assets/Vibe64SystemWorldView-B91ioQaO.js +0 -4312
  245. package/dist/assets/Vibe64SystemWorldView-BXiQ7_Qb.css +0 -1
  246. package/dist/assets/Vibe64UnavailableSessions-OvnoD3ZB.js +0 -1
  247. package/dist/assets/_sessionId_-JTvMh54L.js +0 -1
  248. package/dist/assets/_slug_-DP_heCDa.js +0 -1
  249. package/dist/assets/_slug_-DmBZGb0q.css +0 -1
  250. package/dist/assets/access-C8GQIS19.js +0 -1
  251. package/dist/assets/app-B83lF61Y.js +0 -1
  252. package/dist/assets/app-ByLIQ3SB.css +0 -1
  253. package/dist/assets/assistantRouting-TDtryU6o.js +0 -1
  254. package/dist/assets/createSimpleFunctional-DPIT6zsT.js +0 -1
  255. package/dist/assets/dashboard-CWGFPojJ.js +0 -1
  256. package/dist/assets/definitions-BeLcvOW3.js +0 -1
  257. package/dist/assets/display-BLmcO-5p.js +0 -1
  258. package/dist/assets/env-7bqFyF_E.css +0 -1
  259. package/dist/assets/env-BVwxNL8M.js +0 -1
  260. package/dist/assets/health-BzNhp7r8.js +0 -1
  261. package/dist/assets/health-DoHTXTGx.css +0 -1
  262. package/dist/assets/history-BPeZGofK.js +0 -1
  263. package/dist/assets/history-iMQxp5AR.css +0 -1
  264. package/dist/assets/httpClient-BaaZuFvF.js +0 -1
  265. package/dist/assets/index-5sKwLHOH.js +0 -86
  266. package/dist/assets/issues-DCEhGlfn.css +0 -1
  267. package/dist/assets/issues-wby50y9b.js +0 -3
  268. package/dist/assets/layout-YCn17mK1.js +0 -1
  269. package/dist/assets/lazy-CvQfXeLg.js +0 -1
  270. package/dist/assets/mdi-C31_SZp-.js +0 -1
  271. package/dist/assets/placement-C4R2t6rl.js +0 -1
  272. package/dist/assets/pull-requests-BNK6mq2u.css +0 -1
  273. package/dist/assets/pull-requests-lNQAigaC.js +0 -1
  274. package/dist/assets/runtime-core.esm-bundler-DMrccYS5.js +0 -3
  275. package/dist/assets/session-D38nzG41.js +0 -1
  276. package/dist/assets/settings-CFyUJ_kR.js +0 -1
  277. package/dist/assets/settings-vWsAEoE9.css +0 -1
  278. package/dist/assets/useArchivedVibe64Sessions-C2DSq2Z4.js +0 -1
  279. package/dist/assets/useCommand-BzThFLYP.js +0 -1
  280. package/dist/assets/useEndpointResource-C2KD4Ub_.js +0 -1
  281. package/dist/assets/useVibe64ConversationLog-CMUlXJtU.js +0 -1
  282. package/dist/assets/useVibe64DatabaseTools-DBcKhm6B.js +0 -1
  283. package/dist/assets/useVibe64LearningMode-BPRWM5Rp.js +0 -28
  284. package/dist/assets/useVibe64LearningMode-PJUv0O25.css +0 -1
  285. package/dist/assets/useVibe64SessionData-CdtJbAIx.js +0 -1
  286. package/dist/assets/useVibe64SessionSelection-aR0f6xVT.js +0 -1
  287. package/dist/assets/useVibe64SystemGraph-DeTPBn0e.js +0 -1
  288. package/dist/assets/vibe64AssistantHost-Dgyz4TrT.js +0 -1
  289. package/dist/assets/vibe64ProjectScope.local-GOSMVDRi.js +0 -1
  290. package/dist/assets/vibe64RepositoryRealtime-t5Al8BlU.js +0 -1
  291. package/dist/assets/vibe64SessionFocus-CcN6Grgw.js +0 -1
  292. package/dist/assets/vibe64SessionFocus-ChabllPA.css +0 -1
  293. package/dist/assets/vibe64SessionToolDefinitions-BaO1DEup.js +0 -1
  294. /package/dist/assets/{vibe64RepositoryRealtime-D_mq1dFE.css → Vibe64TemporaryAiFixAction-D_mq1dFE.css} +0 -0
@@ -1,369 +1,377 @@
1
1
  #!/opt/vibe64/runtime-packs/node26/bin/node
2
2
  import { createRequire as __vibe64CreateRequire } from 'node:module';const require=__vibe64CreateRequire(import.meta.url);
3
- import{spawn as Ye,spawnSync as N}from"node:child_process";import{chmodSync as Je,chownSync as xe,closeSync as Ze,existsSync as $,
4
- lstatSync as fe,mkdirSync as _e,openSync as Qe,readFileSync as y,readSync as et,realpathSync as te,renameSync as Ne,rmSync as Te,
5
- unlinkSync as V,writeFileSync as oe}from"node:fs";import u from"node:path";import{createConnection as tt}from"node:net";
6
- import w from"node:process";var Ie=1024*1024,rt=64*1024,nt=10,ot=15e3,it="vibe64.exec-helper.payload",st=1,ct=new Set(["\
3
+ import{spawn as Ye,spawnSync as I}from"node:child_process";import{chmodSync as Je,chownSync as xe,closeSync as Ze,existsSync as T,
4
+ lstatSync as fe,mkdirSync as _e,openSync as Qe,readFileSync as h,readSync as et,realpathSync as te,renameSync as Ne,rmSync as Te,
5
+ unlinkSync as G,writeFileSync as oe}from"node:fs";import u from"node:path";import{createConnection as tt}from"node:net";
6
+ import w from"node:process";var Ie=1024*1024,rt=64*1024,nt=10,ot=15e3,it="vibe64.exec-helper.payload",st=1,at=new Set(["\
7
7
  account-auth-terminal","account-status","codex-app-server","create-system-user","deployment-service","enable-system-user",
8
8
  "github-api-command","github-toolchain","github-workflow-command","health-status","managed-execution","managed-service",
9
- "opencode-app-server","vibe64-command"]),je=new Set(["bash","gh","git"]),at=/^[A-Za-z_][A-Za-z0-9_]*$/u,ut=new Set(["BAS\
10
- H_ENV","ENV","GCONV_PATH","GETCONF_DIR","GLIBC_TUNABLES","HOSTALIASES","LOCALDOMAIN","LD_AUDIT","LD_LIBRARY_PATH","LD_PR\
11
- ELOAD","LOCPATH","MALLOC_TRACE","NIS_PATH","NLSPATH","NODE_OPTIONS","RESOLV_HOST_CONF","RES_OPTIONS","TZDIR"]),ie=["/opt\
12
- /vibe64/runtime-packs/policy-bin","/opt/vibe64/runtime-packs/operator-clis/bin","/opt/vibe64/runtime-packs/node26/bin","\
13
- /opt/vibe64/runtime-packs/git/bin","/opt/vibe64/runtime-packs/gh/bin","/opt/vibe64/runtime-packs/ripgrep/bin","/opt/vibe\
14
- 64/runtime-packs/bubblewrap/bin","/opt/vibe64/runtime-packs/bun/bin","/opt/vibe64/runtime-packs/php/bin","/opt/vibe64/ru\
15
- ntime-packs/composer/bin","/opt/vibe64/runtime-packs/mariadb/bin","/opt/vibe64/runtime-packs/postgresql/bin","/opt/vibe6\
16
- 4/runtime-packs/sqlite/bin","/opt/vibe64/runtime-packs/playwright/bin","/opt/vibe64/runtime-packs/guard-bin","/usr/local\
17
- /sbin","/usr/local/bin","/usr/sbin","/usr/bin","/sbin","/bin"].join(":"),lt=/^[a-z][a-z0-9_-]{0,61}[a-z0-9]$/u,T="vibe64",
18
- re="v64d_",mt="/var/lib/vibe64",dt=new Set(["root"]),pt=/^[a-f0-9]{8}-[a-f0-9]{4}-[1-8][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$/iu,
9
+ "opencode-app-server","vibe64-command","workspace-cache-command"]),je=new Set(["bash","gh","git"]),ct=/^[A-Za-z_][A-Za-z0-9_]*$/u,
10
+ ut=new Set(["BASH_ENV","ENV","GCONV_PATH","GETCONF_DIR","GLIBC_TUNABLES","HOSTALIASES","LOCALDOMAIN","LD_AUDIT","LD_LIBR\
11
+ ARY_PATH","LD_PRELOAD","LOCPATH","MALLOC_TRACE","NIS_PATH","NLSPATH","NODE_OPTIONS","RESOLV_HOST_CONF","RES_OPTIONS","TZ\
12
+ DIR"]),ie=["/opt/vibe64/runtime-packs/policy-bin","/opt/vibe64/runtime-packs/operator-clis/bin","/opt/vibe64/runtime-pac\
13
+ ks/node26/bin","/opt/vibe64/runtime-packs/git/bin","/opt/vibe64/runtime-packs/gh/bin","/opt/vibe64/runtime-packs/ripgrep\
14
+ /bin","/opt/vibe64/runtime-packs/bubblewrap/bin","/opt/vibe64/runtime-packs/bun/bin","/opt/vibe64/runtime-packs/php/bin",
15
+ "/opt/vibe64/runtime-packs/composer/bin","/opt/vibe64/runtime-packs/awsebcli/bin","/opt/vibe64/runtime-packs/cpp/bin","/\
16
+ opt/vibe64/runtime-packs/python/bin","/opt/vibe64/runtime-packs/ruby/bin","/opt/vibe64/runtime-packs/go/bin","/opt/vibe6\
17
+ 4/runtime-packs/java/bin","/opt/vibe64/runtime-packs/kotlin/bin","/opt/vibe64/runtime-packs/csharp/bin","/opt/vibe64/run\
18
+ time-packs/rust/bin","/opt/vibe64/runtime-packs/mariadb/bin","/opt/vibe64/runtime-packs/postgresql/bin","/opt/vibe64/run\
19
+ time-packs/sqlite/bin","/opt/vibe64/runtime-packs/playwright/bin","/opt/vibe64/runtime-packs/guard-bin","/usr/local/sbin",
20
+ "/usr/local/bin","/usr/sbin","/usr/bin","/sbin","/bin"].join(":"),mt=/^[a-z][a-z0-9_-]{0,61}[a-z0-9]$/u,j="vibe64",re="v\
21
+ 64d_",lt="/var/lib/vibe64",dt=new Set(["root"]),pt=/^[a-f0-9]{8}-[a-f0-9]{4}-[1-8][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$/iu,
19
22
  ft=new Set(["assistant","browser","control","job","preview","service","terminal"]),wt=new Set(["capture","detached","pty"]),
20
- z=64*1024*1024,Re=1024*1024*1024*1024,yt=256*1024*1024,we=1024*1024*1024*1024,de=8,pe=8192,gt=15e3;import.meta.main&&ht().
23
+ F=64*1024*1024,$e=1024*1024*1024*1024,yt=256*1024*1024,we=1024*1024*1024*1024,de=8,pe=8192,gt=15e3;import.meta.main&&ht().
21
24
  catch(e=>{w.stderr.write(`${String(e?.message||e)}
22
25
  `),w.exit(2)});async function ht(){if(w.argv[2]==="run-managed"){await bt(w.argv[3]||"");return}if(w.argv[2]!=="execute")
23
26
  throw new Error("Usage: vibe64-exec-helper execute [payload-json-file]");let e=Jt(w.argv[3]||"");Lt(e);let t=String(e.operation||
24
- "").trim();if(!ct.has(t))throw new Error("Vibe64 exec helper rejected an unknown operation.");if(t==="deployment-service"){
25
- Ht(e);return}if(t==="managed-service"){Ft(e);return}if(t==="managed-execution"){St(e,w.argv[3]||"");return}let r=_(e.username);
27
+ "").trim();if(!at.has(t))throw new Error("Vibe64 exec helper rejected an unknown operation.");if(t==="deployment-service"){
28
+ Ht(e);return}if(t==="managed-service"){Kt(e);return}if(t==="managed-execution"){St(e,w.argv[3]||"");return}let r=N(e.username);
26
29
  if(t==="create-system-user"||t==="enable-system-user"){Wt(t,e,r);return}Se(r);let n=String(e.command||"").trim();if(!je.
27
30
  has(n))throw new Error("Vibe64 exec helper rejected an unknown command.");let o=X(r);ne("uid",e.uid,o.uid),ne("gid",e.gid,
28
- o.gid);let i=q();Fe(i,r),Ue(o.username,T);let s=ze(e.cwd||"",i.username,{operation:t,targetUser:o}),c=be(e.env||{},o,i.username,
29
- t),a=Array.isArray(e.args)?e.args.map(p=>String(p)):[],l=e.inputBase64?Buffer.from(String(e.inputBase64),"base64"):void 0;
30
- w.umask(7);let d=Et(o,n,a,{cwd:s,env:c,...l===void 0?{stdio:"inherit"}:{input:l,stdio:["pipe","inherit","inherit"]}});if(d.
31
- error)throw d.error;w.exit(typeof d.status=="number"?d.status:1)}function Et(e,t,r,n){return N("/usr/sbin/runuser",["-u",
31
+ o.gid);let i=q();Ke(i,r),Ue(o.username,j);let s=Fe(e.cwd||"",i.username,{operation:t,targetUser:o}),a=be(e.env||{},o,i.username,
32
+ t),c=Array.isArray(e.args)?e.args.map(d=>String(d)):[],m=e.inputBase64?Buffer.from(String(e.inputBase64),"base64"):void 0;
33
+ w.umask(7);let p=Et(o,n,c,{cwd:s,env:a,...m===void 0?{stdio:"inherit"}:{input:m,stdio:["pipe","inherit","inherit"]}});if(p.
34
+ error)throw p.error;w.exit(typeof p.status=="number"?p.status:1)}function Et(e,t,r,n){return I("/usr/sbin/runuser",["-u",
32
35
  e.username,"--","/usr/bin/env","--",`PATH=${n.env.PATH}`,t,...r],{...n,env:{...n.env,PATH:ie}})}function St(e={},t=""){let r=q();
33
- vt(t,r),ce(T);let n=String(e.action||"").trim();if(n.startsWith("workflow-")){let A=Ot(e,r);w.stdout.write(`${JSON.stringify(
34
- A)}
35
- `),A.ok!==!0&&(w.exitCode=1);return}let o=W(e.executionId),i=De(o,r);if(n==="inspect"){Pt(i,o,r);return}if(n==="stop"){Gt(
36
+ vt(t,r),ae(j);let n=String(e.action||"").trim();if(n.startsWith("workflow-")){let O=Ot(e,r);w.stdout.write(`${JSON.stringify(
37
+ O)}
38
+ `),O.ok!==!0&&(w.exitCode=1);return}let o=W(e.executionId),i=De(o,r);if(n==="inspect"){Pt(i,o,r);return}if(n==="stop"){Gt(
36
39
  i,o,r);return}if(n!=="start")throw new Error("Vibe64 exec helper rejected an unknown managed execution action.");let s=It(
37
- e.mode),c=Tt(e.kind),a=String(e.lifecycle||"").trim();if(a!==(s==="capture"?"finite":s==="pty"?"interactive":"service"))
38
- throw new Error("Vibe64 exec helper rejected a managed execution lifecycle mismatch.");let d=$e(e.controllerLeaseName,a),
39
- p=Nt(e,r),m=String(e.commandOperation||"").trim(),f=ze(e.cwd||"",r.username,{operation:m,targetUser:p}),g=String(e.command||
40
+ e.mode),a=Tt(e.kind),c=String(e.lifecycle||"").trim();if(c!==(s==="capture"?"finite":s==="pty"?"interactive":"service"))
41
+ throw new Error("Vibe64 exec helper rejected a managed execution lifecycle mismatch.");let p=Re(e.controllerLeaseName,c),
42
+ d=Nt(e,r),l=String(e.commandOperation||"").trim(),f=Fe(e.cwd||"",r.username,{operation:l,targetUser:d}),g=String(e.command||
40
43
  "").trim();if(!g||/[\r\n]/u.test(g))throw new Error("Vibe64 exec helper rejected an invalid managed execution command.");
41
- if(p.username!==r.username&&!je.has(u.basename(g)))throw new Error("Vibe64 exec helper rejected an unsupported real-user\
42
- managed command.");let S=Array.isArray(e.args)?e.args.map(A=>String(A)):[],j=be(e.env||{},p,r.username,m),b="";if(e.releaseEnvironmentFile){
43
- if(s!=="capture"||p.username!==r.username)throw new Error("Release environment requires finite owner execution.");b=ee(e.
44
- releaseEnvironmentFile,r,"environmentFile");let A=fe(b),C=u.join(u.dirname(u.dirname(b)),"workspace");if(u.basename(b)!==
45
- "environment"||u.basename(u.dirname(b))!=="service"||!A.isFile()||A.uid!==r.uid||(A.mode&63)!==0||te(b)!==b||te(f)!==f||
46
- f!==C&&U(C,f).length===0)throw new Error("Release environment must belong to the selected private release.")}let G=B(e.memoryMaxBytes,
47
- z,Re,"memory limit"),P=B(e.tasksMax,de,pe,"task limit"),H=B(e.workMemoryMaxBytes,yt,we,"work-slice memory limit"),v=B(e.
48
- workTasksMax,de,pe,"work-slice task limit");if(G>H||P>v)throw new Error("Vibe64 exec helper rejected an execution limit \
49
- above its work-slice limit.");let x=he(r);if(e.workflow){let A=Ce(e.workflow,r),C=D(A);if(C.activeState!=="active"||!C.controlGroup||
50
- C.finishedAt)throw new Error("Vibe64 exec helper rejected an execution without its active workflow group.");if(G>C.memoryMaxBytes||
51
- P>C.tasksMax)throw new Error("Vibe64 exec helper rejected an execution limit above its workflow limit.");x=A.unitName}else
52
- Mt(r,{memoryMaxBytes:H,tasksMax:v});jt(r);let J=Ee(r,o),Z=u.join(J,"command.json");_e(J,{mode:448,recursive:!0}),xe(J,p.
53
- uid,p.gid),oe(Z,`${JSON.stringify({args:S,command:g,controllerLeaseName:d,cwd:f,env:j,inputBase64:String(e.inputBase64||
54
- ""),inputPresent:e.inputPresent===!0,...b?{releaseEnvironment:!0}:{},executionId:o,schema:"vibe64.managed-execution.comm\
44
+ if(d.username!==r.username&&!je.has(u.basename(g)))throw new Error("Vibe64 exec helper rejected an unsupported real-user\
45
+ managed command.");let x=Array.isArray(e.args)?e.args.map(O=>String(O)):[],M=be(e.env||{},d,r.username,l),y="";if(e.releaseEnvironmentFile){
46
+ if(s!=="capture"||d.username!==r.username)throw new Error("Release environment requires finite owner execution.");y=ee(e.
47
+ releaseEnvironmentFile,r,"environmentFile");let O=fe(y),B=u.join(u.dirname(u.dirname(y)),"workspace");if(u.basename(y)!==
48
+ "environment"||u.basename(u.dirname(y))!=="service"||!O.isFile()||O.uid!==r.uid||(O.mode&63)!==0||te(y)!==y||te(f)!==f||
49
+ f!==B&&C(B,f).length===0)throw new Error("Release environment must belong to the selected private release.")}let D=U(e.memoryMaxBytes,
50
+ F,$e,"memory limit"),V=U(e.tasksMax,de,pe,"task limit"),H=U(e.workMemoryMaxBytes,yt,we,"work-slice memory limit"),v=U(e.
51
+ workTasksMax,de,pe,"work-slice task limit");if(D>H||V>v)throw new Error("Vibe64 exec helper rejected an execution limit \
52
+ above its work-slice limit.");let k=he(r);if(e.workflow){let O=Ce(e.workflow,r),B=P(O);if(B.activeState!=="active"||!B.controlGroup||
53
+ B.finishedAt)throw new Error("Vibe64 exec helper rejected an execution without its active workflow group.");if(D>B.memoryMaxBytes||
54
+ V>B.tasksMax)throw new Error("Vibe64 exec helper rejected an execution limit above its workflow limit.");k=O.unitName}else
55
+ Mt(r,{memoryMaxBytes:H,tasksMax:v});jt(r);let J=Ee(r,o),Z=u.join(J,"command.json");_e(J,{mode:448,recursive:!0}),xe(J,d.
56
+ uid,d.gid),oe(Z,`${JSON.stringify({args:x,command:g,controllerLeaseName:p,cwd:f,env:M,inputBase64:String(e.inputBase64||
57
+ ""),inputPresent:e.inputPresent===!0,...y?{releaseEnvironment:!0}:{},executionId:o,schema:"vibe64.managed-execution.comm\
55
58
  and",schemaVersion:1})}
56
- `,{flag:"wx",mode:384}),Je(Z,384),xe(Z,p.uid,p.gid);let Xe=u.resolve(w.argv[1]),qe=["--quiet",`--unit=${i}`,"--service-t\
57
- ype=exec",`--slice=${x}`,`--property=Description=Vibe64 ${c} execution`,`--property=User=${p.username}`,`--property=Grou\
58
- p=${T}`,"--property=SupplementaryGroups=nix-users","--property=UMask=0007",`--property=WorkingDirectory=${f}`,...b?[`--p\
59
- roperty=EnvironmentFile=${b}`]:[],"--property=KillMode=control-group","--property=ExitType=cgroup","--property=OOMPolicy\
59
+ `,{flag:"wx",mode:384}),Je(Z,384),xe(Z,d.uid,d.gid);let Xe=u.resolve(w.argv[1]),qe=["--quiet",`--unit=${i}`,"--service-t\
60
+ ype=exec",`--slice=${k}`,`--property=Description=Vibe64 ${a} execution`,`--property=User=${d.username}`,`--property=Grou\
61
+ p=${j}`,"--property=SupplementaryGroups=nix-users","--property=UMask=0007",`--property=WorkingDirectory=${f}`,...y?[`--p\
62
+ roperty=EnvironmentFile=${y}`]:[],"--property=KillMode=control-group","--property=ExitType=cgroup","--property=OOMPolicy\
60
63
  =stop","--property=MemoryAccounting=yes","--property=IOAccounting=yes","--property=TasksAccounting=yes",`--property=Memo\
61
- ryMax=${G}`,`--property=TasksMax=${P}`,"--property=TimeoutStopSec=10s",...s==="capture"?["--wait","--pipe"]:[],...s==="p\
62
- ty"?["--wait","--pty"]:[],Xe,"run-managed",Z],L=N("systemd-run",qe,{stdio:"inherit"});if((s!=="detached"||L.error||L.status!==
64
+ ryMax=${D}`,`--property=TasksMax=${V}`,"--property=TimeoutStopSec=10s",...s==="capture"?["--wait","--pipe"]:[],...s==="p\
65
+ ty"?["--wait","--pty"]:[],Xe,"run-managed",Z],L=I("systemd-run",qe,{stdio:"inherit"});if((s!=="detached"||L.error||L.status!==
63
66
  0)&&Te(J,{force:!0,recursive:!0}),L.error)throw L.error;w.exit(typeof L.status=="number"?L.status:1)}function vt(e="",t={}){
64
- let r=String(e||"").trim();if(!r)return;let n=u.resolve(r),o=u.join(Y(t.username),"managed-execution-payloads");if(U(o,n).
65
- length!==1)throw new Error("Vibe64 exec helper rejected an unsafe managed execution payload path.");V(n)}async function bt(e=""){
66
- let t=u.resolve(String(e||"")),r=y(t,"utf8");V(t);let n=JSON.parse(r);if(n?.schema!=="vibe64.managed-execution.command"||
67
+ let r=String(e||"").trim();if(!r)return;let n=u.resolve(r),o=u.join(Y(t.username),"managed-execution-payloads");if(C(o,n).
68
+ length!==1)throw new Error("Vibe64 exec helper rejected an unsafe managed execution payload path.");G(n)}async function bt(e=""){
69
+ let t=u.resolve(String(e||"")),r=h(t,"utf8");G(t);let n=JSON.parse(r);if(n?.schema!=="vibe64.managed-execution.command"||
67
70
  n?.schemaVersion!==1)throw new Error("Vibe64 managed execution runner rejected an invalid payload.");let o=String(n.command||
68
- "").trim();if(!o||/[\r\n]/u.test(o))throw new Error("Vibe64 managed execution runner rejected an invalid command.");let i=$e(
69
- n.controllerLeaseName,n.controllerLeaseName?"service":""),s=i?await xt(i):null;w.umask(7);let c=null,a=null,l=!1,d=()=>{
70
- l=!0,c&&a===null&&(a=Me(c))};s?.once("close",d);try{c=Ye(o,Array.isArray(n.args)?n.args.map(String):[],{cwd:String(n.cwd||
71
- "/"),detached:!!s,env:n.releaseEnvironment===!0?be({...w.env,...n.env},{username:n.env.USER,home:n.env.HOME},n.env.USER):
72
- n.env&&typeof n.env=="object"&&!Array.isArray(n.env)?n.env:{},stdio:n.inputPresent===!0?["pipe","inherit","inherit"]:"in\
73
- herit"}),n.inputPresent===!0&&c.stdin.end(Buffer.from(String(n.inputBase64||""),"base64")),l&&(a=Me(c));let p=await new Promise(
74
- (f,g)=>{let S="";c.once("exit",()=>{S=new Date().toISOString()}),c.once("error",g),c.once("close",(j,b)=>f({signal:b,status:j,
75
- exitObservedAt:S}))}),m=typeof p.status=="number"?p.status:1;Ct(u.dirname(t),{...Dt(),executionId:W(n.executionId),exitObservedAt:p.
76
- exitObservedAt,execMainCode:p.signal?"killed":"exited",execMainStatus:p.signal||String(m),result:p.signal?"signal":m===0?
77
- "success":"exit-code",signal:String(p.signal||"")}),w.exitCode=m}finally{a!==null&&clearTimeout(a),s?.off("close",d),s?.
78
- destroy()}}function $e(e="",t=""){let r=String(e||"");if(t!=="service"){if(r)throw new Error("Vibe64 exec helper rejecte\
79
- d a controller lease on a finite execution.");return""}if(!/^\0vibe64-resource-controller-[a-z][a-z0-9-]{0,62}$/u.test(r))
80
- throw new Error("Vibe64 exec helper rejected an invalid managed service controller lease.");return r}function xt(e=""){return new Promise(
81
- (t,r)=>{let n=tt({path:e}),o=setTimeout(()=>{n.destroy(),r(new Error("Vibe64 managed service could not attach to its con\
82
- troller lease."))},3e3);o.unref?.(),n.once("connect",()=>{clearTimeout(o),n.removeListener("error",i),n.on("error",()=>n.
83
- destroy()),t(n)}),n.once("error",i);function i(s){clearTimeout(o),n.destroy(),r(new Error(`Vibe64 managed service contro\
84
- ller lease is unavailable: ${s?.code||s}`))}})}function Me(e=null){ke(e,"SIGTERM");let t=setTimeout(()=>ke(e,"SIGKILL"),
85
- 5e3);return t.unref?.(),t}function ke(e=null,t="SIGTERM"){let r=Number(e?.pid);if(!(!Number.isSafeInteger(r)||r<=1))try{
86
- w.kill(-r,t)}catch(n){if(n?.code==="ESRCH")return;try{e.kill(t)}catch(o){o?.code!=="ESRCH"&&w.stderr.write(`Vibe64 manag\
87
- ed service process tree could not be stopped.
88
- `)}}}function Mt(e={},{memoryMaxBytes:t=0,tasksMax:r=0}={}){let n=he(e);E("systemctl",["start",n]),E("systemctl",["set-p\
71
+ "").trim();if(!o||/[\r\n]/u.test(o))throw new Error("Vibe64 managed execution runner rejected an invalid command.");let i=Re(
72
+ n.controllerLeaseName,n.controllerLeaseName?"service":""),s=i?await xt(i):null;w.umask(7);let a=null,c=null,m=!1,p=()=>{
73
+ m=!0,a&&c===null&&(c=Me(a))};s?.once("close",p);let d=new Date().toISOString();try{a=Ye(o,Array.isArray(n.args)?n.args.map(
74
+ String):[],{cwd:String(n.cwd||"/"),detached:!!s,env:n.releaseEnvironment===!0?be({...w.env,...n.env},{username:n.env.USER,
75
+ home:n.env.HOME},n.env.USER):n.env&&typeof n.env=="object"&&!Array.isArray(n.env)?n.env:{},stdio:n.inputPresent===!0?["p\
76
+ ipe","inherit","inherit"]:"inherit"}),n.inputPresent===!0&&a.stdin.end(Buffer.from(String(n.inputBase64||""),"base64")),
77
+ m&&(c=Me(a));let l=await new Promise((g,x)=>{let M="";a.once("exit",()=>{M=new Date().toISOString()}),a.once("error",x),
78
+ a.once("close",(y,D)=>g({signal:D,status:y,exitObservedAt:M}))}),f=typeof l.status=="number"?l.status:1;Ct(u.dirname(t),
79
+ {...Dt(),executionId:W(n.executionId),startedAt:d,exitObservedAt:l.exitObservedAt,execMainCode:l.signal?"killed":"exited",
80
+ execMainStatus:l.signal||String(f),result:l.signal?"signal":f===0?"success":"exit-code",signal:String(l.signal||"")}),w.
81
+ exitCode=f}finally{c!==null&&clearTimeout(c),s?.off("close",p),s?.destroy()}}function Re(e="",t=""){let r=String(e||"");
82
+ if(t!=="service"){if(r)throw new Error("Vibe64 exec helper rejected a controller lease on a finite execution.");return""}
83
+ if(!/^\0vibe64-resource-controller-[a-z][a-z0-9-]{0,62}$/u.test(r))throw new Error("Vibe64 exec helper rejected an inval\
84
+ id managed service controller lease.");return r}function xt(e=""){return new Promise((t,r)=>{let n=tt({path:e}),o=setTimeout(
85
+ ()=>{n.destroy(),r(new Error("Vibe64 managed service could not attach to its controller lease."))},3e3);o.unref?.(),n.once(
86
+ "connect",()=>{clearTimeout(o),n.removeListener("error",i),n.on("error",()=>n.destroy()),t(n)}),n.once("error",i);function i(s){
87
+ clearTimeout(o),n.destroy(),r(new Error(`Vibe64 managed service controller lease is unavailable: ${s?.code||s}`))}})}function Me(e=null){
88
+ ke(e,"SIGTERM");let t=setTimeout(()=>ke(e,"SIGKILL"),5e3);return t.unref?.(),t}function ke(e=null,t="SIGTERM"){let r=Number(
89
+ e?.pid);if(!(!Number.isSafeInteger(r)||r<=1))try{w.kill(-r,t)}catch(n){if(n?.code==="ESRCH")return;try{e.kill(t)}catch(o){
90
+ o?.code!=="ESRCH"&&w.stderr.write(`Vibe64 managed service process tree could not be stopped.
91
+ `)}}}function Mt(e={},{memoryMaxBytes:t=0,tasksMax:r=0}={}){let n=he(e);S("systemctl",["start",n]),S("systemctl",["set-p\
89
92
  roperty","--runtime",n,`MemoryMax=${t}`,`TasksMax=${r}`,"MemoryAccounting=yes","IOAccounting=yes","TasksAccounting=yes"])}
90
- function Ce(e={},t={}){let r=W(e.id);for(let c of[e.projectKey,e.sessionKey])if(typeof c!="string"||!/^[a-f0-9]{64}$/u.test(
91
- c))throw new Error("Vibe64 exec helper rejected an invalid workflow accounting identity.");let n=_(t.username);if(!n.startsWith(
92
- re))throw new Error("Managed workflow accounting requires a workspace daemon owner.");let o=I(n);if(!/^[a-z](?:[a-z0-9-]{0,61}[a-z0-9])?$/u.
93
+ function Ce(e={},t={}){let r=W(e.id);for(let a of[e.projectKey,e.sessionKey])if(typeof a!="string"||!/^[a-f0-9]{64}$/u.test(
94
+ a))throw new Error("Vibe64 exec helper rejected an invalid workflow accounting identity.");let n=N(t.username);if(!n.startsWith(
95
+ re))throw new Error("Managed workflow accounting requires a workspace daemon owner.");let o=$(n);if(!/^[a-z](?:[a-z0-9-]{0,61}[a-z0-9])?$/u.
93
96
  test(o))throw new Error("Invalid managed workflow workspace identity.");let i=`vibe64-${o}-work-p${e.projectKey}.slice`,
94
97
  s=`${i.slice(0,-6)}-s${e.sessionKey}.slice`;return{id:r,workspace:o,projectKey:e.projectKey,sessionKey:e.sessionKey,projectUnit:i,
95
98
  sessionUnit:s,unitName:`${s.slice(0,-6)}-w${r.replaceAll("-","")}.slice`}}function ye(e){return u.join("/run/vibe64-work\
96
- flows",e.workspace,`${e.id}.json`)}function kt(e){try{let t=JSON.parse(y(ye(e),"utf8"));if(t.schema!=="vibe64.managed-wo\
99
+ flows",e.workspace,`${e.id}.json`)}function kt(e){try{let t=JSON.parse(h(ye(e),"utf8"));if(t.schema!=="vibe64.managed-wo\
97
100
  rkflow.result.v1"||t.unitName!==e.unitName||t.id!==e.id)throw new Error("Invalid managed workflow result identity.");return t}catch(t){
98
101
  if(t.code==="ENOENT")return null;throw t}}function At(e,t){let r=ye(e);for(let i of["/run/vibe64-workflows",u.dirname(r)]){
99
- try{_e(i,{mode:448})}catch(c){if(c.code!=="EEXIST")throw c}let s=fe(i);if(!s.isDirectory()||s.isSymbolicLink()||s.uid!==
102
+ try{_e(i,{mode:448})}catch(a){if(a.code!=="EEXIST")throw a}let s=fe(i);if(!s.isDirectory()||s.isSymbolicLink()||s.uid!==
100
103
  0||(s.mode&63)!==0)throw new Error("Unsafe managed workflow result directory.")}let n=`${r}.tmp-${w.pid}`,o=Qe(n,"wx",384);
101
104
  try{try{oe(o,`${JSON.stringify({...t,schema:"vibe64.managed-workflow.result.v1"})}
102
- `)}finally{Ze(o)}Ne(n,r)}catch(i){try{V(n)}catch(s){if(s.code!=="ENOENT")throw new AggregateError([i,s],"Workflow receip\
103
- t write and cleanup failed.")}throw i}}function D(e){let t=M("systemctl",["show",e.unitName,"--no-pager","--property=Loa\
105
+ `)}finally{Ze(o)}Ne(n,r)}catch(i){try{G(n)}catch(s){if(s.code!=="ENOENT")throw new AggregateError([i,s],"Workflow receip\
106
+ t write and cleanup failed.")}throw i}}function P(e){let t=A("systemctl",["show",e.unitName,"--no-pager","--property=Loa\
104
107
  dState,ActiveState,ControlGroup,MemoryMax,TasksMax"]),r=Object.fromEntries(String(t.stdout||"").trim().split(`
105
- `).map(s=>{let c=s.indexOf("=");return[s.slice(0,c),s.slice(c+1)]})),n=String(r.ControlGroup||"");if(n&&(u.posix.basename(
108
+ `).map(s=>{let a=s.indexOf("=");return[s.slice(0,a),s.slice(a+1)]})),n=String(r.ControlGroup||"");if(n&&(u.posix.basename(
106
109
  n)!==e.unitName||!n.includes(`/vibe64-${e.workspace}-work.slice/`)))throw new Error("Managed workflow group does not bel\
107
- ong to its workspace.");let o={id:e.id,unitName:e.unitName,activeState:r.ActiveState||"unknown",controlGroup:n,memoryMaxBytes:h(
108
- r.MemoryMax),tasksMax:h(r.TasksMax),...ge(n?u.join("/sys/fs/cgroup",n):"")};t.status===0&&r.ActiveState==="inactive"&&!n&&
109
- (o.scopeEmpty=!0);let i=kt(e);return i?{...i,activeState:o.activeState,controlGroup:o.controlGroup}:o}function h(e){return typeof e==
110
- "string"&&/^[0-9]+$/u.test(e.trim())&&Number.isSafeInteger(Number(e))?Number(e):null}function ge(e=""){function t(c){if(!e)
111
- return"";try{return y(u.join(e,c),"utf8")}catch(a){if(a.code==="ENOENT"||a.code==="ENODEV")return"";throw a}}function r(c){
112
- return Object.fromEntries(t(c).trim().split(`
113
- `).map(a=>{let[l,d]=a.trim().split(/\s+/u);return[l,h(d)]}))}let n=r("memory.events"),o=r("memory.stat"),i=r("cgroup.eve\
110
+ ong to its workspace.");let o={id:e.id,unitName:e.unitName,activeState:r.ActiveState||"unknown",controlGroup:n,memoryMaxBytes:E(
111
+ r.MemoryMax),tasksMax:E(r.TasksMax),...ge(n?u.join("/sys/fs/cgroup",n):"")};t.status===0&&r.ActiveState==="inactive"&&!n&&
112
+ (o.scopeEmpty=!0);let i=kt(e);return i?{...i,activeState:o.activeState,controlGroup:o.controlGroup}:o}function E(e){return typeof e==
113
+ "string"&&/^[0-9]+$/u.test(e.trim())&&Number.isSafeInteger(Number(e))?Number(e):null}function ge(e=""){function t(a){if(!e)
114
+ return"";try{return h(u.join(e,a),"utf8")}catch(c){if(c.code==="ENOENT"||c.code==="ENODEV")return"";throw c}}function r(a){
115
+ return Object.fromEntries(t(a).trim().split(`
116
+ `).map(c=>{let[m,p]=c.trim().split(/\s+/u);return[m,E(p)]}))}let n=r("memory.events"),o=r("memory.stat"),i=r("cgroup.eve\
114
117
  nts"),s=t("memory.pressure");return{sampledAt:new Date().toISOString(),sampledMonotonicMs:Number(w.hrtime.bigint()/1000000n),
115
- scopeEmpty:i.populated===0?!0:i.populated===1?!1:null,memoryCurrentBytes:h(t("memory.current")),memoryPeakBytes:h(t("mem\
116
- ory.peak")),memorySwapCurrentBytes:h(t("memory.swap.current")),memoryAnonBytes:o.anon??null,memoryFileBytes:o.file??null,
117
- memoryKernelBytes:o.kernel??null,swapInPages:o.pswpin??null,swapOutPages:o.pswpout??null,memoryPressureSomeTotalUsec:h(/^some\s+.*\btotal=([0-9]+)(?:\s|$)/mu.
118
- exec(s)?.[1]),oomCount:n.oom??null,oomKillCount:n.oom_kill??null,limitHitCount:n.max??null,reclaimCount:n.high??null,tasksCurrent:h(
118
+ scopeEmpty:i.populated===0?!0:i.populated===1?!1:null,memoryCurrentBytes:E(t("memory.current")),memoryPeakBytes:E(t("mem\
119
+ ory.peak")),memorySwapCurrentBytes:E(t("memory.swap.current")),memoryAnonBytes:o.anon??null,memoryFileBytes:o.file??null,
120
+ memoryKernelBytes:o.kernel??null,swapInPages:o.pswpin??null,swapOutPages:o.pswpout??null,memoryPressureSomeTotalUsec:E(/^some\s+.*\btotal=([0-9]+)(?:\s|$)/mu.
121
+ exec(s)?.[1]),oomCount:n.oom??null,oomKillCount:n.oom_kill??null,limitHitCount:n.max??null,reclaimCount:n.high??null,tasksCurrent:E(
119
122
  t("pids.current")),peakScope:"workflow-lifetime"}}function Ot(e,t){let r=Ce(e.workflow,t),n=String(e.action||"");if(n===
120
- "workflow-inspect")return{ok:!0,...D(r)};if(n==="workflow-grow"||n==="workflow-limits")return _t(e,r,t);if(n==="workflow\
121
- -forget"){let o=D(r);if(o.scopeEmpty!==!0||o.activeState!=="inactive")throw new Error("Only a completed workflow receipt\
122
- can be acknowledged.");try{V(ye(r))}catch(i){if(i.code!=="ENOENT")throw i}return{ok:!0,id:r.id}}if(n==="workflow-create"){
123
- let o=B(e.memoryMaxBytes,z,we,"workflow memory limit"),i=B(e.tasksMax,de,pe,"workflow task limit"),s=h(E("systemctl",["s\
123
+ "workflow-inspect")return{ok:!0,...P(r)};if(n==="workflow-grow"||n==="workflow-limits")return _t(e,r,t);if(n==="workflow\
124
+ -forget"){let o=P(r);if(o.scopeEmpty!==!0||o.activeState!=="inactive")throw new Error("Only a completed workflow receipt\
125
+ can be acknowledged.");try{G(ye(r))}catch(i){if(i.code!=="ENOENT")throw i}return{ok:!0,id:r.id}}if(n==="workflow-create"){
126
+ let o=U(e.memoryMaxBytes,F,we,"workflow memory limit"),i=U(e.tasksMax,de,pe,"workflow task limit"),s=E(S("systemctl",["s\
124
127
  how",he(t),"--property=MemoryMax","--value"]));if(s===null||o>s)throw new Error("Vibe64 exec helper rejected a workflow \
125
- above its proven work-slice memory limit.");let c=D(r);if(c.finishedAt)throw new Error("A completed workflow identity ca\
126
- nnot be reused.");if(c.activeState==="active"){if(c.memoryMaxBytes!==o||c.tasksMax!==i)throw new Error("An active workfl\
127
- ow cannot be reconfigured by retrying creation.");return{ok:!0,...c}}E("busctl",["--system","call","org.freedesktop.syst\
128
+ above its proven work-slice memory limit.");let a=P(r);if(a.finishedAt)throw new Error("A completed workflow identity ca\
129
+ nnot be reused.");if(a.activeState==="active"){if(a.memoryMaxBytes!==o||a.tasksMax!==i)throw new Error("An active workfl\
130
+ ow cannot be reconfigured by retrying creation.");return{ok:!0,...a}}S("busctl",["--system","call","org.freedesktop.syst\
128
131
  emd1","/org/freedesktop/systemd1","org.freedesktop.systemd1.Manager","StartTransientUnit","ssa(sv)a(sa(sv))",r.unitName,
129
132
  "fail","5","MemoryMax","t",String(o),"TasksMax","t",String(i),"MemoryAccounting","b","true","IOAccounting","b","true","T\
130
- asksAccounting","b","true","0"]),E("systemctl",["start",r.unitName]);let a=D(r);if(a.memoryMaxBytes!==o||a.tasksMax!==i||
131
- a.scopeEmpty!==!0)throw new Error("Managed workflow creation could not prove its limits and empty accounting group.");return{
132
- ok:!0,...a}}if(n==="workflow-finish"){let o=D(r);if(!o.finishedAt){if(o.scopeEmpty!==!0)return{ok:!1,code:"workflow_not_\
133
- empty",...o};At(r,{...o,finishedAt:new Date().toISOString()})}let i=M("systemctl",["stop",r.unitName]),s=D(r);if(s.activeState!==
133
+ asksAccounting","b","true","0"]),S("systemctl",["start",r.unitName]);let c=P(r);if(c.memoryMaxBytes!==o||c.tasksMax!==i||
134
+ c.scopeEmpty!==!0)throw new Error("Managed workflow creation could not prove its limits and empty accounting group.");return{
135
+ ok:!0,...c}}if(n==="workflow-finish"){let o=P(r);if(!o.finishedAt){if(o.scopeEmpty!==!0)return{ok:!1,code:"workflow_not_\
136
+ empty",...o};At(r,{...o,finishedAt:new Date().toISOString()})}let i=A("systemctl",["stop",r.unitName]),s=P(r);if(s.activeState!==
134
137
  "inactive"||s.controlGroup||s.scopeEmpty!==!0)throw new Error(String(i.stderr||"Managed workflow group did not stop.").trim());
135
138
  return{ok:!0,...s}}throw new Error("Vibe64 exec helper rejected an unknown workflow action.")}function ue(e,t,r,n){let o=Object.
136
- fromEntries(E("systemctl",["show",e,"--no-pager","--property=ActiveState,ControlGroup,MemoryMax"]).split(`
137
- `).map(a=>{let l=a.indexOf("=");return[a.slice(0,l),a.slice(l+1)]}));if(o.ActiveState!=="active"||o.ControlGroup!==t)throw new Error(
138
- "Memory growth requires the same active, owned accounting group.");let i=h(y(u.join("/sys/fs/cgroup",t,"memory.max"),"ut\
139
- f8")),s=h(o.MemoryMax);if(s===null||i!==Math.floor(s/r)*r)throw new Error("The effective memory limit could not be verif\
140
- ied.");let c=y(u.join("/sys/fs/cgroup",t,"memory.high"),"utf8").trim();if(c!=="max"&&(h(c)===null||n>Number(c)))throw Object.
139
+ fromEntries(S("systemctl",["show",e,"--no-pager","--property=ActiveState,ControlGroup,MemoryMax"]).split(`
140
+ `).map(c=>{let m=c.indexOf("=");return[c.slice(0,m),c.slice(m+1)]}));if(o.ActiveState!=="active"||o.ControlGroup!==t)throw new Error(
141
+ "Memory growth requires the same active, owned accounting group.");let i=E(h(u.join("/sys/fs/cgroup",t,"memory.max"),"ut\
142
+ f8")),s=E(o.MemoryMax);if(s===null||i!==Math.floor(s/r)*r)throw new Error("The effective memory limit could not be verif\
143
+ ied.");let a=h(u.join("/sys/fs/cgroup",t,"memory.high"),"utf8").trim();if(a!=="max"&&(E(a)===null||n>Number(a)))throw Object.
141
144
  assign(new Error("Memory growth is blocked by the target's memory.high limit."),{limitingGroup:{controlGroup:t,limit:"me\
142
- mory.high",maximumBytes:h(c),requestedBytes:n??null}});return{unitName:e,controlGroup:t,memoryMaxBytes:s,effectiveMemoryMaxBytes:i,
143
- memoryHighBytes:c==="max"?null:h(c)}}function le(e,t){let r=[];for(let n=u.posix.dirname(e);n!=="/";n=u.posix.dirname(n)){
144
- let o={controlGroup:n};for(let[i,s]of[["memory.max","memoryMaxBytes"],["memory.high","memoryHighBytes"]]){let c=y(u.join(
145
- "/sys/fs/cgroup",n,i),"utf8").trim(),a=c==="max"?null:h(c);if(c!=="max"&&(a===null||t>a))throw Object.assign(new Error(`\
146
- Memory growth is blocked by an ancestor ${i} limit.`),{limitingGroup:{controlGroup:n,limit:i,maximumBytes:a,requestedBytes:t}});
147
- o[s]=a}r.push(o)}return r}function _t(e,t,r){let n=e.action==="workflow-limits",o=!1,i=[],s=[],c=[],a=[],l=null;try{let d=D(
148
- t);if(d.activeState!=="active"||!d.controlGroup||d.finishedAt)throw new Error("Memory growth requires an active workflow\
149
- .");let p=B(e.memoryMaxBytes,z,we,"workflow memory limit");if(!Array.isArray(e.executions)||e.executions.length>128)throw new Error(
150
- "Memory growth requires a bounded list of owned executions.");if(l=h(E("getconf",["PAGESIZE"])),!l||l>z)throw new Error(
151
- "The kernel memory limit granularity is unavailable.");c=[{unitName:t.unitName,controlGroup:d.controlGroup,memoryMaxBytes:Math.
152
- floor(p/l)*l,expectedMemoryMaxBytes:e.expectedMemoryMaxBytes}];for(let m of e.executions){let f=De(m?.id,r);if(c.some(S=>S.
153
- unitName===f))throw new Error("Duplicate memory growth execution.");let g=B(m.memoryMaxBytes,z,Re,"execution memory limi\
154
- t");if(g>p)throw new Error("Execution memory growth exceeds its workflow allowance.");c.push({unitName:f,controlGroup:`${d.
155
- controlGroup}/${f}`,memoryMaxBytes:Math.floor(g/l)*l,expectedMemoryMaxBytes:m.expectedMemoryMaxBytes})}if(i=c.map(m=>ue(
156
- m.unitName,m.controlGroup,l,n?void 0:m.memoryMaxBytes)),n)return{ok:!0,id:t.id,pageSizeBytes:l,before:i,after:i,ancestors:le(
157
- d.controlGroup)};for(let[m,f]of c.entries())if(f.expectedMemoryMaxBytes!==i[m].memoryMaxBytes||f.memoryMaxBytes<i[m].effectiveMemoryMaxBytes)
158
- throw new Error("Memory growth cannot lower a live limit or apply to stale limits.");a=le(d.controlGroup,c[0].memoryMaxBytes);
159
- for(let[m,f]of c.entries())i[m].memoryMaxBytes!==f.memoryMaxBytes&&(o=!0,E("systemctl",["set-property","--runtime",f.unitName,
160
- `MemoryMax=${f.memoryMaxBytes}`]));if(s=c.map(m=>ue(m.unitName,m.controlGroup,l,m.memoryMaxBytes)),a=le(d.controlGroup,c[0].
161
- memoryMaxBytes),!s.every((m,f)=>m.memoryMaxBytes===c[f].memoryMaxBytes))throw new Error("Memory growth readback did not \
162
- match the requested limits.");return{ok:!0,id:t.id,changeState:o?"applied":"unchanged",pageSizeBytes:l,before:i,after:s,
163
- ancestors:a}}catch(d){let p="unchanged";return o&&(s=c.map(m=>{try{return ue(m.unitName,m.controlGroup,l)}catch{return null}}),
164
- p=s.some(m=>m===null)?"unknown":s.every((m,f)=>m.memoryMaxBytes===i[f].memoryMaxBytes)?"unchanged":"partial"),{ok:!1,id:t.
165
- id,code:"workflow_memory_growth_failed",changeState:p,error:String(d?.message||d),limitingGroup:d?.limitingGroup??null,pageSizeBytes:l,
166
- before:i,after:s,ancestors:a}}}function Nt(e={},t={}){let r=_(e.username||t.username),n=X(r);return ne("uid",e.uid,n.uid),
167
- ne("gid",e.gid,n.gid),n.username!==t.username&&(Se(n.username),Fe(t,n.username)),Ue(n.username,T),n}function W(e=""){let t=String(
145
+ mory.high",maximumBytes:E(a),requestedBytes:n??null}});return{unitName:e,controlGroup:t,memoryMaxBytes:s,effectiveMemoryMaxBytes:i,
146
+ memoryHighBytes:a==="max"?null:E(a)}}function me(e,t){let r=[];for(let n=u.posix.dirname(e);n!=="/";n=u.posix.dirname(n)){
147
+ let o={controlGroup:n};for(let[i,s]of[["memory.max","memoryMaxBytes"],["memory.high","memoryHighBytes"]]){let a=h(u.join(
148
+ "/sys/fs/cgroup",n,i),"utf8").trim(),c=a==="max"?null:E(a);if(a!=="max"&&(c===null||t>c))throw Object.assign(new Error(`\
149
+ Memory growth is blocked by an ancestor ${i} limit.`),{limitingGroup:{controlGroup:n,limit:i,maximumBytes:c,requestedBytes:t}});
150
+ o[s]=c}r.push(o)}return r}function _t(e,t,r){let n=e.action==="workflow-limits",o=!1,i=[],s=[],a=[],c=[],m=null;try{let p=P(
151
+ t);if(p.activeState!=="active"||!p.controlGroup||p.finishedAt)throw new Error("Memory growth requires an active workflow\
152
+ .");let d=U(e.memoryMaxBytes,F,we,"workflow memory limit");if(!Array.isArray(e.executions)||e.executions.length>128)throw new Error(
153
+ "Memory growth requires a bounded list of owned executions.");if(m=E(S("getconf",["PAGESIZE"])),!m||m>F)throw new Error(
154
+ "The kernel memory limit granularity is unavailable.");a=[{unitName:t.unitName,controlGroup:p.controlGroup,memoryMaxBytes:Math.
155
+ floor(d/m)*m,expectedMemoryMaxBytes:e.expectedMemoryMaxBytes}];for(let l of e.executions){let f=De(l?.id,r);if(a.some(x=>x.
156
+ unitName===f))throw new Error("Duplicate memory growth execution.");let g=U(l.memoryMaxBytes,F,$e,"execution memory limi\
157
+ t");if(g>d)throw new Error("Execution memory growth exceeds its workflow allowance.");a.push({unitName:f,controlGroup:`${p.
158
+ controlGroup}/${f}`,memoryMaxBytes:Math.floor(g/m)*m,expectedMemoryMaxBytes:l.expectedMemoryMaxBytes})}if(i=a.map(l=>ue(
159
+ l.unitName,l.controlGroup,m,n?void 0:l.memoryMaxBytes)),n)return{ok:!0,id:t.id,pageSizeBytes:m,before:i,after:i,ancestors:me(
160
+ p.controlGroup)};for(let[l,f]of a.entries())if(f.expectedMemoryMaxBytes!==i[l].memoryMaxBytes||f.memoryMaxBytes<i[l].effectiveMemoryMaxBytes)
161
+ throw new Error("Memory growth cannot lower a live limit or apply to stale limits.");c=me(p.controlGroup,a[0].memoryMaxBytes);
162
+ for(let[l,f]of a.entries())i[l].memoryMaxBytes!==f.memoryMaxBytes&&(o=!0,S("systemctl",["set-property","--runtime",f.unitName,
163
+ `MemoryMax=${f.memoryMaxBytes}`]));if(s=a.map(l=>ue(l.unitName,l.controlGroup,m,l.memoryMaxBytes)),c=me(p.controlGroup,a[0].
164
+ memoryMaxBytes),!s.every((l,f)=>l.memoryMaxBytes===a[f].memoryMaxBytes))throw new Error("Memory growth readback did not \
165
+ match the requested limits.");return{ok:!0,id:t.id,changeState:o?"applied":"unchanged",pageSizeBytes:m,before:i,after:s,
166
+ ancestors:c}}catch(p){let d="unchanged";return o&&(s=a.map(l=>{try{return ue(l.unitName,l.controlGroup,m)}catch{return null}}),
167
+ d=s.some(l=>l===null)?"unknown":s.every((l,f)=>l.memoryMaxBytes===i[f].memoryMaxBytes)?"unchanged":"partial"),{ok:!1,id:t.
168
+ id,code:"workflow_memory_growth_failed",changeState:d,error:String(p?.message||p),limitingGroup:p?.limitingGroup??null,pageSizeBytes:m,
169
+ before:i,after:s,ancestors:c}}}function Nt(e={},t={}){let r=N(e.username||t.username),n=X(r);return ne("uid",e.uid,n.uid),
170
+ ne("gid",e.gid,n.gid),n.username!==t.username&&(Se(n.username),Ke(t,n.username)),Ue(n.username,j),n}function W(e=""){let t=String(
168
171
  e||"").trim();if(!pt.test(t))throw new Error("Vibe64 exec helper rejected an invalid managed execution id.");return t.toLowerCase()}
169
172
  function Tt(e=""){let t=String(e||"").trim();if(!ft.has(t))throw new Error("Vibe64 exec helper rejected an unknown manag\
170
173
  ed execution kind.");return t}function It(e=""){let t=String(e||"").trim();if(!wt.has(t))throw new Error("Vibe64 exec he\
171
- lper rejected an unknown managed execution mode.");return t}function B(e,t,r,n="value"){let o=Number(e);if(!Number.isSafeInteger(
174
+ lper rejected an unknown managed execution mode.");return t}function U(e,t,r,n="value"){let o=Number(e);if(!Number.isSafeInteger(
172
175
  o)||o<t||o>r)throw new Error(`Vibe64 exec helper rejected an invalid managed execution ${n}.`);return o}function De(e="",t={}){
173
- return`vibe64-exec-${I(_(t.username))}-${W(e).replaceAll("-","")}.service`}function he(e={}){return`vibe64-${I(_(e.username))}\
174
- -work.slice`}function Ee(e={},t=""){return u.join(se(e),"executions",W(t))}function se(e={}){return`/run/vibe64-${I(_(e.
175
- username))}`}function jt(e={}){let t=se(e);E("install",["-d","-o",_(e.username),"-g",T,"-m","2750",t,u.join(t,"execution\
176
- s")])}function Rt(e={},t=""){return u.join(Ee(e,t),"result.json")}function $t(e={},t=""){let r=Rt(e,t);try{let n=JSON.parse(
177
- y(r,"utf8"));return n?.schema==="vibe64.managed-execution.result"&&n.schemaVersion===1&&n.executionId===W(t)?n:{}}catch(n){
176
+ return`vibe64-exec-${$(N(t.username))}-${W(e).replaceAll("-","")}.service`}function he(e={}){return`vibe64-${$(N(e.username))}\
177
+ -work.slice`}function Ee(e={},t=""){return u.join(se(e),"executions",W(t))}function se(e={}){return`/run/vibe64-${$(N(e.
178
+ username))}`}function jt(e={}){let t=se(e);S("install",["-d","-o",N(e.username),"-g",j,"-m","2750",t,u.join(t,"execution\
179
+ s")])}function $t(e={},t=""){return u.join(Ee(e,t),"result.json")}function Rt(e={},t=""){let r=$t(e,t);try{let n=JSON.parse(
180
+ h(r,"utf8"));return n?.schema==="vibe64.managed-execution.result"&&n.schemaVersion===1&&n.executionId===W(t)?n:{}}catch(n){
178
181
  if(n?.code==="ENOENT"||n instanceof SyntaxError)return{};throw n}}function Ct(e="",t={}){let r=u.join(e,"result.json"),n=`${r}\
179
182
  .tmp-${w.pid}`;oe(n,`${JSON.stringify({...t,schema:"vibe64.managed-execution.result",schemaVersion:1})}
180
- `,{flag:"wx",mode:384}),Ne(n,r)}function Dt(){let e=String(y("/proc/self/cgroup","utf8")||"").split(`
181
- `).find(s=>s.startsWith("0::")),t=String(e||"").slice(3).replace(/^\/+/,""),r=t?u.join("/sys/fs/cgroup",t):"";if(!r||!$(
183
+ `,{flag:"wx",mode:384}),Ne(n,r)}function Dt(){let e=String(h("/proc/self/cgroup","utf8")||"").split(`
184
+ `).find(s=>s.startsWith("0::")),t=String(e||"").slice(3).replace(/^\/+/,""),r=t?u.join("/sys/fs/cgroup",t):"";if(!r||!T(
182
185
  r))return{};let n=Ae(u.join(r,"cpu.stat")),o=Ae(u.join(r,"memory.events")),i=Bt(u.join(r,"io.stat"));return{resourceCounters:ge(
183
- r),cpuUsageNSec:String(Number(n.usage_usec||0)*1e3),ioReadBytes:String(i.readBytes),ioWriteBytes:String(i.writeBytes),memoryCurrent:K(
184
- u.join(r,"memory.current")),memoryPeak:K(u.join(r,"memory.peak")),memorySwapCurrent:K(u.join(r,"memory.swap.current")),oomKillCount:String(
185
- Number(o.oom_kill||0)),taskLimit:Be(r),tasksCurrent:K(u.join(r,"pids.current")),tasksPeak:K(u.join(r,"pids.peak"))}}function K(e=""){
186
- try{let t=String(y(e,"utf8")||"0").trim();return/^[0-9]+$/u.test(t)?t:"0"}catch(t){if(t?.code==="ENOENT")return"0";throw t}}
187
- function Be(e,t=y){if(!e)return null;try{let r=c=>{try{return h(/^max\s+(\d+)$/mu.exec(t(u.join(e,c),"utf8"))?.[1])}catch{
186
+ r),cpuUsageNSec:String(Number(n.usage_usec||0)*1e3),ioReadBytes:String(i.readBytes),ioWriteBytes:String(i.writeBytes),memoryCurrent:z(
187
+ u.join(r,"memory.current")),memoryPeak:z(u.join(r,"memory.peak")),memorySwapCurrent:z(u.join(r,"memory.swap.current")),oomKillCount:String(
188
+ Number(o.oom_kill||0)),taskLimit:Be(r),tasksCurrent:z(u.join(r,"pids.current")),tasksPeak:z(u.join(r,"pids.peak"))}}function z(e=""){
189
+ try{let t=String(h(e,"utf8")||"0").trim();return/^[0-9]+$/u.test(t)?t:"0"}catch(t){if(t?.code==="ENOENT")return"0";throw t}}
190
+ function Be(e,t=h){if(!e)return null;try{let r=a=>{try{return E(/^max\s+(\d+)$/mu.exec(t(u.join(e,a),"utf8"))?.[1])}catch{
188
191
  return null}},n=r("pids.events.local"),o=r("pids.events"),i=n>0?n:o;if(!(i>0))return null;let s=t("/proc/self/mountinfo",
189
192
  "utf8").split(`
190
- `).find(c=>c.split(" ")[4]==="/sys/fs/cgroup"&&c.includes(" - cgroup2 "));return{source:"cgroup-pids-events",count:i,scope:n>
193
+ `).find(a=>a.split(" ")[4]==="/sys/fs/cgroup"&&a.includes(" - cgroup2 "));return{source:"cgroup-pids-events",count:i,scope:n>
191
194
  0&&s&&!s.split(/[ ,]/u).includes("pids_localevents")?"execution":"unknown"}}catch{return null}}function Ae(e=""){try{return Object.
192
- fromEntries(String(y(e,"utf8")||"").split(/\r?\n/u).flatMap(t=>{let[r,n]=t.trim().split(/\s+/u);return r&&/^[0-9]+$/u.test(
193
- n||"")?[[r,n]]:[]}))}catch(t){if(t?.code==="ENOENT")return{};throw t}}function Bt(e=""){let t="";try{t=y(e,"utf8")}catch(o){
195
+ fromEntries(String(h(e,"utf8")||"").split(/\r?\n/u).flatMap(t=>{let[r,n]=t.trim().split(/\s+/u);return r&&/^[0-9]+$/u.test(
196
+ n||"")?[[r,n]]:[]}))}catch(t){if(t?.code==="ENOENT")return{};throw t}}function Bt(e=""){let t="";try{t=h(e,"utf8")}catch(o){
194
197
  if(o?.code==="ENOENT")return{readBytes:0,writeBytes:0};throw o}let r=0,n=0;for(let o of String(t||"").split(/\r?\n/u))for(let i of o.
195
- trim().split(/\s+/u).slice(1)){let[s,c]=i.split("=");s==="rbytes"&&(r+=Number(c||0)),s==="wbytes"&&(n+=Number(c||0))}return{
196
- readBytes:r,writeBytes:n}}function F(e="",t="",r={}){let n=M("systemctl",["show",e,"--no-pager","--timestamp=us+utc","--\
197
- property=LoadState,ActiveState,SubState,Result,ExecMainCode,ExecMainStatus,ExecMainStartTimestamp,ExecMainExitTimestamp,\
198
- MainPID,ControlGroup,MemoryCurrent,MemoryPeak,MemorySwapCurrent,TasksCurrent,TasksMax,CPUUsageNSec,IOReadBytes,IOWriteBy\
199
- tes"]),o={};for(let g of String(n.stdout||"").split(/\r?\n/u)){let S=g.indexOf("=");S>0&&(o[g.slice(0,S)]=g.slice(S+1))}
200
- let i=String(o.ControlGroup||"").trim(),s=i?u.join("/sys/fs/cgroup",i.replace(/^\/+/,"")):"",c=ge(s),a=s&&$(s)?c.scopeEmpty:
201
- !0,l=t?$t(r,t):{},d=Date.parse(l.exitObservedAt||""),p=Number.isFinite(d)?"runner":"systemd",m=Number.isFinite(d)?d:Date.
202
- parse(o.ExecMainExitTimestamp||""),f=Number.isFinite(m)&&m>0&&m<=Date.now()?new Date(m).toISOString():"";return{resourceCounters:l.
203
- resourceCounters||c,activeState:String(o.ActiveState||(l.executionId?"inactive":"unknown")),controlGroup:i,cpuUsageNSec:R(
204
- o.CPUUsageNSec,l.cpuUsageNSec),execMainCode:String(o.ExecMainCode||l.execMainCode||""),execMainStatus:String(o.ExecMainStatus||
205
- l.execMainStatus||""),exitObservedAt:f,exitTimeSource:f?p:"",ioReadBytes:R(o.IOReadBytes,l.ioReadBytes),ioWriteBytes:R(o.
206
- IOWriteBytes,l.ioWriteBytes),loadState:String(o.LoadState&&o.LoadState!=="not-found"?o.LoadState:l.executionId?"recorded":
207
- "not-found"),mainPid:String(o.MainPID||"0"),memoryCurrent:R(o.MemoryCurrent,l.memoryCurrent),memoryPeak:R(o.MemoryPeak,l.
208
- memoryPeak),memorySwapCurrent:R(o.MemorySwapCurrent,l.memorySwapCurrent),oomKillCount:R(l.oomKillCount),taskLimit:l.taskLimit||
209
- Be(s),result:String(o.Result||l.result||""),signal:String(l.signal||""),scopeEmpty:a,startedAt:o.ExecMainStartTimestamp||
210
- "",subState:String(o.SubState||"unknown"),tasksCurrent:R(o.TasksCurrent,l.tasksCurrent),tasksPeak:R(l.tasksPeak),tasksMax:String(
211
- o.TasksMax||"0"),unitName:e}}function R(...e){return String(e.reduce((t,r)=>{let n=Number(r);return Number.isFinite(n)&&
212
- n>t?n:t},0))}function Pt(e="",t="",r={}){let n=F(e,t,r),o=null,i=n.taskLimit,s=Date.parse(n.startedAt),c=Date.parse(n.exitObservedAt);
213
- if((n.result==="oom-kill"||Number(n.oomKillCount)>0)&&s>0&&c>=s){let a=Math.min(Date.now(),c+1e3),l=N("journalctl",["-k",
214
- "--boot=0","--no-pager","--output=json","--output-fields=__REALTIME_TIMESTAMP,__SEQNUM_ID,__SEQNUM,_BOOT_ID,_SOURCE_MONO\
215
- TONIC_TIMESTAMP,MESSAGE","--lines=65","--case-sensitive=yes",`--since=@${s/1e3}`,`--until=@${a/1e3}`,`--grep=^oom-kill:|\
216
- ^/[^,]*/${e.replaceAll(".","\\.")}(?:/[^,]*)?,task=`],{encoding:"utf8",timeout:2e3,maxBuffer:128*1024});!l.error&&l.status===
217
- 0&&(o=Vt(l.stdout,{unitName:e,workspace:I(r.username),startedAt:s,until:a}))}if(!i&&n.result&&n.result!=="success"&&s>0&&
218
- c>=s){let a=Math.min(Date.now(),c+1e3),l=N("journalctl",["-k","--boot=0","--no-pager","--output=json","--output-fields=_\
219
- _REALTIME_TIMESTAMP,MESSAGE","--lines=65","--case-sensitive=yes",`--since=@${s/1e3}`,`--until=@${a/1e3}`,`--grep=^cgroup\
220
- : fork rejected by pids controller in /.*${e.replaceAll(".","\\.")}(?:/|$)`],{encoding:"utf8",timeout:2e3,maxBuffer:128*
221
- 1024});!l.error&&l.status===0&&(i=Ut(l.stdout,{unitName:e,workspace:I(r.username),startedAt:s,until:a}))}w.stdout.write(
222
- `${JSON.stringify({executionId:t,ok:!0,...n,oomBoundary:o,taskLimit:i})}
198
+ trim().split(/\s+/u).slice(1)){let[s,a]=i.split("=");s==="rbytes"&&(r+=Number(a||0)),s==="wbytes"&&(n+=Number(a||0))}return{
199
+ readBytes:r,writeBytes:n}}function K(e="",t="",r={},{query:n=A,readResult:o=Rt}={}){let i=n("systemctl",["show",e,"--no-\
200
+ pager","--timestamp=us+utc","--property=LoadState,ActiveState,SubState,Result,ExecMainCode,ExecMainStatus,ExecMainStartT\
201
+ imestamp,ExecMainExitTimestamp,MainPID,ControlGroup,MemoryCurrent,MemoryPeak,MemorySwapCurrent,TasksCurrent,TasksMax,CPU\
202
+ UsageNSec,IOReadBytes,IOWriteBytes"]),s={};for(let M of String(i.stdout||"").split(/\r?\n/u)){let y=M.indexOf("=");y>0&&
203
+ (s[M.slice(0,y)]=M.slice(y+1))}s.LoadState==="not-found"&&(s={LoadState:"not-found"});let a=String(s.ControlGroup||"").trim(),
204
+ c=a?u.join("/sys/fs/cgroup",a.replace(/^\/+/,"")):"",m=ge(c),p=c&&T(c)?m.scopeEmpty:!0,d=t?o(r,t):{},l=Date.parse(d.exitObservedAt||
205
+ ""),f=Number.isFinite(l)?"runner":"systemd",g=Number.isFinite(l)?l:Date.parse(s.ExecMainExitTimestamp||""),x=Number.isFinite(
206
+ g)&&g>0&&g<=Date.now()?new Date(g).toISOString():"";return{resourceCounters:d.resourceCounters||m,activeState:String(s.ActiveState||
207
+ (d.executionId?"inactive":"unknown")),controlGroup:a,cpuUsageNSec:R(s.CPUUsageNSec,d.cpuUsageNSec),execMainCode:String(s.
208
+ ExecMainCode||d.execMainCode||""),execMainStatus:String(s.ExecMainStatus||d.execMainStatus||""),exitObservedAt:x,exitTimeSource:x?
209
+ f:"",ioReadBytes:R(s.IOReadBytes,d.ioReadBytes),ioWriteBytes:R(s.IOWriteBytes,d.ioWriteBytes),loadState:String(s.LoadState&&
210
+ s.LoadState!=="not-found"?s.LoadState:d.executionId?"recorded":"not-found"),mainPid:String(s.MainPID||"0"),memoryCurrent:R(
211
+ s.MemoryCurrent,d.memoryCurrent),memoryPeak:R(s.MemoryPeak,d.memoryPeak),memorySwapCurrent:R(s.MemorySwapCurrent,d.memorySwapCurrent),
212
+ oomKillCount:R(d.oomKillCount),taskLimit:d.taskLimit||Be(c),result:String(s.Result||d.result||""),signal:String(d.signal||
213
+ ""),scopeEmpty:p,startedAt:s.ExecMainStartTimestamp||d.startedAt||"",subState:String(s.SubState||"unknown"),tasksCurrent:R(
214
+ s.TasksCurrent,d.tasksCurrent),tasksPeak:R(d.tasksPeak),tasksMax:String(s.TasksMax||"0"),unitName:e}}function R(...e){return String(
215
+ e.reduce((t,r)=>{let n=Number(r);return Number.isFinite(n)&&n>t?n:t},0))}function Pt(e="",t="",r={}){let n=K(e,t,r),o=null,
216
+ i=n.taskLimit,s=Date.parse(n.startedAt),a=Date.parse(n.exitObservedAt);if((n.result==="oom-kill"||Number(n.oomKillCount)>
217
+ 0)&&s>0&&a>=s){let c=Math.min(Date.now(),a+1e3),m=I("journalctl",["-k","--boot=0","--no-pager","--output=json","--output\
218
+ -fields=__REALTIME_TIMESTAMP,__SEQNUM_ID,__SEQNUM,_BOOT_ID,_SOURCE_MONOTONIC_TIMESTAMP,MESSAGE","--lines=65","--case-sen\
219
+ sitive=yes",`--since=@${s/1e3}`,`--until=@${c/1e3}`,`--grep=^oom-kill:|^/[^,]*/${e.replaceAll(".","\\.")}(?:/[^,]*)?,tas\
220
+ k=`],{encoding:"utf8",timeout:2e3,maxBuffer:128*1024});!m.error&&m.status===0&&(o=Vt(m.stdout,{unitName:e,workspace:$(r.
221
+ username),startedAt:s,until:c}))}if(!i&&n.result&&n.result!=="success"&&s>0&&a>=s){let c=Math.min(Date.now(),a+1e3),m=I(
222
+ "journalctl",["-k","--boot=0","--no-pager","--output=json","--output-fields=__REALTIME_TIMESTAMP,MESSAGE","--lines=65","\
223
+ --case-sensitive=yes",`--since=@${s/1e3}`,`--until=@${c/1e3}`,`--grep=^cgroup: fork rejected by pids controller in /.*${e.
224
+ replaceAll(".","\\.")}(?:/|$)`],{encoding:"utf8",timeout:2e3,maxBuffer:128*1024});!m.error&&m.status===0&&(i=Ut(m.stdout,
225
+ {unitName:e,workspace:$(r.username),startedAt:s,until:c}))}w.stdout.write(`${JSON.stringify({executionId:t,ok:!0,...n,oomBoundary:o,
226
+ taskLimit:i})}
223
227
  `)}function Ut(e,{unitName:t,workspace:r,startedAt:n,until:o}){if(typeof e!="string"||Buffer.byteLength(e)>128*1024)return null;
224
- let i=e.trim().split(/\r?\n/u);if(i.length>64)return null;for(let s of i){let c;try{c=JSON.parse(s)}catch{continue}let a=Number(
225
- c?.__REALTIME_TIMESTAMP)/1e3;if(!Number.isFinite(a)||a<n||a>o)continue;let l=typeof c.MESSAGE=="string"&&/^cgroup: fork rejected by pids controller in (\/[a-zA-Z0-9_./-]{1,2048})$/u.
226
- exec(c.MESSAGE)?.[1];if(!l)continue;let d=l.split("/"),p=d.indexOf(`vibe64-${r}-work.slice`);if(!(d[1]!=="vibe64.slice"||
227
- p<2||d.indexOf(t)<=p||d.some((m,f)=>f>0&&(!m||m==="."||m===".."))))return{source:"kernel-journal",scope:"unknown",count:null,
228
- recordedAt:new Date(a).toISOString()}}return null}function Vt(e,{unitName:t,workspace:r,startedAt:n,until:o}){if(typeof e!=
228
+ let i=e.trim().split(/\r?\n/u);if(i.length>64)return null;for(let s of i){let a;try{a=JSON.parse(s)}catch{continue}let c=Number(
229
+ a?.__REALTIME_TIMESTAMP)/1e3;if(!Number.isFinite(c)||c<n||c>o)continue;let m=typeof a.MESSAGE=="string"&&/^cgroup: fork rejected by pids controller in (\/[a-zA-Z0-9_./-]{1,2048})$/u.
230
+ exec(a.MESSAGE)?.[1];if(!m)continue;let p=m.split("/"),d=p.indexOf(`vibe64-${r}-work.slice`);if(!(p[1]!=="vibe64.slice"||
231
+ d<2||p.indexOf(t)<=d||p.some((l,f)=>f>0&&(!l||l==="."||l===".."))))return{source:"kernel-journal",scope:"unknown",count:null,
232
+ recordedAt:new Date(c).toISOString()}}return null}function Vt(e,{unitName:t,workspace:r,startedAt:n,until:o}){if(typeof e!=
229
233
  "string"||Buffer.byteLength(e)>128*1024)return null;let i=e.trim().split(/\r?\n/u);if(i.length>64)return null;let s=i.flatMap(
230
- a=>{try{return[JSON.parse(a)]}catch{return[]}}),c=null;for(let a of s){let l=Number(a?.__REALTIME_TIMESTAMP)/1e3;if(!Number.
231
- isFinite(l)||l<n||l>o)continue;let d=a.MESSAGE;if(typeof d=="string"&&d.startsWith("oom-kill:")&&d.endsWith(",task_memcg\
232
- =")){let v=s.find(x=>/^[a-f0-9]{32}$/u.test(a.__SEQNUM_ID||"")&&x?.__SEQNUM_ID===a.__SEQNUM_ID&&x?._BOOT_ID===a._BOOT_ID&&
233
- /^[a-f0-9]{32}$/u.test(a._BOOT_ID||"")&&Number.isSafeInteger(Number(a.__SEQNUM))&&Number(x.__SEQNUM)===Number(a.__SEQNUM)+
234
- 1&&Number(x._SOURCE_MONOTONIC_TIMESTAMP)>=Number(a._SOURCE_MONOTONIC_TIMESTAMP)&&Number(x._SOURCE_MONOTONIC_TIMESTAMP)-Number(
235
- a._SOURCE_MONOTONIC_TIMESTAMP)<=1e6&&/^\/[a-zA-Z0-9_./-]+,task=[^,]+,pid=\d+,uid=\d+$/u.test(x.MESSAGE||""));v&&(d+=v.MESSAGE)}
236
- let p=typeof d=="string"&&d.match(/^oom-kill:constraint=(CONSTRAINT_[A-Z_]+),.*?,(?:oom_memcg=(\/[^,]+)|(global_oom)),task_memcg=(\/[^,]+),task=/u);
237
- if(!p)continue;let[,m,f,g,S]=p,j=S.split("/"),b=j.indexOf(`vibe64-${r}-work.slice`),G=j.indexOf(t);if(j[1]!=="vibe64.sli\
238
- ce"||b<2||G<=b||j.some((v,x)=>x>0&&(v==="."||v===".."||!/^[a-zA-Z0-9_.-]+$/u.test(v))))continue;let P;if(m==="CONSTRAINT\
239
- _NONE"&&g)P="host";else if(m==="CONSTRAINT_MEMCG"&&f&&(S===f||S.startsWith(`${f}/`))){let v=f.split("/").at(-1),x=j.slice(
240
- 0,G+1).join("/");P=f===x||f.startsWith(`${x}/`)?"execution":v===`vibe64-${r}-work.slice`?"workspace_work":v===`vibe64-${r}\
234
+ c=>{try{return[JSON.parse(c)]}catch{return[]}}),a=null;for(let c of s){let m=Number(c?.__REALTIME_TIMESTAMP)/1e3;if(!Number.
235
+ isFinite(m)||m<n||m>o)continue;let p=c.MESSAGE;if(typeof p=="string"&&p.startsWith("oom-kill:")&&p.endsWith(",task_memcg\
236
+ =")){let v=s.find(k=>/^[a-f0-9]{32}$/u.test(c.__SEQNUM_ID||"")&&k?.__SEQNUM_ID===c.__SEQNUM_ID&&k?._BOOT_ID===c._BOOT_ID&&
237
+ /^[a-f0-9]{32}$/u.test(c._BOOT_ID||"")&&Number.isSafeInteger(Number(c.__SEQNUM))&&Number(k.__SEQNUM)===Number(c.__SEQNUM)+
238
+ 1&&Number(k._SOURCE_MONOTONIC_TIMESTAMP)>=Number(c._SOURCE_MONOTONIC_TIMESTAMP)&&Number(k._SOURCE_MONOTONIC_TIMESTAMP)-Number(
239
+ c._SOURCE_MONOTONIC_TIMESTAMP)<=1e6&&/^\/[a-zA-Z0-9_./-]+,task=[^,]+,pid=\d+,uid=\d+$/u.test(k.MESSAGE||""));v&&(p+=v.MESSAGE)}
240
+ let d=typeof p=="string"&&p.match(/^oom-kill:constraint=(CONSTRAINT_[A-Z_]+),.*?,(?:oom_memcg=(\/[^,]+)|(global_oom)),task_memcg=(\/[^,]+),task=/u);
241
+ if(!d)continue;let[,l,f,g,x]=d,M=x.split("/"),y=M.indexOf(`vibe64-${r}-work.slice`),D=M.indexOf(t);if(M[1]!=="vibe64.sli\
242
+ ce"||y<2||D<=y||M.some((v,k)=>k>0&&(v==="."||v===".."||!/^[a-zA-Z0-9_.-]+$/u.test(v))))continue;let V;if(l==="CONSTRAINT\
243
+ _NONE"&&g)V="host";else if(l==="CONSTRAINT_MEMCG"&&f&&(x===f||x.startsWith(`${f}/`))){let v=f.split("/").at(-1),k=M.slice(
244
+ 0,D+1).join("/");V=f===k||f.startsWith(`${k}/`)?"execution":v===`vibe64-${r}-work.slice`?"workspace_work":v===`vibe64-${r}\
241
245
  .slice`?"workspace":v==="vibe64.slice"?"platform":/-work-p[a-f0-9]{64}-s[a-f0-9]{64}-w[a-f0-9]{32}\.slice$/u.test(v)?"wo\
242
246
  rkflow":/-work-p[a-f0-9]{64}-s[a-f0-9]{64}\.slice$/u.test(v)?"session":/-work-p[a-f0-9]{64}\.slice$/u.test(v)?"project":
243
- "ancestor"}else return null;let H=f||"";if(c&&c.cgroup!==H)return null;(!c||l>Date.parse(c.recordedAt))&&(c={source:"ker\
244
- nel-journal",scope:P,cgroup:H,recordedAt:new Date(l).toISOString()})}return c}function Gt(e="",t="",r={}){let n=F(e,t,r);
245
- n.scopeEmpty||(M("systemctl",["kill","--kill-who=all","--signal=SIGTERM",e]),M("systemctl",["stop",e]));let o=Date.now()+
246
- gt,i=F(e,t,r),s=new Int32Array(new SharedArrayBuffer(4));for(;!i.scopeEmpty&&Date.now()<o;)Atomics.wait(s,0,0,25),i=F(e,
247
- t,r);i.scopeEmpty||(M("systemctl",["kill","--kill-who=all","--signal=SIGKILL",e]),M("systemctl",["stop",e]),i=F(e,t,r)),
248
- i.scopeEmpty&&(Te(Ee(r,t),{force:!0,recursive:!0}),M("systemctl",["reset-failed",e])),w.stdout.write(`${JSON.stringify({
249
- executionId:t,ok:i.scopeEmpty,scopeEmpty:i.scopeEmpty,stopped:n.scopeEmpty===!1,...i})}
247
+ "ancestor"}else return null;let H=f||"";if(a&&a.cgroup!==H)return null;(!a||m>Date.parse(a.recordedAt))&&(a={source:"ker\
248
+ nel-journal",scope:V,cgroup:H,recordedAt:new Date(m).toISOString()})}return a}function Gt(e="",t="",r={}){let n=K(e,t,r);
249
+ n.scopeEmpty||A("systemctl",["stop",e]);let o=Date.now()+gt,i=K(e,t,r),s=new Int32Array(new SharedArrayBuffer(4));for(;!i.
250
+ scopeEmpty&&Date.now()<o;)Atomics.wait(s,0,0,25),i=K(e,t,r);i.scopeEmpty||(A("systemctl",["kill","--kill-who=all","--sig\
251
+ nal=SIGKILL",e]),A("systemctl",["stop",e]),i=K(e,t,r)),i.scopeEmpty&&(Te(Ee(r,t),{force:!0,recursive:!0}),A("systemctl",
252
+ ["reset-failed",e])),w.stdout.write(`${JSON.stringify({executionId:t,ok:i.scopeEmpty,scopeEmpty:i.scopeEmpty,stopped:n.scopeEmpty===
253
+ !1,...i})}
250
254
  `),i.scopeEmpty||w.exit(1)}function Lt(e={}){if(e?.schema!==it||e?.schemaVersion!==st)throw new Error("Vibe64 exec helpe\
251
- r rejected a non-normalized execution payload.")}function Wt(e="",t={},r=""){Se(r),q(),ce(T),e==="create-system-user"?tr(
252
- r,String(t.password||"")):X(r),rr(r,T)}function Ht(e={}){let t=q();ce(T);let r=String(e.action||"").trim(),n=ae(e.unitName);
253
- if(r==="inspect"){Kt(n);return}if(r==="remove"){Yt(n);return}if(r!=="install-start")throw new Error("Vibe64 exec helper \
255
+ r rejected a non-normalized execution payload.")}function Wt(e="",t={},r=""){Se(r),q(),ae(j),e==="create-system-user"?tr(
256
+ r,String(t.password||"")):X(r),rr(r,j)}function Ht(e={}){let t=q();ae(j);let r=String(e.action||"").trim(),n=ce(e.unitName);
257
+ if(r==="inspect"){zt(n);return}if(r==="remove"){Yt(n);return}if(r!=="install-start")throw new Error("Vibe64 exec helper \
254
258
  rejected an unknown deployment service action.");let o=ee(e.workingDirectory,t,"workingDirectory"),i=ee(e.environmentFile,
255
- t,"environmentFile"),s=ee(e.startScript,t,"startScript"),c=[...new Set((Array.isArray(e.requiredUnits)?e.requiredUnits:[]).
256
- map(d=>ve(d,t)))],a=We(n),l=sr({environmentFile:i,owner:t,requiredUnits:c,startScript:s,unitName:n,workingDirectory:o});
257
- Pe({activation:"restart",unit:l,unitName:n,unitPath:a})}function Kt(e=""){ae(e);let t=E("systemctl",["show",e,"--no-page\
258
- r","--property=ActiveState,SubState,Result,ExecMainCode,ExecMainStatus,NRestarts"]),r=M("journalctl",["--unit",e,"--no-p\
259
+ t,"environmentFile"),s=ee(e.startScript,t,"startScript"),a=[...new Set((Array.isArray(e.requiredUnits)?e.requiredUnits:[]).
260
+ map(p=>ve(p,t)))],c=We(n),m=sr({environmentFile:i,owner:t,requiredUnits:a,startScript:s,unitName:n,workingDirectory:o});
261
+ Pe({activation:"restart",unit:m,unitName:n,unitPath:c})}function zt(e=""){ce(e);let t=S("systemctl",["show",e,"--no-page\
262
+ r","--property=ActiveState,SubState,Result,ExecMainCode,ExecMainStatus,NRestarts"]),r=A("journalctl",["--unit",e,"--no-p\
259
263
  ager","--output=cat","--lines=80"]),n=String(r.stdout||r.stderr||"").trim();w.stdout.write(["Service state:",t,...n?["",
260
264
  "Recent service output:",n]:[]].join(`
261
265
  `)+`
262
- `)}function Ft(e={}){let t=q();ce(T);let r=String(e.action||"").trim(),n=ve(e.unitName,t);if(r!=="install-start")throw new Error(
266
+ `)}function Kt(e={}){let t=q();ae(j);let r=String(e.action||"").trim(),n=ve(e.unitName,t);if(r!=="install-start")throw new Error(
263
267
  "Vibe64 exec helper rejected an unknown managed service action.");let o=Oe(e.workingDirectory,t,"workingDirectory"),i=Oe(
264
- e.startScript,t,"startScript"),s=Le(e.processModel),c=s==="forking"?Ge(e.pidFile,t):"",a=ir(n,t),l=cr({owner:t,pidFile:c,
265
- processModel:s,startScript:i,unitName:n,workingDirectory:o});zt({owner:t,pidFile:c,unitName:n}),Pe({activation:"start",unit:l,
266
- unitName:n,unitPath:a})}function zt({owner:e={},pidFile:t="",unitName:r=""}={}){if(!t||!$(t))return;let n=String(y(t,"ut\
268
+ e.startScript,t,"startScript"),s=Le(e.processModel),a=s==="forking"?Ge(e.pidFile,t):"",c=ir(n,t),m=ar({owner:t,pidFile:a,
269
+ processModel:s,startScript:i,unitName:n,workingDirectory:o});Ft({owner:t,pidFile:a,unitName:n}),Pe({activation:"start",unit:m,
270
+ unitName:n,unitPath:c})}function Ft({owner:e={},pidFile:t="",unitName:r=""}={}){if(!t||!T(t))return;let n=String(h(t,"ut\
267
271
  f8")||"").trim();if(!/^[1-9][0-9]*$/u.test(n))throw new Error("Vibe64 managed service PID file is invalid.");let o=Number(
268
- n);if(!Number.isSafeInteger(o)||o<=1)throw new Error("Vibe64 managed service PID is invalid.");if(!me(o)){Q(t,n);return}
272
+ n);if(!Number.isSafeInteger(o)||o<=1)throw new Error("Vibe64 managed service PID is invalid.");if(!le(o)){Q(t,n);return}
269
273
  let i=Xt(o);if(i===null){Q(t,n);return}if(i!==e.uid)throw new Error("Vibe64 managed service PID belongs to another OS us\
270
- er.");if(qt(o,r))return;try{w.kill(o,"SIGTERM")}catch(a){if(a?.code==="ESRCH"){Q(t,n);return}throw a}let s=Date.now()+3e4,
271
- c=new Int32Array(new SharedArrayBuffer(4));for(;me(o)&&Date.now()<s;)Atomics.wait(c,0,0,100);if(me(o))throw new Error("V\
272
- ibe64 managed service process did not stop cleanly during ownership transfer.");Q(t,n)}function Q(e="",t=""){$(e)&&String(
273
- y(e,"utf8")||"").trim()===t&&V(e)}function me(e=0){try{return w.kill(e,0),!0}catch(t){if(t?.code==="ESRCH")return!1;throw t}}
274
- function Xt(e=0){let t="";try{t=y(`/proc/${e}/status`,"utf8")}catch(o){if(o?.code==="ENOENT")return null;throw o}let r=String(
274
+ er.");if(qt(o,r))return;try{w.kill(o,"SIGTERM")}catch(c){if(c?.code==="ESRCH"){Q(t,n);return}throw c}let s=Date.now()+3e4,
275
+ a=new Int32Array(new SharedArrayBuffer(4));for(;le(o)&&Date.now()<s;)Atomics.wait(a,0,0,100);if(le(o))throw new Error("V\
276
+ ibe64 managed service process did not stop cleanly during ownership transfer.");Q(t,n)}function Q(e="",t=""){T(e)&&String(
277
+ h(e,"utf8")||"").trim()===t&&G(e)}function le(e=0){try{return w.kill(e,0),!0}catch(t){if(t?.code==="ESRCH")return!1;throw t}}
278
+ function Xt(e=0){let t="";try{t=h(`/proc/${e}/status`,"utf8")}catch(o){if(o?.code==="ENOENT")return null;throw o}let r=String(
275
279
  t||"").match(/^Uid:\s+([0-9]+)/mu),n=Number(r?.[1]);if(!Number.isSafeInteger(n))throw new Error("Vibe64 managed service \
276
- process UID is unavailable.");return n}function qt(e=0,t=""){let r=`/${t}`,n="";try{n=y(`/proc/${e}/cgroup`,"utf8")}catch(o){
280
+ process UID is unavailable.");return n}function qt(e=0,t=""){let r=`/${t}`,n="";try{n=h(`/proc/${e}/cgroup`,"utf8")}catch(o){
277
281
  if(o?.code==="ENOENT")return!1;throw o}return String(n||"").split(`
278
282
  `).some(o=>o.trim().endsWith(r))}function Pe({activation:e="start",unit:t="",unitName:r="",unitPath:n=""}={}){if(e!=="st\
279
283
  art"&&e!=="restart")throw new Error("Vibe64 exec helper rejected an unsupported systemd activation.");let o=`${n}.tmp-${w.
280
- pid}`;oe(o,t,{mode:420});try{E("mv",[o,n])}catch(i){try{V(o)}catch{}throw i}E("systemctl",["daemon-reload"]),E("systemct\
281
- l",["enable",r]),M("systemctl",["reset-failed",r]);try{E("systemctl",[e,r])}catch(i){throw M("systemctl",["stop",r]),i}}
282
- function Yt(e=""){ae(e),M("systemctl",["stop",e]),M("systemctl",["disable",e]),M("systemctl",["reset-failed",e]);try{V(We(
283
- e))}catch(t){if(t?.code!=="ENOENT")throw t}E("systemctl",["daemon-reload"])}function Jt(e=""){let t=e?y(u.resolve(e),"ut\
284
+ pid}`;oe(o,t,{mode:420});try{S("mv",[o,n])}catch(i){try{G(o)}catch{}throw i}S("systemctl",["daemon-reload"]),S("systemct\
285
+ l",["enable",r]),A("systemctl",["reset-failed",r]);try{S("systemctl",[e,r])}catch(i){throw A("systemctl",["stop",r]),i}}
286
+ function Yt(e=""){ce(e),A("systemctl",["stop",e]),A("systemctl",["disable",e]),A("systemctl",["reset-failed",e]);try{G(We(
287
+ e))}catch(t){if(t?.code!=="ENOENT")throw t}S("systemctl",["daemon-reload"])}function Jt(e=""){let t=e?h(u.resolve(e),"ut\
284
288
  f8"):Zt();if(Buffer.byteLength(t,"utf8")>Ie)throw new Error("Vibe64 exec helper payload is too large.");let r=JSON.parse(
285
289
  t);if(!r||typeof r!="object"||Array.isArray(r))throw new Error("Vibe64 exec helper payload must be a JSON object.");return r}
286
290
  function Zt(){let e=[],t=Buffer.allocUnsafe(rt),r=new Int32Array(new SharedArrayBuffer(4)),n=Date.now()+ot,o=0;for(;;)try{
287
291
  let i=et(0,t,0,t.length,null);if(i===0)break;if(o+=i,o>Ie)throw new Error("Vibe64 exec helper payload is too large.");e.
288
292
  push(Buffer.from(t.subarray(0,i)))}catch(i){if(i?.code==="EINTR")continue;if((i?.code==="EAGAIN"||i?.code==="EWOULDBLOCK")&&
289
293
  Date.now()<n){Atomics.wait(r,0,0,nt);continue}throw i?.code==="EAGAIN"||i?.code==="EWOULDBLOCK"?new Error("Vibe64 exec h\
290
- elper timed out waiting for its payload."):i}return Buffer.concat(e,o).toString("utf8")}function _(e=""){let t=String(e||
294
+ elper timed out waiting for its payload."):i}return Buffer.concat(e,o).toString("utf8")}function N(e=""){let t=String(e||
291
295
  "").trim();if(!t||/[/:\\\r\n]/u.test(t))throw new Error("Vibe64 exec helper rejected an unsafe username.");return t}function Qt(e=""){
292
- if(!lt.test(e))throw new Error("Vibe64 exec helper rejected an unsupported username.")}function Se(e=""){if(Qt(e),e.startsWith(
296
+ if(!mt.test(e))throw new Error("Vibe64 exec helper rejected an unsupported username.")}function Se(e=""){if(Qt(e),e.startsWith(
293
297
  re))throw new Error("Vibe64 daemon Unix accounts cannot be managed as app users.");if(dt.has(e))throw new Error("Privile\
294
- ged Unix accounts cannot be managed as Vibe64 app users.")}function X(e=""){let t=N("getent",["passwd",e],{encoding:"utf\
298
+ ged Unix accounts cannot be managed as Vibe64 app users.")}function X(e=""){let t=I("getent",["passwd",e],{encoding:"utf\
295
299
  8"});if(t.status!==0)throw new Error(`OS user was not found: ${e}`);let n=String(t.stdout||"").split(/\r?\n/u)[0].split(
296
300
  ":");if(n.length<7||n[0]!==e)throw new Error(`OS user was not found: ${e}`);let o=Number(n[2]),i=Number(n[3]);if(!Number.
297
301
  isSafeInteger(o)||!Number.isSafeInteger(i))throw new Error(`OS user has invalid uid/gid: ${e}`);return{gid:i,home:n[5],uid:o,
298
- username:e}}function q(){let e=_(w.env.SUDO_USER||"");return X(e)}function Ue(e="",t=""){let r=N("id",["-nG",e],{encoding:"\
302
+ username:e}}function q(){let e=N(w.env.SUDO_USER||"");return X(e)}function Ue(e="",t=""){let r=I("id",["-nG",e],{encoding:"\
299
303
  utf8"}),n=String(r.stdout||"").trim().split(/\s+/u);if(r.status!==0||!n.includes(t))throw new Error(`OS user is not enab\
300
- led for the shared Vibe64 group: ${e}`)}function er(e=""){try{return X(e)}catch{return null}}function ce(e=""){if(N("get\
304
+ led for the shared Vibe64 group: ${e}`)}function er(e=""){try{return X(e)}catch{return null}}function ae(e=""){if(I("get\
301
305
  ent",["group",e],{encoding:"utf8"}).status!==0)throw new Error(`Required OS group was not found: ${e}`)}function tr(e="",t=""){
302
306
  if(er(e))throw new Error(`OS user already exists: ${e}`);if(!t||/[\r\n]/u.test(t))throw new Error("A valid initial passw\
303
- ord is required to create an OS user.");E("useradd",["--create-home","--user-group","--shell","/bin/bash",e]);let r=N("c\
307
+ ord is required to create an OS user.");S("useradd",["--create-home","--user-group","--shell","/bin/bash",e]);let r=I("c\
304
308
  hpasswd",{encoding:"utf8",input:`${e}:${t}
305
309
  `});if(r.status!==0)throw new Error(String(r.stderr||r.stdout||"Could not set OS user password.").trim())}function rr(e="",t=""){
306
- E("usermod",["-a","-G",t,e])}function E(e="",t=[]){let r=N(e,t,{encoding:"utf8"});if(r.status!==0)throw new Error(String(
307
- r.stderr||r.stdout||`${e} failed.`).trim());return String(r.stdout||"").trim()}function M(e="",t=[]){return N(e,t,{encoding:"\
308
- utf8"})}function ee(e="",t={},r="path"){let n=nr(e,t);if(!$(n))throw new Error(`Vibe64 deployment service ${r} does not \
309
- exist.`);return n}function Oe(e="",t={},r="path"){let n=Ge(e,t);if(!$(n))throw new Error(`Vibe64 managed service ${r} do\
310
- es not exist.`);return n}function Ve(e={}){let t=_(e.username),r=I(t);if(!r)throw new Error("Vibe64 exec helper could no\
310
+ S("usermod",["-a","-G",t,e])}function S(e="",t=[]){let r=I(e,t,{encoding:"utf8"});if(r.status!==0)throw new Error(String(
311
+ r.stderr||r.stdout||`${e} failed.`).trim());return String(r.stdout||"").trim()}function A(e="",t=[]){return I(e,t,{encoding:"\
312
+ utf8"})}function ee(e="",t={},r="path"){let n=nr(e,t);if(!T(n))throw new Error(`Vibe64 deployment service ${r} does not \
313
+ exist.`);return n}function Oe(e="",t={},r="path"){let n=Ge(e,t);if(!T(n))throw new Error(`Vibe64 managed service ${r} do\
314
+ es not exist.`);return n}function Ve(e={}){let t=N(e.username),r=$(t);if(!r)throw new Error("Vibe64 exec helper could no\
311
315
  t resolve the managed service workspace.");return u.join("/var/lib/vibe64",r,"services")}function Ge(e="",t={}){let r=String(
312
- e||"").trim();if(!r)throw new Error("Vibe64 exec helper rejected an empty managed service path.");let n=k(r,{allowMissingLeaf:!0});
313
- if(U(k(Ve(t)),n).length>0)return n;throw new Error("Vibe64 exec helper rejected a managed service path outside the works\
316
+ e||"").trim();if(!r)throw new Error("Vibe64 exec helper rejected an empty managed service path.");let n=b(r,{allowMissingLeaf:!0});
317
+ if(C(b(Ve(t)),n).length>0)return n;throw new Error("Vibe64 exec helper rejected a managed service path outside the works\
314
318
  pace service root.")}function nr(e="",t={}){let r=String(e||"").trim();if(!r)throw new Error("Vibe64 exec helper rejecte\
315
- d an empty deployment service path.");let n=k(r),o=k(u.join(String(t.home||"").trim(),".local","state","vibe64","project\
319
+ d an empty deployment service path.");let n=b(r),o=b(u.join(String(t.home||"").trim(),".local","state","vibe64","project\
316
320
  s"));if(or(o,n))return n;throw new Error("Vibe64 exec helper rejected a deployment service path outside managed roots.")}
317
- function or(e="",t=""){let r=U(e,t);return r.length>=5&&r[1]==="deployments"&&r[2]==="releases"&&(r[4]==="artifact"||r[4]===
318
- "service")}function U(e="",t=""){let r=String(e||"").trim(),n=String(t||"").trim();if(!r||!n)return[];let o=u.relative(u.
319
- resolve(r),u.resolve(n));return!o||o.startsWith("..")||u.isAbsolute(o)?[]:o.split(u.sep).filter(Boolean)}function k(e,{allowMissingLeaf:t=!1}={}){
321
+ function or(e="",t=""){let r=C(e,t);return r.length>=5&&r[1]==="deployments"&&r[2]==="releases"&&(r[4]==="artifact"||r[4]===
322
+ "service")}function C(e="",t=""){let r=String(e||"").trim(),n=String(t||"").trim();if(!r||!n)return[];let o=u.relative(u.
323
+ resolve(r),u.resolve(n));return!o||o.startsWith("..")||u.isAbsolute(o)?[]:o.split(u.sep).filter(Boolean)}function b(e,{allowMissingLeaf:t=!1}={}){
320
324
  let r=u.resolve(e);if(t)try{fe(r)}catch(n){if(n.code!=="ENOENT")throw n;return u.join(te(u.dirname(r)),u.basename(r))}return te(
321
- r)}function ae(e=""){let t=String(e||"").trim();if(!t.startsWith("vibe64-release-")||!t.endsWith(".service")||!/^[A-Za-z0-9_.@:-]+$/u.
325
+ r)}function ce(e=""){let t=String(e||"").trim();if(!t.startsWith("vibe64-release-")||!t.endsWith(".service")||!/^[A-Za-z0-9_.@:-]+$/u.
322
326
  test(t)||t.includes("/")||t.includes(".."))throw new Error("Vibe64 exec helper rejected an unsafe deployment service uni\
323
327
  t name.");return t}function ve(e="",t={}){let r=String(e||"").trim(),n=u.basename(u.dirname(Ve(t)));if(!r.startsWith(`vi\
324
328
  be64-managed-${n}-`)||!r.endsWith(".service")||!/^[A-Za-z0-9_.@:-]+$/u.test(r)||r.includes("/")||r.includes(".."))throw new Error(
325
329
  "Vibe64 exec helper rejected an unsafe managed service unit name.");return r}function Le(e=""){let t=String(e||"").trim();
326
330
  if(t!=="forking"&&t!=="simple")throw new Error("Vibe64 exec helper rejected an unsupported managed service process model\
327
- .");return t}function We(e=""){return u.join("/etc/systemd/system",ae(e))}function ir(e="",t={}){return u.join("/etc/sys\
328
- temd/system",ve(e,t))}function He(e={}){return[`User=${O(e.username)}`,`Group=${T}`,"SupplementaryGroups=nix-users","UMa\
329
- sk=0007"]}function Ke(e={}){return[`Slice=vibe64-${I(_(e.username))}-work.slice`,"MemoryAccounting=yes","IOAccounting=ye\
331
+ .");return t}function We(e=""){return u.join("/etc/systemd/system",ce(e))}function ir(e="",t={}){return u.join("/etc/sys\
332
+ temd/system",ve(e,t))}function He(e={}){return[`User=${_(e.username)}`,`Group=${j}`,"SupplementaryGroups=nix-users","UMa\
333
+ sk=0007"]}function ze(e={}){return[`Slice=vibe64-${$(N(e.username))}-work.slice`,"MemoryAccounting=yes","IOAccounting=ye\
330
334
  s","TasksAccounting=yes","KillMode=control-group","OOMPolicy=stop"]}function sr({environmentFile:e="",owner:t={},requiredUnits:r=[],
331
335
  startScript:n="",unitName:o="",workingDirectory:i=""}={}){let s=Array.isArray(r)?r:[];return["[Unit]",`Description=Vibe6\
332
336
  4 release service ${o}`,`After=${["network-online.target",...s].join(" ")}`,"Wants=network-online.target",...s.length>0?
333
- [`Requires=${s.join(" ")}`]:[],"StartLimitIntervalSec=60","StartLimitBurst=5","","[Service]","Type=simple",...He(t),...Ke(
334
- t),`WorkingDirectory=${O(i)}`,`EnvironmentFile=${O(e)}`,`Environment=PATH=${O(ie)}`,`Environment=TMPDIR=${O(Y(t.username))}`,
335
- `ExecStart=${O(n)}`,"Restart=always","RestartSec=3","KillSignal=SIGTERM","TimeoutStopSec=30","","[Install]","WantedBy=mu\
337
+ [`Requires=${s.join(" ")}`]:[],"StartLimitIntervalSec=60","StartLimitBurst=5","","[Service]","Type=simple",...He(t),...ze(
338
+ t),`WorkingDirectory=${_(i)}`,`EnvironmentFile=${_(e)}`,`Environment=PATH=${_(ie)}`,`Environment=TMPDIR=${_(Y(t.username))}`,
339
+ `ExecStart=${_(n)}`,"Restart=always","RestartSec=3","KillSignal=SIGTERM","TimeoutStopSec=30","","[Install]","WantedBy=mu\
336
340
  lti-user.target",""].join(`
337
- `)}function cr({owner:e={},pidFile:t="",processModel:r="simple",startScript:n="",unitName:o="",workingDirectory:i=""}={}){
341
+ `)}function ar({owner:e={},pidFile:t="",processModel:r="simple",startScript:n="",unitName:o="",workingDirectory:i=""}={}){
338
342
  let s=Le(r);return["[Unit]",`Description=Vibe64 managed service ${o}`,"After=network-online.target","Wants=network-onlin\
339
- e.target","","[Service]",`Type=${s}`,...He(e),...Ke(e),`WorkingDirectory=${O(i)}`,`Environment=PATH=${O(ie)}`,`Environme\
340
- nt=TMPDIR=${O(Y(e.username))}`,`ExecStart=${O(n)}`,...s==="forking"?[`PIDFile=${O(t)}`]:[],"Restart=on-failure","Restart\
343
+ e.target","","[Service]",`Type=${s}`,...He(e),...ze(e),`WorkingDirectory=${_(i)}`,`Environment=PATH=${_(ie)}`,`Environme\
344
+ nt=TMPDIR=${_(Y(e.username))}`,`ExecStart=${_(n)}`,...s==="forking"?[`PIDFile=${_(t)}`]:[],"Restart=on-failure","Restart\
341
345
  Sec=3","TimeoutStartSec=90","TimeoutStopSec=30","","[Install]","WantedBy=multi-user.target",""].join(`
342
- `)}function O(e=""){let t=String(e||"").trim();if(!t||/[\r\n]/u.test(t))throw new Error("Vibe64 exec helper rejected an \
346
+ `)}function _(e=""){let t=String(e||"").trim();if(!t||/[\r\n]/u.test(t))throw new Error("Vibe64 exec helper rejected an \
343
347
  unsafe systemd value.");return t.replaceAll("\\","\\\\").replaceAll('"','\\"')}function ne(e="uid",t=null,r=null){if(!Number.
344
- isSafeInteger(t)||t<0||t!==r)throw new Error(`Vibe64 exec helper ${e} mismatch.`)}function Fe(e={},t=""){let r=u.join(e.
345
- home,".local","state","vibe64","users",`${t}.json`),n=JSON.parse(y(r,"utf8"));if(n?.username!==t||n?.status!=="active")throw new Error(
346
- "OS user is not enabled for Vibe64.")}function ze(e="",t="",{operation:r="",targetUser:n={}}={}){if(r==="health-status")
347
- return Y(t);let o=String(e||"").trim();if(!o)return"/";if(r==="account-auth-terminal"||r==="account-status"||r==="github\
348
- -api-command")return ur(o,n);if(r==="vibe64-command"&&n.username===t){let i=k(o),s=u.join(n.home,".local","state","vibe6\
349
- 4","projects");if($(s)){let a=k(s);if(i===a||i.startsWith(`${a}${u.sep}`))return i}let c=u.join(n.home,".local","state",
350
- "vibe64","colleague");if($(c)){let a=U(k(c),i);if(a.length===2&&/^[A-Za-z0-9_-]+$/u.test(a[0])&&/^colleague_[a-f0-9]{32}$/u.
351
- test(a[1]))return i}}if(r==="codex-app-server"||r==="opencode-app-server"){let i=k(o),s=Number(n.uid),c=[se({username:t})];
352
- Number.isSafeInteger(s)&&s>=0&&c.push(u.join("/run/user",String(s)));for(let a of c){let l=u.join(a,"vibe64","agent-prov\
353
- iders");if(!$(l))continue;let d=k(l),p=U(d,i),m=p[0],f=r==="opencode-app-server"?m==="opencode":m==="codex-app-server"||
354
- /^codex-app-server-[a-f0-9]{12}$/u.test(m),g=r==="codex-app-server"&&p.length===1,S=p.length===2&&p[1]==="workspace";if(f&&
355
- (g||S))return i}}return ar(o,t)}function ar(e="",t=""){let r=String(e||"").trim();if(!r)throw new Error("Vibe64 exec hel\
356
- per rejected an empty managed project path.");let n=k(r),o=k(u.join("/var/lib/vibe64",I(t),"projects"));if(n.startsWith(
348
+ isSafeInteger(t)||t<0||t!==r)throw new Error(`Vibe64 exec helper ${e} mismatch.`)}function Ke(e={},t=""){let r=u.join(e.
349
+ home,".local","state","vibe64","users",`${t}.json`),n=JSON.parse(h(r,"utf8"));if(n?.username!==t||n?.status!=="active")throw new Error(
350
+ "OS user is not enabled for Vibe64.")}function Fe(e="",t="",{operation:r="",targetUser:n={}}={}){if(r==="health-status")
351
+ return Y(t);if(r==="workspace-cache-command"){let i=u.join(n.home,".local/state/vibe64/cache-maintenance"),s=b(e),a=C(i,
352
+ s);if(n.username!==t||b(i)!==i||s!==e||a.length!==1||!/^[a-z][a-z0-9-]*-[A-Za-z0-9]{6}$/u.test(a[0]))throw new Error("Ca\
353
+ che maintenance requires an owned workspace scratch directory.");return s}let o=String(e||"").trim();if(!o)return"/";if(r===
354
+ "account-auth-terminal"||r==="account-status"||r==="github-api-command")return ur(o,n);if(r==="vibe64-command"&&n.username===
355
+ t){let i=b(o),s=u.join(n.home,".local","state","vibe64","projects");if(T(s)){let m=b(s);if(i===m||i.startsWith(`${m}${u.
356
+ sep}`))return i}let a=u.join(n.home,".local","state","vibe64","colleague");if(T(a)){let m=C(b(a),i);if(m.length===2&&/^[A-Za-z0-9_-]+$/u.
357
+ test(m[0])&&/^colleague_[a-f0-9]{32}$/u.test(m[1]))return i}let c=u.join(n.home,".local","state","vibe64","training-sour\
358
+ ces");if(T(c)){let m=C(b(c),i);if(m.length===1&&/^(catalogue|topic)-[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/u.
359
+ test(m[0]))return i}}if(r==="codex-app-server"||r==="opencode-app-server"){let i=b(o),s=Number(n.uid),a=[se({username:t})];
360
+ Number.isSafeInteger(s)&&s>=0&&a.push(u.join("/run/user",String(s)));for(let c of a){let m=u.join(c,"vibe64","agent-prov\
361
+ iders");if(!T(m))continue;let p=b(m),d=C(p,i),l=d[0],f=r==="opencode-app-server"?l==="opencode":l==="codex-app-server"||
362
+ /^codex-app-server-[a-f0-9]{12}$/u.test(l),g=r==="codex-app-server"&&d.length===1,x=d.length===2&&d[1]==="workspace";if(f&&
363
+ (g||x))return i}}return cr(o,t)}function cr(e="",t=""){let r=String(e||"").trim();if(!r)throw new Error("Vibe64 exec hel\
364
+ per rejected an empty managed project path.");let n=b(r),o=b(u.join("/var/lib/vibe64",$(t),"projects"));if(n.startsWith(
357
365
  `${o}${u.sep}`))return n;throw new Error("Vibe64 exec helper rejected a command path outside the owner project root.")}function ur(e="",t={}){
358
366
  let r=String(e||"").trim(),n=String(t.home||"").trim();if(!r||!n)throw new Error("Vibe64 exec helper rejected an empty u\
359
- ser command path.");let o=k(r),i=k(n);if(o===i||o.startsWith(`${i}${u.sep}`))return o;throw new Error("Vibe64 exec helpe\
360
- r rejected a command path outside the target user home.")}function I(e=""){return e.startsWith(re)?e.slice(re.length):e}
361
- function Y(e=""){return u.join(mt,I(_(e)),"tmp")}function be(e={},t={},r="",n=""){let o={PATH:ie,TERM:w.env.TERM||"xterm\
362
- -256color"};for(let[i,s]of Object.entries(e))!at.test(i)||ut.has(i)||i.startsWith("LD_")||i.startsWith("DYLD_")||(o[i]=String(
367
+ ser command path.");let o=b(r),i=b(n);if(o===i||o.startsWith(`${i}${u.sep}`))return o;throw new Error("Vibe64 exec helpe\
368
+ r rejected a command path outside the target user home.")}function $(e=""){return e.startsWith(re)?e.slice(re.length):e}
369
+ function Y(e=""){return u.join(lt,$(N(e)),"tmp")}function be(e={},t={},r="",n=""){let o={PATH:ie,TERM:w.env.TERM||"xterm\
370
+ -256color"};for(let[i,s]of Object.entries(e))!ct.test(i)||ut.has(i)||i.startsWith("LD_")||i.startsWith("DYLD_")||(o[i]=String(
363
371
  s));if(n==="opencode-app-server"){let i=u.join(se({username:r}),"vibe64","agent-providers","opencode");for(let s of["HOM\
364
- E","XDG_CACHE_HOME","XDG_CONFIG_HOME","XDG_DATA_HOME","XDG_STATE_HOME"]){let c=String(e[s]||"").trim();if(!u.isAbsolute(
365
- c)||U(i,c).length===0)throw new Error(`Vibe64 exec helper rejected OpenCode ${s} outside its provider runtime.`);o[s]=u.
366
- resolve(c)}}else o.HOME=t.home,o.XDG_CACHE_HOME=u.join(t.home,".cache"),o.XDG_CONFIG_HOME=u.join(t.home,".config"),o.XDG_DATA_HOME=
367
- u.join(t.home,".local","share");return o.LOGNAME=t.username,o.USER=t.username,o.TMPDIR=Y(r),o}export{ne as assertExpectedId,k as canonicalPath,be as helperChildEnv,Vt as managedExecutionOomBoundary,Be as managedExecutionTaskLimitCounters,
368
- Ut as managedExecutionTaskLimitJournal,ge as managedWorkflowCounters,Ce as managedWorkflowIdentity,ze as resolveAllowedCwd,
369
- nr as resolveAllowedDeploymentServicePath,ur as resolveAllowedUserHomePath,Et as runUserCommand};
372
+ E","XDG_CACHE_HOME","XDG_CONFIG_HOME","XDG_DATA_HOME","XDG_STATE_HOME"]){let a=String(e[s]||"").trim();if(!u.isAbsolute(
373
+ a)||C(i,a).length===0)throw new Error(`Vibe64 exec helper rejected OpenCode ${s} outside its provider runtime.`);o[s]=u.
374
+ resolve(a)}}else o.HOME=t.home,o.XDG_CACHE_HOME=u.join(t.home,".cache"),o.XDG_CONFIG_HOME=u.join(t.home,".config"),o.XDG_DATA_HOME=
375
+ u.join(t.home,".local","share");return o.LOGNAME=t.username,o.USER=t.username,o.TMPDIR=Y(r),o}export{ne as assertExpectedId,b as canonicalPath,be as helperChildEnv,Vt as managedExecutionOomBoundary,K as managedExecutionState,
376
+ Be as managedExecutionTaskLimitCounters,Ut as managedExecutionTaskLimitJournal,ge as managedWorkflowCounters,Ce as managedWorkflowIdentity,
377
+ Fe as resolveAllowedCwd,nr as resolveAllowedDeploymentServicePath,ur as resolveAllowedUserHomePath,Et as runUserCommand};