@happier-dev/stack 0.2.12 → 0.2.13

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 (520) hide show
  1. package/README.md +2 -2
  2. package/node_modules/@happier-dev/agents/dist/acp.d.ts +14 -1
  3. package/node_modules/@happier-dev/agents/dist/acp.d.ts.map +1 -1
  4. package/node_modules/@happier-dev/agents/dist/acp.js +88 -0
  5. package/node_modules/@happier-dev/agents/dist/acp.js.map +1 -1
  6. package/node_modules/@happier-dev/agents/dist/auth.d.ts +1 -1
  7. package/node_modules/@happier-dev/agents/dist/auth.d.ts.map +1 -1
  8. package/node_modules/@happier-dev/agents/dist/auth.js +33 -0
  9. package/node_modules/@happier-dev/agents/dist/auth.js.map +1 -1
  10. package/node_modules/@happier-dev/agents/dist/index.d.ts +7 -7
  11. package/node_modules/@happier-dev/agents/dist/index.d.ts.map +1 -1
  12. package/node_modules/@happier-dev/agents/dist/index.js +7 -7
  13. package/node_modules/@happier-dev/agents/dist/index.js.map +1 -1
  14. package/node_modules/@happier-dev/agents/dist/localCli.d.ts +8 -2
  15. package/node_modules/@happier-dev/agents/dist/localCli.d.ts.map +1 -1
  16. package/node_modules/@happier-dev/agents/dist/localCli.js +38 -8
  17. package/node_modules/@happier-dev/agents/dist/localCli.js.map +1 -1
  18. package/node_modules/@happier-dev/agents/dist/localControl.d.ts +5 -0
  19. package/node_modules/@happier-dev/agents/dist/localControl.d.ts.map +1 -1
  20. package/node_modules/@happier-dev/agents/dist/localControl.js +21 -0
  21. package/node_modules/@happier-dev/agents/dist/localControl.js.map +1 -1
  22. package/node_modules/@happier-dev/agents/dist/manifest.d.ts +213 -12
  23. package/node_modules/@happier-dev/agents/dist/manifest.d.ts.map +1 -1
  24. package/node_modules/@happier-dev/agents/dist/manifest.js +135 -14
  25. package/node_modules/@happier-dev/agents/dist/manifest.js.map +1 -1
  26. package/node_modules/@happier-dev/agents/dist/models.d.ts.map +1 -1
  27. package/node_modules/@happier-dev/agents/dist/models.js +64 -4
  28. package/node_modules/@happier-dev/agents/dist/models.js.map +1 -1
  29. package/node_modules/@happier-dev/agents/dist/providerSettings/definitions/claudeRemote.d.ts +15 -0
  30. package/node_modules/@happier-dev/agents/dist/providerSettings/definitions/claudeRemote.d.ts.map +1 -1
  31. package/node_modules/@happier-dev/agents/dist/providerSettings/definitions/claudeRemote.js +7 -0
  32. package/node_modules/@happier-dev/agents/dist/providerSettings/definitions/claudeRemote.js.map +1 -1
  33. package/node_modules/@happier-dev/agents/dist/providerSettings/definitions/kimi.d.ts +3 -32
  34. package/node_modules/@happier-dev/agents/dist/providerSettings/definitions/kimi.d.ts.map +1 -1
  35. package/node_modules/@happier-dev/agents/dist/providerSettings/definitions/kimi.js +2 -21
  36. package/node_modules/@happier-dev/agents/dist/providerSettings/definitions/kimi.js.map +1 -1
  37. package/node_modules/@happier-dev/agents/dist/providerSettings/definitions/opencode.d.ts +25 -0
  38. package/node_modules/@happier-dev/agents/dist/providerSettings/definitions/opencode.d.ts.map +1 -1
  39. package/node_modules/@happier-dev/agents/dist/providerSettings/definitions/opencode.js +13 -0
  40. package/node_modules/@happier-dev/agents/dist/providerSettings/definitions/opencode.js.map +1 -1
  41. package/node_modules/@happier-dev/agents/dist/providerSettings/index.d.ts +3 -4
  42. package/node_modules/@happier-dev/agents/dist/providerSettings/index.d.ts.map +1 -1
  43. package/node_modules/@happier-dev/agents/dist/providerSettings/index.js +2 -2
  44. package/node_modules/@happier-dev/agents/dist/providerSettings/index.js.map +1 -1
  45. package/node_modules/@happier-dev/agents/dist/providers/claude/contextWindow.d.ts +2 -2
  46. package/node_modules/@happier-dev/agents/dist/providers/claude/contextWindow.d.ts.map +1 -1
  47. package/node_modules/@happier-dev/agents/dist/providers/claude/contextWindow.js +6 -2
  48. package/node_modules/@happier-dev/agents/dist/providers/claude/contextWindow.js.map +1 -1
  49. package/node_modules/@happier-dev/agents/dist/providers/claude/effort.d.ts.map +1 -1
  50. package/node_modules/@happier-dev/agents/dist/providers/claude/effort.js +4 -0
  51. package/node_modules/@happier-dev/agents/dist/providers/claude/effort.js.map +1 -1
  52. package/node_modules/@happier-dev/agents/dist/providers/claude/flagshipModel.d.ts +1 -1
  53. package/node_modules/@happier-dev/agents/dist/providers/claude/flagshipModel.d.ts.map +1 -1
  54. package/node_modules/@happier-dev/agents/dist/providers/claude/flagshipModel.js +1 -1
  55. package/node_modules/@happier-dev/agents/dist/providers/claude/flagshipModel.js.map +1 -1
  56. package/node_modules/@happier-dev/agents/dist/providers/claude/index.d.ts +1 -0
  57. package/node_modules/@happier-dev/agents/dist/providers/claude/index.d.ts.map +1 -1
  58. package/node_modules/@happier-dev/agents/dist/providers/claude/index.js +1 -0
  59. package/node_modules/@happier-dev/agents/dist/providers/claude/index.js.map +1 -1
  60. package/node_modules/@happier-dev/agents/dist/providers/claude/internalEventTypes.d.ts +3 -0
  61. package/node_modules/@happier-dev/agents/dist/providers/claude/internalEventTypes.d.ts.map +1 -0
  62. package/node_modules/@happier-dev/agents/dist/providers/claude/internalEventTypes.js +27 -0
  63. package/node_modules/@happier-dev/agents/dist/providers/claude/internalEventTypes.js.map +1 -0
  64. package/node_modules/@happier-dev/agents/dist/providers/providerCliRuntime.d.ts +33 -0
  65. package/node_modules/@happier-dev/agents/dist/providers/providerCliRuntime.d.ts.map +1 -1
  66. package/node_modules/@happier-dev/agents/dist/providers/providerCliRuntime.js +121 -6
  67. package/node_modules/@happier-dev/agents/dist/providers/providerCliRuntime.js.map +1 -1
  68. package/node_modules/@happier-dev/agents/dist/sessionControls/existingSessionAutomationPolicy.d.ts +16 -0
  69. package/node_modules/@happier-dev/agents/dist/sessionControls/existingSessionAutomationPolicy.d.ts.map +1 -1
  70. package/node_modules/@happier-dev/agents/dist/sessionControls/existingSessionAutomationPolicy.js +34 -7
  71. package/node_modules/@happier-dev/agents/dist/sessionControls/existingSessionAutomationPolicy.js.map +1 -1
  72. package/node_modules/@happier-dev/agents/dist/sessionControls/providerSessionBackends.d.ts +5 -0
  73. package/node_modules/@happier-dev/agents/dist/sessionControls/providerSessionBackends.d.ts.map +1 -1
  74. package/node_modules/@happier-dev/agents/dist/sessionControls/providerSessionBackends.js +9 -17
  75. package/node_modules/@happier-dev/agents/dist/sessionControls/providerSessionBackends.js.map +1 -1
  76. package/node_modules/@happier-dev/agents/dist/sessionControls/vendorResumePolicy.d.ts +10 -1
  77. package/node_modules/@happier-dev/agents/dist/sessionControls/vendorResumePolicy.d.ts.map +1 -1
  78. package/node_modules/@happier-dev/agents/dist/sessionControls/vendorResumePolicy.js +30 -1
  79. package/node_modules/@happier-dev/agents/dist/sessionControls/vendorResumePolicy.js.map +1 -1
  80. package/node_modules/@happier-dev/agents/dist/sessionModes.d.ts.map +1 -1
  81. package/node_modules/@happier-dev/agents/dist/sessionModes.js +10 -1
  82. package/node_modules/@happier-dev/agents/dist/sessionModes.js.map +1 -1
  83. package/node_modules/@happier-dev/agents/dist/types.d.ts +7 -5
  84. package/node_modules/@happier-dev/agents/dist/types.d.ts.map +1 -1
  85. package/node_modules/@happier-dev/agents/dist/types.js +4 -4
  86. package/node_modules/@happier-dev/agents/dist/types.js.map +1 -1
  87. package/node_modules/@happier-dev/cli-common/dist/componentArtifacts/buildCliBinaryArtifactPayload.d.ts.map +1 -1
  88. package/node_modules/@happier-dev/cli-common/dist/componentArtifacts/buildCliBinaryArtifactPayload.js +17 -21
  89. package/node_modules/@happier-dev/cli-common/dist/componentArtifacts/buildCliBinaryArtifactPayload.js.map +1 -1
  90. package/node_modules/@happier-dev/cli-common/dist/componentArtifacts/buildCliOptionalComponentArtifactPayload.d.ts +9 -0
  91. package/node_modules/@happier-dev/cli-common/dist/componentArtifacts/buildCliOptionalComponentArtifactPayload.d.ts.map +1 -0
  92. package/node_modules/@happier-dev/cli-common/dist/componentArtifacts/buildCliOptionalComponentArtifactPayload.js +45 -0
  93. package/node_modules/@happier-dev/cli-common/dist/componentArtifacts/buildCliOptionalComponentArtifactPayload.js.map +1 -0
  94. package/node_modules/@happier-dev/cli-common/dist/componentArtifacts/buildServerBinaryArtifactPayload.d.ts.map +1 -1
  95. package/node_modules/@happier-dev/cli-common/dist/componentArtifacts/buildServerBinaryArtifactPayload.js +18 -5
  96. package/node_modules/@happier-dev/cli-common/dist/componentArtifacts/buildServerBinaryArtifactPayload.js.map +1 -1
  97. package/node_modules/@happier-dev/cli-common/dist/componentArtifacts/commands.d.ts +2 -1
  98. package/node_modules/@happier-dev/cli-common/dist/componentArtifacts/commands.d.ts.map +1 -1
  99. package/node_modules/@happier-dev/cli-common/dist/componentArtifacts/commands.js +7 -1
  100. package/node_modules/@happier-dev/cli-common/dist/componentArtifacts/commands.js.map +1 -1
  101. package/node_modules/@happier-dev/cli-common/dist/componentArtifacts/finalizeRuntimeArtifactPayload.d.ts +2 -1
  102. package/node_modules/@happier-dev/cli-common/dist/componentArtifacts/finalizeRuntimeArtifactPayload.d.ts.map +1 -1
  103. package/node_modules/@happier-dev/cli-common/dist/componentArtifacts/finalizeRuntimeArtifactPayload.js +348 -13
  104. package/node_modules/@happier-dev/cli-common/dist/componentArtifacts/finalizeRuntimeArtifactPayload.js.map +1 -1
  105. package/node_modules/@happier-dev/cli-common/dist/componentArtifacts/index.d.ts +1 -0
  106. package/node_modules/@happier-dev/cli-common/dist/componentArtifacts/index.d.ts.map +1 -1
  107. package/node_modules/@happier-dev/cli-common/dist/componentArtifacts/index.js +1 -0
  108. package/node_modules/@happier-dev/cli-common/dist/componentArtifacts/index.js.map +1 -1
  109. package/node_modules/@happier-dev/cli-common/dist/componentArtifacts/refreshCliBinaryArtifactRuntimeAssetBuildManifest.d.ts +3 -0
  110. package/node_modules/@happier-dev/cli-common/dist/componentArtifacts/refreshCliBinaryArtifactRuntimeAssetBuildManifest.d.ts.map +1 -1
  111. package/node_modules/@happier-dev/cli-common/dist/componentArtifacts/refreshCliBinaryArtifactRuntimeAssetBuildManifest.js +19 -0
  112. package/node_modules/@happier-dev/cli-common/dist/componentArtifacts/refreshCliBinaryArtifactRuntimeAssetBuildManifest.js.map +1 -1
  113. package/node_modules/@happier-dev/cli-common/dist/componentArtifacts/targets.d.ts +1 -0
  114. package/node_modules/@happier-dev/cli-common/dist/componentArtifacts/targets.d.ts.map +1 -1
  115. package/node_modules/@happier-dev/cli-common/dist/componentArtifacts/targets.js +14 -0
  116. package/node_modules/@happier-dev/cli-common/dist/componentArtifacts/targets.js.map +1 -1
  117. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/acquisitionProgress.d.ts +14 -0
  118. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/acquisitionProgress.d.ts.map +1 -0
  119. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/acquisitionProgress.js +34 -0
  120. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/acquisitionProgress.js.map +1 -0
  121. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/componentCatalog.d.ts +27 -1
  122. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/componentCatalog.d.ts.map +1 -1
  123. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/componentCatalog.js +29 -1
  124. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/componentCatalog.js.map +1 -1
  125. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/copyRuntimePayloadTree.d.ts +1 -1
  126. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/copyRuntimePayloadTree.d.ts.map +1 -1
  127. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/copyRuntimePayloadTree.js +6 -14
  128. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/copyRuntimePayloadTree.js.map +1 -1
  129. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/ensureHappierCliPathExposure.d.ts +125 -0
  130. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/ensureHappierCliPathExposure.d.ts.map +1 -0
  131. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/ensureHappierCliPathExposure.js +494 -0
  132. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/ensureHappierCliPathExposure.js.map +1 -0
  133. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/extractReleasePayloadRootFromArchive.d.ts +1 -0
  134. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/extractReleasePayloadRootFromArchive.d.ts.map +1 -1
  135. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/extractReleasePayloadRootFromArchive.js +1 -0
  136. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/extractReleasePayloadRootFromArchive.js.map +1 -1
  137. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/happierCliChoice.d.ts +27 -0
  138. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/happierCliChoice.d.ts.map +1 -0
  139. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/happierCliChoice.js +36 -0
  140. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/happierCliChoice.js.map +1 -0
  141. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/happierCliOrigin.d.ts +31 -0
  142. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/happierCliOrigin.d.ts.map +1 -0
  143. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/happierCliOrigin.js +81 -0
  144. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/happierCliOrigin.js.map +1 -0
  145. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/index.d.ts +14 -8
  146. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/index.d.ts.map +1 -1
  147. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/index.js +8 -5
  148. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/index.js.map +1 -1
  149. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/installVersionedPayload.d.ts +54 -1
  150. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/installVersionedPayload.d.ts.map +1 -1
  151. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/installVersionedPayload.js +92 -24
  152. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/installVersionedPayload.js.map +1 -1
  153. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/prepareFirstPartyComponentPayloadFromGitHubRelease.d.ts +25 -1
  154. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/prepareFirstPartyComponentPayloadFromGitHubRelease.d.ts.map +1 -1
  155. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/prepareFirstPartyComponentPayloadFromGitHubRelease.js +79 -45
  156. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/prepareFirstPartyComponentPayloadFromGitHubRelease.js.map +1 -1
  157. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/restoreInstalledPayloadState.d.ts +50 -0
  158. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/restoreInstalledPayloadState.d.ts.map +1 -0
  159. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/restoreInstalledPayloadState.js +136 -0
  160. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/restoreInstalledPayloadState.js.map +1 -0
  161. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/runManagedCliUpdate.d.ts +117 -0
  162. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/runManagedCliUpdate.d.ts.map +1 -0
  163. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/runManagedCliUpdate.js +272 -0
  164. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/runManagedCliUpdate.js.map +1 -0
  165. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/selfHostServerEnv.d.ts.map +1 -1
  166. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/selfHostServerEnv.js +19 -13
  167. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/selfHostServerEnv.js.map +1 -1
  168. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/serverRuntimeArtifactLayout.d.ts +0 -4
  169. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/serverRuntimeArtifactLayout.d.ts.map +1 -1
  170. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/serverRuntimeArtifactLayout.js +0 -20
  171. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/serverRuntimeArtifactLayout.js.map +1 -1
  172. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/withFirstPartyPayloadMutationLock.d.ts +36 -0
  173. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/withFirstPartyPayloadMutationLock.d.ts.map +1 -0
  174. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/withFirstPartyPayloadMutationLock.js +155 -0
  175. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/withFirstPartyPayloadMutationLock.js.map +1 -0
  176. package/node_modules/@happier-dev/cli-common/dist/fs/windowsProtectedAcl.d.ts.map +1 -1
  177. package/node_modules/@happier-dev/cli-common/dist/fs/windowsProtectedAcl.js +20 -16
  178. package/node_modules/@happier-dev/cli-common/dist/fs/windowsProtectedAcl.js.map +1 -1
  179. package/node_modules/@happier-dev/cli-common/dist/output/index.d.ts +1 -0
  180. package/node_modules/@happier-dev/cli-common/dist/output/index.d.ts.map +1 -1
  181. package/node_modules/@happier-dev/cli-common/dist/output/index.js +1 -0
  182. package/node_modules/@happier-dev/cli-common/dist/output/index.js.map +1 -1
  183. package/node_modules/@happier-dev/cli-common/dist/output/planet.d.ts.map +1 -1
  184. package/node_modules/@happier-dev/cli-common/dist/output/planet.js +19 -52
  185. package/node_modules/@happier-dev/cli-common/dist/output/planet.js.map +1 -1
  186. package/node_modules/@happier-dev/cli-common/dist/process/index.d.ts +2 -1
  187. package/node_modules/@happier-dev/cli-common/dist/process/index.d.ts.map +1 -1
  188. package/node_modules/@happier-dev/cli-common/dist/process/index.js +1 -1
  189. package/node_modules/@happier-dev/cli-common/dist/process/index.js.map +1 -1
  190. package/node_modules/@happier-dev/cli-common/dist/process/runCommandStreaming.d.ts +39 -0
  191. package/node_modules/@happier-dev/cli-common/dist/process/runCommandStreaming.d.ts.map +1 -1
  192. package/node_modules/@happier-dev/cli-common/dist/process/runCommandStreaming.js +95 -28
  193. package/node_modules/@happier-dev/cli-common/dist/process/runCommandStreaming.js.map +1 -1
  194. package/node_modules/@happier-dev/cli-common/dist/process/windows/resolveWindowsCommandInvocation.d.ts +6 -1
  195. package/node_modules/@happier-dev/cli-common/dist/process/windows/resolveWindowsCommandInvocation.d.ts.map +1 -1
  196. package/node_modules/@happier-dev/cli-common/dist/process/windows/resolveWindowsCommandInvocation.js +7 -2
  197. package/node_modules/@happier-dev/cli-common/dist/process/windows/resolveWindowsCommandInvocation.js.map +1 -1
  198. package/node_modules/@happier-dev/cli-common/dist/providers/index.d.ts +6 -4
  199. package/node_modules/@happier-dev/cli-common/dist/providers/index.d.ts.map +1 -1
  200. package/node_modules/@happier-dev/cli-common/dist/providers/index.js +4 -3
  201. package/node_modules/@happier-dev/cli-common/dist/providers/index.js.map +1 -1
  202. package/node_modules/@happier-dev/cli-common/dist/providers/install.d.ts +27 -1
  203. package/node_modules/@happier-dev/cli-common/dist/providers/install.d.ts.map +1 -1
  204. package/node_modules/@happier-dev/cli-common/dist/providers/install.js +164 -56
  205. package/node_modules/@happier-dev/cli-common/dist/providers/install.js.map +1 -1
  206. package/node_modules/@happier-dev/cli-common/dist/providers/installCommandTimeout.d.ts +7 -0
  207. package/node_modules/@happier-dev/cli-common/dist/providers/installCommandTimeout.d.ts.map +1 -0
  208. package/node_modules/@happier-dev/cli-common/dist/providers/installCommandTimeout.js +17 -0
  209. package/node_modules/@happier-dev/cli-common/dist/providers/installCommandTimeout.js.map +1 -0
  210. package/node_modules/@happier-dev/cli-common/dist/providers/managedPnpm.d.ts +10 -0
  211. package/node_modules/@happier-dev/cli-common/dist/providers/managedPnpm.d.ts.map +1 -1
  212. package/node_modules/@happier-dev/cli-common/dist/providers/managedPnpm.js +47 -10
  213. package/node_modules/@happier-dev/cli-common/dist/providers/managedPnpm.js.map +1 -1
  214. package/node_modules/@happier-dev/cli-common/dist/providers/resolution.d.ts +8 -0
  215. package/node_modules/@happier-dev/cli-common/dist/providers/resolution.d.ts.map +1 -1
  216. package/node_modules/@happier-dev/cli-common/dist/providers/resolution.js +71 -0
  217. package/node_modules/@happier-dev/cli-common/dist/providers/resolution.js.map +1 -1
  218. package/node_modules/@happier-dev/cli-common/dist/providers/update.d.ts +54 -0
  219. package/node_modules/@happier-dev/cli-common/dist/providers/update.d.ts.map +1 -0
  220. package/node_modules/@happier-dev/cli-common/dist/providers/update.js +184 -0
  221. package/node_modules/@happier-dev/cli-common/dist/providers/update.js.map +1 -0
  222. package/node_modules/@happier-dev/cli-common/dist/service/launchd.d.ts +7 -0
  223. package/node_modules/@happier-dev/cli-common/dist/service/launchd.d.ts.map +1 -1
  224. package/node_modules/@happier-dev/cli-common/dist/service/launchd.js +1 -1
  225. package/node_modules/@happier-dev/cli-common/dist/service/launchd.js.map +1 -1
  226. package/node_modules/@happier-dev/cli-common/dist/service/manager.d.ts.map +1 -1
  227. package/node_modules/@happier-dev/cli-common/dist/service/manager.js +20 -1
  228. package/node_modules/@happier-dev/cli-common/dist/service/manager.js.map +1 -1
  229. package/node_modules/@happier-dev/cli-common/dist/service/windows.d.ts +7 -0
  230. package/node_modules/@happier-dev/cli-common/dist/service/windows.d.ts.map +1 -1
  231. package/node_modules/@happier-dev/cli-common/dist/service/windows.js +9 -31
  232. package/node_modules/@happier-dev/cli-common/dist/service/windows.js.map +1 -1
  233. package/node_modules/@happier-dev/cli-common/dist/systemTasks/runSystemTask.d.ts +2 -0
  234. package/node_modules/@happier-dev/cli-common/dist/systemTasks/runSystemTask.d.ts.map +1 -1
  235. package/node_modules/@happier-dev/cli-common/dist/systemTasks/runSystemTask.js +8 -0
  236. package/node_modules/@happier-dev/cli-common/dist/systemTasks/runSystemTask.js.map +1 -1
  237. package/node_modules/@happier-dev/cli-common/dist/update/index.d.ts +70 -1
  238. package/node_modules/@happier-dev/cli-common/dist/update/index.d.ts.map +1 -1
  239. package/node_modules/@happier-dev/cli-common/dist/update/index.js +102 -5
  240. package/node_modules/@happier-dev/cli-common/dist/update/index.js.map +1 -1
  241. package/node_modules/@happier-dev/cli-common/dist/workspaces/index.d.ts +1 -0
  242. package/node_modules/@happier-dev/cli-common/dist/workspaces/index.d.ts.map +1 -1
  243. package/node_modules/@happier-dev/cli-common/dist/workspaces/index.js +24 -2
  244. package/node_modules/@happier-dev/cli-common/dist/workspaces/index.js.map +1 -1
  245. package/node_modules/@happier-dev/cli-common/nodePtySpawnHelperPermissions.cjs +48 -0
  246. package/node_modules/@happier-dev/cli-common/nodePtySpawnHelperPermissions.d.cts +2 -0
  247. package/node_modules/@happier-dev/cli-common/numericPlanetFrame.d.mts +12 -0
  248. package/node_modules/@happier-dev/cli-common/numericPlanetFrame.mjs +36 -0
  249. package/node_modules/@happier-dev/cli-common/package.json +11 -0
  250. package/node_modules/@happier-dev/connection-supervisor/dist/createManagedConnectionSupervisor.d.ts.map +1 -1
  251. package/node_modules/@happier-dev/connection-supervisor/dist/createManagedConnectionSupervisor.js +16 -6
  252. package/node_modules/@happier-dev/connection-supervisor/dist/createManagedConnectionSupervisor.js.map +1 -1
  253. package/node_modules/@happier-dev/connection-supervisor/dist/createManagedEndpointSupervisor.d.ts.map +1 -1
  254. package/node_modules/@happier-dev/connection-supervisor/dist/createManagedEndpointSupervisor.js +7 -1
  255. package/node_modules/@happier-dev/connection-supervisor/dist/createManagedEndpointSupervisor.js.map +1 -1
  256. package/node_modules/@happier-dev/connection-supervisor/dist/index.d.ts +1 -1
  257. package/node_modules/@happier-dev/connection-supervisor/dist/index.d.ts.map +1 -1
  258. package/node_modules/@happier-dev/connection-supervisor/dist/managedConnectionTypes.d.ts +5 -1
  259. package/node_modules/@happier-dev/connection-supervisor/dist/managedConnectionTypes.d.ts.map +1 -1
  260. package/node_modules/@happier-dev/connection-supervisor/dist/managedEndpointSupervisorTypes.d.ts +3 -2
  261. package/node_modules/@happier-dev/connection-supervisor/dist/managedEndpointSupervisorTypes.d.ts.map +1 -1
  262. package/node_modules/@happier-dev/protocol/dist/account/settings/accountSettings.d.ts +4 -0
  263. package/node_modules/@happier-dev/protocol/dist/account/settings/accountSettings.d.ts.map +1 -1
  264. package/node_modules/@happier-dev/protocol/dist/account/settings/accountSettings.js +2 -0
  265. package/node_modules/@happier-dev/protocol/dist/account/settings/accountSettings.js.map +1 -1
  266. package/node_modules/@happier-dev/protocol/dist/actions/actionExecutor.d.ts.map +1 -1
  267. package/node_modules/@happier-dev/protocol/dist/actions/actionExecutor.js +4 -9
  268. package/node_modules/@happier-dev/protocol/dist/actions/actionExecutor.js.map +1 -1
  269. package/node_modules/@happier-dev/protocol/dist/actions/actionSpecs.d.ts +7 -0
  270. package/node_modules/@happier-dev/protocol/dist/actions/actionSpecs.d.ts.map +1 -1
  271. package/node_modules/@happier-dev/protocol/dist/actions/actionSpecs.js +27 -17
  272. package/node_modules/@happier-dev/protocol/dist/actions/actionSpecs.js.map +1 -1
  273. package/node_modules/@happier-dev/protocol/dist/actions/actionToolExposure.d.ts +6 -1
  274. package/node_modules/@happier-dev/protocol/dist/actions/actionToolExposure.d.ts.map +1 -1
  275. package/node_modules/@happier-dev/protocol/dist/actions/actionToolExposure.js +11 -1
  276. package/node_modules/@happier-dev/protocol/dist/actions/actionToolExposure.js.map +1 -1
  277. package/node_modules/@happier-dev/protocol/dist/actions/executionRunActionPermissionMode.d.ts +5 -2
  278. package/node_modules/@happier-dev/protocol/dist/actions/executionRunActionPermissionMode.d.ts.map +1 -1
  279. package/node_modules/@happier-dev/protocol/dist/actions/executionRunActionPermissionMode.js +25 -3
  280. package/node_modules/@happier-dev/protocol/dist/actions/executionRunActionPermissionMode.js.map +1 -1
  281. package/node_modules/@happier-dev/protocol/dist/actions/index.d.ts +1 -1
  282. package/node_modules/@happier-dev/protocol/dist/actions/index.d.ts.map +1 -1
  283. package/node_modules/@happier-dev/protocol/dist/actions/index.js +1 -1
  284. package/node_modules/@happier-dev/protocol/dist/actions/index.js.map +1 -1
  285. package/node_modules/@happier-dev/protocol/dist/bugReports/export.d.ts +19 -0
  286. package/node_modules/@happier-dev/protocol/dist/bugReports/export.d.ts.map +1 -0
  287. package/node_modules/@happier-dev/protocol/dist/bugReports/export.js +17 -0
  288. package/node_modules/@happier-dev/protocol/dist/bugReports/export.js.map +1 -0
  289. package/node_modules/@happier-dev/protocol/dist/bugReports/submit.d.ts.map +1 -1
  290. package/node_modules/@happier-dev/protocol/dist/bugReports/submit.js +6 -5
  291. package/node_modules/@happier-dev/protocol/dist/bugReports/submit.js.map +1 -1
  292. package/node_modules/@happier-dev/protocol/dist/bugReports.d.ts +1 -0
  293. package/node_modules/@happier-dev/protocol/dist/bugReports.d.ts.map +1 -1
  294. package/node_modules/@happier-dev/protocol/dist/bugReports.js +1 -0
  295. package/node_modules/@happier-dev/protocol/dist/bugReports.js.map +1 -1
  296. package/node_modules/@happier-dev/protocol/dist/connect/accountUsage.d.ts +4 -0
  297. package/node_modules/@happier-dev/protocol/dist/connect/accountUsage.d.ts.map +1 -1
  298. package/node_modules/@happier-dev/protocol/dist/connect/connectedServiceAuthGroupMemberRuntimeStatePolicy.d.ts.map +1 -1
  299. package/node_modules/@happier-dev/protocol/dist/connect/connectedServiceAuthGroupMemberRuntimeStatePolicy.js +3 -0
  300. package/node_modules/@happier-dev/protocol/dist/connect/connectedServiceAuthGroupMemberRuntimeStatePolicy.js.map +1 -1
  301. package/node_modules/@happier-dev/protocol/dist/connect/connectedServiceQuotaLimitSelection.d.ts +11 -0
  302. package/node_modules/@happier-dev/protocol/dist/connect/connectedServiceQuotaLimitSelection.d.ts.map +1 -0
  303. package/node_modules/@happier-dev/protocol/dist/connect/connectedServiceQuotaLimitSelection.js +20 -0
  304. package/node_modules/@happier-dev/protocol/dist/connect/connectedServiceQuotaLimitSelection.js.map +1 -0
  305. package/node_modules/@happier-dev/protocol/dist/connect/connectedServiceSchemas.d.ts +127 -0
  306. package/node_modules/@happier-dev/protocol/dist/connect/connectedServiceSchemas.d.ts.map +1 -1
  307. package/node_modules/@happier-dev/protocol/dist/connect/connectedServiceSchemas.js +45 -1
  308. package/node_modules/@happier-dev/protocol/dist/connect/connectedServiceSchemas.js.map +1 -1
  309. package/node_modules/@happier-dev/protocol/dist/connect/normalizeConnectedServiceSelectionInput.d.ts +5 -4
  310. package/node_modules/@happier-dev/protocol/dist/connect/normalizeConnectedServiceSelectionInput.d.ts.map +1 -1
  311. package/node_modules/@happier-dev/protocol/dist/connect/normalizeConnectedServiceSelectionInput.js +8 -2
  312. package/node_modules/@happier-dev/protocol/dist/connect/normalizeConnectedServiceSelectionInput.js.map +1 -1
  313. package/node_modules/@happier-dev/protocol/dist/connect/quotaObservationTime.d.ts +21 -0
  314. package/node_modules/@happier-dev/protocol/dist/connect/quotaObservationTime.d.ts.map +1 -0
  315. package/node_modules/@happier-dev/protocol/dist/connect/quotaObservationTime.js +39 -0
  316. package/node_modules/@happier-dev/protocol/dist/connect/quotaObservationTime.js.map +1 -0
  317. package/node_modules/@happier-dev/protocol/dist/daemonExecutionRuns.d.ts +12 -0
  318. package/node_modules/@happier-dev/protocol/dist/daemonExecutionRuns.d.ts.map +1 -1
  319. package/node_modules/@happier-dev/protocol/dist/daemonExecutionRuns.js +2 -1
  320. package/node_modules/@happier-dev/protocol/dist/daemonExecutionRuns.js.map +1 -1
  321. package/node_modules/@happier-dev/protocol/dist/daemonTerminal.d.ts +9 -0
  322. package/node_modules/@happier-dev/protocol/dist/daemonTerminal.d.ts.map +1 -1
  323. package/node_modules/@happier-dev/protocol/dist/daemonTerminal.js +4 -0
  324. package/node_modules/@happier-dev/protocol/dist/daemonTerminal.js.map +1 -1
  325. package/node_modules/@happier-dev/protocol/dist/diagnostics/doctorSnapshot.d.ts +129 -0
  326. package/node_modules/@happier-dev/protocol/dist/diagnostics/doctorSnapshot.d.ts.map +1 -1
  327. package/node_modules/@happier-dev/protocol/dist/diagnostics/doctorSnapshot.js +48 -0
  328. package/node_modules/@happier-dev/protocol/dist/diagnostics/doctorSnapshot.js.map +1 -1
  329. package/node_modules/@happier-dev/protocol/dist/directSessions/daemonRpcV1.d.ts +197 -0
  330. package/node_modules/@happier-dev/protocol/dist/directSessions/daemonRpcV1.d.ts.map +1 -1
  331. package/node_modules/@happier-dev/protocol/dist/directSessions/daemonRpcV1.js +74 -2
  332. package/node_modules/@happier-dev/protocol/dist/directSessions/daemonRpcV1.js.map +1 -1
  333. package/node_modules/@happier-dev/protocol/dist/encryption/clientEncryptionRequirement.d.ts +12 -0
  334. package/node_modules/@happier-dev/protocol/dist/encryption/clientEncryptionRequirement.d.ts.map +1 -0
  335. package/node_modules/@happier-dev/protocol/dist/encryption/clientEncryptionRequirement.js +15 -0
  336. package/node_modules/@happier-dev/protocol/dist/encryption/clientEncryptionRequirement.js.map +1 -0
  337. package/node_modules/@happier-dev/protocol/dist/executionRunObservationTimeout.d.ts +2 -0
  338. package/node_modules/@happier-dev/protocol/dist/executionRunObservationTimeout.d.ts.map +1 -0
  339. package/node_modules/@happier-dev/protocol/dist/executionRunObservationTimeout.js +2 -0
  340. package/node_modules/@happier-dev/protocol/dist/executionRunObservationTimeout.js.map +1 -0
  341. package/node_modules/@happier-dev/protocol/dist/executionRunRequestedConfiguration.d.ts +16 -0
  342. package/node_modules/@happier-dev/protocol/dist/executionRunRequestedConfiguration.d.ts.map +1 -0
  343. package/node_modules/@happier-dev/protocol/dist/executionRunRequestedConfiguration.js +26 -0
  344. package/node_modules/@happier-dev/protocol/dist/executionRunRequestedConfiguration.js.map +1 -0
  345. package/node_modules/@happier-dev/protocol/dist/executionRunStartRequest.d.ts +6 -2
  346. package/node_modules/@happier-dev/protocol/dist/executionRunStartRequest.d.ts.map +1 -1
  347. package/node_modules/@happier-dev/protocol/dist/executionRunStartRequest.js +5 -2
  348. package/node_modules/@happier-dev/protocol/dist/executionRunStartRequest.js.map +1 -1
  349. package/node_modules/@happier-dev/protocol/dist/executionRuns.d.ts +16 -2
  350. package/node_modules/@happier-dev/protocol/dist/executionRuns.d.ts.map +1 -1
  351. package/node_modules/@happier-dev/protocol/dist/executionRuns.js +4 -0
  352. package/node_modules/@happier-dev/protocol/dist/executionRuns.js.map +1 -1
  353. package/node_modules/@happier-dev/protocol/dist/features/catalog.d.ts +12 -0
  354. package/node_modules/@happier-dev/protocol/dist/features/catalog.d.ts.map +1 -1
  355. package/node_modules/@happier-dev/protocol/dist/features/catalog.js +12 -0
  356. package/node_modules/@happier-dev/protocol/dist/features/catalog.js.map +1 -1
  357. package/node_modules/@happier-dev/protocol/dist/features/decision.d.ts +2 -0
  358. package/node_modules/@happier-dev/protocol/dist/features/decision.d.ts.map +1 -1
  359. package/node_modules/@happier-dev/protocol/dist/features/payload/featureGatesSchema.d.ts +6 -0
  360. package/node_modules/@happier-dev/protocol/dist/features/payload/featureGatesSchema.d.ts.map +1 -1
  361. package/node_modules/@happier-dev/protocol/dist/features/payload/featureGatesSchema.js +4 -0
  362. package/node_modules/@happier-dev/protocol/dist/features/payload/featureGatesSchema.js.map +1 -1
  363. package/node_modules/@happier-dev/protocol/dist/features/payload/featuresResponseSchema.d.ts +6 -0
  364. package/node_modules/@happier-dev/protocol/dist/features/payload/featuresResponseSchema.d.ts.map +1 -1
  365. package/node_modules/@happier-dev/protocol/dist/index.d.ts +18 -11
  366. package/node_modules/@happier-dev/protocol/dist/index.d.ts.map +1 -1
  367. package/node_modules/@happier-dev/protocol/dist/index.js +18 -11
  368. package/node_modules/@happier-dev/protocol/dist/index.js.map +1 -1
  369. package/node_modules/@happier-dev/protocol/dist/installables.d.ts +36 -2
  370. package/node_modules/@happier-dev/protocol/dist/installables.d.ts.map +1 -1
  371. package/node_modules/@happier-dev/protocol/dist/installables.js +29 -1
  372. package/node_modules/@happier-dev/protocol/dist/installables.js.map +1 -1
  373. package/node_modules/@happier-dev/protocol/dist/machines/cliUpdateFacts.d.ts +92 -0
  374. package/node_modules/@happier-dev/protocol/dist/machines/cliUpdateFacts.d.ts.map +1 -0
  375. package/node_modules/@happier-dev/protocol/dist/machines/cliUpdateFacts.js +70 -0
  376. package/node_modules/@happier-dev/protocol/dist/machines/cliUpdateFacts.js.map +1 -0
  377. package/node_modules/@happier-dev/protocol/dist/machines/index.d.ts +1 -0
  378. package/node_modules/@happier-dev/protocol/dist/machines/index.d.ts.map +1 -1
  379. package/node_modules/@happier-dev/protocol/dist/machines/index.js +1 -0
  380. package/node_modules/@happier-dev/protocol/dist/machines/index.js.map +1 -1
  381. package/node_modules/@happier-dev/protocol/dist/mcpServers/daemonRpcV1.d.ts +42 -0
  382. package/node_modules/@happier-dev/protocol/dist/mcpServers/daemonRpcV1.d.ts.map +1 -1
  383. package/node_modules/@happier-dev/protocol/dist/mcpServers/previewV1.d.ts +14 -0
  384. package/node_modules/@happier-dev/protocol/dist/mcpServers/previewV1.d.ts.map +1 -1
  385. package/node_modules/@happier-dev/protocol/dist/prompts/executionRunsGuidanceV1.d.ts.map +1 -1
  386. package/node_modules/@happier-dev/protocol/dist/prompts/executionRunsGuidanceV1.js +2 -1
  387. package/node_modules/@happier-dev/protocol/dist/prompts/executionRunsGuidanceV1.js.map +1 -1
  388. package/node_modules/@happier-dev/protocol/dist/providers/agentProviderIdsV1.d.ts +8 -1
  389. package/node_modules/@happier-dev/protocol/dist/providers/agentProviderIdsV1.d.ts.map +1 -1
  390. package/node_modules/@happier-dev/protocol/dist/providers/agentProviderIdsV1.js +18 -1
  391. package/node_modules/@happier-dev/protocol/dist/providers/agentProviderIdsV1.js.map +1 -1
  392. package/node_modules/@happier-dev/protocol/dist/providers/agy/installables.d.ts +7 -0
  393. package/node_modules/@happier-dev/protocol/dist/providers/agy/installables.d.ts.map +1 -0
  394. package/node_modules/@happier-dev/protocol/dist/providers/agy/installables.js +6 -0
  395. package/node_modules/@happier-dev/protocol/dist/providers/agy/installables.js.map +1 -0
  396. package/node_modules/@happier-dev/protocol/dist/push/expoPushDelivery.d.ts +1 -0
  397. package/node_modules/@happier-dev/protocol/dist/push/expoPushDelivery.d.ts.map +1 -1
  398. package/node_modules/@happier-dev/protocol/dist/push/expoPushDelivery.js +1 -1
  399. package/node_modules/@happier-dev/protocol/dist/push/expoPushDelivery.js.map +1 -1
  400. package/node_modules/@happier-dev/protocol/dist/rpc.d.ts +5 -0
  401. package/node_modules/@happier-dev/protocol/dist/rpc.d.ts.map +1 -1
  402. package/node_modules/@happier-dev/protocol/dist/rpc.js +5 -0
  403. package/node_modules/@happier-dev/protocol/dist/rpc.js.map +1 -1
  404. package/node_modules/@happier-dev/protocol/dist/sessionAgentTransition.d.ts +40 -0
  405. package/node_modules/@happier-dev/protocol/dist/sessionAgentTransition.d.ts.map +1 -1
  406. package/node_modules/@happier-dev/protocol/dist/sessionAgentTransition.js +17 -0
  407. package/node_modules/@happier-dev/protocol/dist/sessionAgentTransition.js.map +1 -1
  408. package/node_modules/@happier-dev/protocol/dist/sessionControl/contract.d.ts +26 -0
  409. package/node_modules/@happier-dev/protocol/dist/sessionControl/contract.d.ts.map +1 -1
  410. package/node_modules/@happier-dev/protocol/dist/sessionControl/contract.js +2 -0
  411. package/node_modules/@happier-dev/protocol/dist/sessionControl/contract.js.map +1 -1
  412. package/node_modules/@happier-dev/protocol/dist/sessionControl/handoff/handoffSchemas.d.ts +27 -0
  413. package/node_modules/@happier-dev/protocol/dist/sessionControl/handoff/handoffSchemas.d.ts.map +1 -1
  414. package/node_modules/@happier-dev/protocol/dist/sessionControl/handoff/handoffTypes.d.ts +3 -0
  415. package/node_modules/@happier-dev/protocol/dist/sessionControl/handoff/handoffTypes.d.ts.map +1 -1
  416. package/node_modules/@happier-dev/protocol/dist/sessionFolders/folderAssignments.d.ts +1 -0
  417. package/node_modules/@happier-dev/protocol/dist/sessionFolders/folderAssignments.d.ts.map +1 -1
  418. package/node_modules/@happier-dev/protocol/dist/sessionMessages/sessionMessageMeta.d.ts +2 -0
  419. package/node_modules/@happier-dev/protocol/dist/sessionMessages/sessionMessageMeta.d.ts.map +1 -1
  420. package/node_modules/@happier-dev/protocol/dist/sessionMessages/sessionMessageMeta.js +7 -0
  421. package/node_modules/@happier-dev/protocol/dist/sessionMessages/sessionMessageMeta.js.map +1 -1
  422. package/node_modules/@happier-dev/protocol/dist/sessionMetadata/sessionPermissionModes.d.ts +8 -0
  423. package/node_modules/@happier-dev/protocol/dist/sessionMetadata/sessionPermissionModes.d.ts.map +1 -1
  424. package/node_modules/@happier-dev/protocol/dist/sessionMetadata/sessionPermissionModes.js +13 -0
  425. package/node_modules/@happier-dev/protocol/dist/sessionMetadata/sessionPermissionModes.js.map +1 -1
  426. package/node_modules/@happier-dev/protocol/dist/sessionOrganization/snapshot.d.ts +3 -0
  427. package/node_modules/@happier-dev/protocol/dist/sessionOrganization/snapshot.d.ts.map +1 -1
  428. package/node_modules/@happier-dev/protocol/dist/sessionOrganization/snapshot.js +1 -0
  429. package/node_modules/@happier-dev/protocol/dist/sessionOrganization/snapshot.js.map +1 -1
  430. package/node_modules/@happier-dev/protocol/dist/sessionOrganization/standings.d.ts +4 -1
  431. package/node_modules/@happier-dev/protocol/dist/sessionOrganization/standings.d.ts.map +1 -1
  432. package/node_modules/@happier-dev/protocol/dist/sessionOrganization/standings.js +6 -1
  433. package/node_modules/@happier-dev/protocol/dist/sessionOrganization/standings.js.map +1 -1
  434. package/node_modules/@happier-dev/protocol/dist/sessionWorkState/sessionWorkStateRpc.d.ts +2 -0
  435. package/node_modules/@happier-dev/protocol/dist/sessionWorkState/sessionWorkStateRpc.d.ts.map +1 -1
  436. package/node_modules/@happier-dev/protocol/dist/socketRpc.d.ts +11 -0
  437. package/node_modules/@happier-dev/protocol/dist/socketRpc.d.ts.map +1 -1
  438. package/node_modules/@happier-dev/protocol/dist/socketRpc.js +9 -0
  439. package/node_modules/@happier-dev/protocol/dist/socketRpc.js.map +1 -1
  440. package/node_modules/@happier-dev/protocol/dist/spawnSession.d.ts +13 -0
  441. package/node_modules/@happier-dev/protocol/dist/spawnSession.d.ts.map +1 -1
  442. package/node_modules/@happier-dev/protocol/dist/spawnSession.js +5 -0
  443. package/node_modules/@happier-dev/protocol/dist/spawnSession.js.map +1 -1
  444. package/node_modules/@happier-dev/protocol/dist/structuredMessages/executionRunCompletionV1.d.ts.map +1 -1
  445. package/node_modules/@happier-dev/protocol/dist/structuredMessages/executionRunCompletionV1.js +12 -1
  446. package/node_modules/@happier-dev/protocol/dist/structuredMessages/executionRunCompletionV1.js.map +1 -1
  447. package/node_modules/@happier-dev/protocol/dist/systemTasks/acquisitionProgress.d.ts +36 -0
  448. package/node_modules/@happier-dev/protocol/dist/systemTasks/acquisitionProgress.d.ts.map +1 -0
  449. package/node_modules/@happier-dev/protocol/dist/systemTasks/acquisitionProgress.js +23 -0
  450. package/node_modules/@happier-dev/protocol/dist/systemTasks/acquisitionProgress.js.map +1 -0
  451. package/node_modules/@happier-dev/protocol/dist/systemTasks/index.d.ts +2 -0
  452. package/node_modules/@happier-dev/protocol/dist/systemTasks/index.d.ts.map +1 -1
  453. package/node_modules/@happier-dev/protocol/dist/systemTasks/index.js +2 -0
  454. package/node_modules/@happier-dev/protocol/dist/systemTasks/index.js.map +1 -1
  455. package/node_modules/@happier-dev/protocol/dist/systemTasks/setupThisComputerTaskContract.d.ts +180 -0
  456. package/node_modules/@happier-dev/protocol/dist/systemTasks/setupThisComputerTaskContract.d.ts.map +1 -0
  457. package/node_modules/@happier-dev/protocol/dist/systemTasks/setupThisComputerTaskContract.js +234 -0
  458. package/node_modules/@happier-dev/protocol/dist/systemTasks/setupThisComputerTaskContract.js.map +1 -0
  459. package/node_modules/@happier-dev/protocol/dist/updates.d.ts +12 -0
  460. package/node_modules/@happier-dev/protocol/dist/updates.d.ts.map +1 -1
  461. package/node_modules/@happier-dev/protocol/dist/updates.js +11 -2
  462. package/node_modules/@happier-dev/protocol/dist/updates.js.map +1 -1
  463. package/node_modules/@happier-dev/release-runtime/dist/archiveExtraction.d.ts.map +1 -1
  464. package/node_modules/@happier-dev/release-runtime/dist/archiveExtraction.js +5 -0
  465. package/node_modules/@happier-dev/release-runtime/dist/archiveExtraction.js.map +1 -1
  466. package/node_modules/@happier-dev/release-runtime/dist/github.d.ts +1 -0
  467. package/node_modules/@happier-dev/release-runtime/dist/github.d.ts.map +1 -1
  468. package/node_modules/@happier-dev/release-runtime/dist/github.js +7 -5
  469. package/node_modules/@happier-dev/release-runtime/dist/github.js.map +1 -1
  470. package/node_modules/@happier-dev/release-runtime/dist/http.d.ts +11 -12
  471. package/node_modules/@happier-dev/release-runtime/dist/http.d.ts.map +1 -1
  472. package/node_modules/@happier-dev/release-runtime/dist/http.js +32 -4
  473. package/node_modules/@happier-dev/release-runtime/dist/http.js.map +1 -1
  474. package/node_modules/@happier-dev/release-runtime/dist/index.d.ts +1 -0
  475. package/node_modules/@happier-dev/release-runtime/dist/index.d.ts.map +1 -1
  476. package/node_modules/@happier-dev/release-runtime/dist/index.js +1 -0
  477. package/node_modules/@happier-dev/release-runtime/dist/index.js.map +1 -1
  478. package/node_modules/@happier-dev/release-runtime/dist/verifiedDownload.d.ts +10 -0
  479. package/node_modules/@happier-dev/release-runtime/dist/verifiedDownload.d.ts.map +1 -1
  480. package/node_modules/@happier-dev/release-runtime/dist/verifiedDownload.js +21 -11
  481. package/node_modules/@happier-dev/release-runtime/dist/verifiedDownload.js.map +1 -1
  482. package/package.json +1 -1
  483. package/scripts/auth.mjs +1 -1
  484. package/scripts/auth_login_print_includes_configure_links.test.mjs +9 -0
  485. package/scripts/build.mjs +8 -1
  486. package/scripts/daemon.mjs +14 -1
  487. package/scripts/daemon_start_verification.integration.test.mjs +103 -26
  488. package/scripts/ghops.test.mjs +3 -9
  489. package/scripts/happier_main.mjs +11 -0
  490. package/scripts/provision/macos-lima-hstack-repeat-validation.test.mjs +10 -17
  491. package/scripts/self_host_launchd.real.integration.test.mjs +3 -5
  492. package/scripts/self_host_runtime.mjs +9 -10
  493. package/scripts/self_host_runtime.test.mjs +2 -2
  494. package/scripts/stack/stack_environment.sanitization.test.mjs +5 -0
  495. package/scripts/stack_happy_cmd.integration.test.mjs +74 -44
  496. package/scripts/testkit/core/lima_guest_harness.mjs +32 -0
  497. package/scripts/testkit/core/lima_guest_harness.test.mjs +61 -0
  498. package/scripts/testkit/core/stub_happier_cli_server_set.mjs +51 -0
  499. package/scripts/testkit/stack_happier_cli_command_testkit.mjs +20 -2
  500. package/scripts/utils/dev_targets/mutagen_project.mjs +6 -0
  501. package/scripts/utils/dev_targets/mutagen_project.test.mjs +4 -0
  502. package/scripts/utils/dev_targets/remote_commands.mjs +3 -1
  503. package/scripts/utils/dev_targets/supervisor.mjs +29 -7
  504. package/scripts/utils/dev_targets/supervisor.test.mjs +19 -1
  505. package/scripts/utils/env/scrub_env.mjs +1 -0
  506. package/scripts/utils/expo/command.mjs +28 -4
  507. package/scripts/utils/expo/expo.mjs +29 -1
  508. package/scripts/utils/expo/expo_shared_tmpdir.test.mjs +56 -1
  509. package/scripts/utils/server/apply_runtime_server_sqlite_env.test.mjs +2 -2
  510. package/scripts/utils/server/resolve_stack_server_port.test.mjs +6 -3
  511. package/scripts/utils/stack/server_profile_reconciliation.mjs +68 -16
  512. package/scripts/utils/stack/server_profile_reconciliation.test.mjs +41 -0
  513. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/releaseAssetBundle.d.ts +0 -17
  514. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/releaseAssetBundle.d.ts.map +0 -1
  515. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/releaseAssetBundle.js +0 -90
  516. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/releaseAssetBundle.js.map +0 -1
  517. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/rollbackVersionedPayload.d.ts +0 -13
  518. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/rollbackVersionedPayload.d.ts.map +0 -1
  519. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/rollbackVersionedPayload.js +0 -65
  520. package/node_modules/@happier-dev/cli-common/dist/firstPartyRuntime/rollbackVersionedPayload.js.map +0 -1
@@ -0,0 +1,494 @@
1
+ import { execFile } from 'node:child_process';
2
+ import { accessSync, constants as fsConstants, existsSync, realpathSync, statSync } from 'node:fs';
3
+ import { appendFile, readFile, writeFile } from 'node:fs/promises';
4
+ import { homedir, userInfo } from 'node:os';
5
+ import { basename, delimiter as pathDelimiter, join, win32 } from 'node:path';
6
+ import { resolveWindowsCommandOnPath } from '../process/windows/resolveWindowsCommandInvocation.js';
7
+ import { buildServicePath } from '../service/path.js';
8
+ import { readHappierCliChoiceSync } from './happierCliChoice.js';
9
+ export const HAPPIER_DESKTOP_PATH_MARKER_LINE = '# Added by Happier Desktop';
10
+ /** User-scoped environment variable holding the PATH entries Desktop added on Windows. */
11
+ export const HAPPIER_DESKTOP_WINDOWS_PATH_PROVENANCE_VARIABLE = 'HAPPIER_DESKTOP_PATH_ENTRIES';
12
+ /**
13
+ * User-scoped environment variable holding the moves Desktop made in the user PATH on Windows
14
+ * (R13 b): one record per moved entry, `;`-separated, each `<entry>|<entry it was moved ahead of>|…`.
15
+ * `|` cannot occur in a Windows path, and `;` cannot occur in a PATH entry.
16
+ */
17
+ export const HAPPIER_DESKTOP_WINDOWS_PATH_MOVES_VARIABLE = 'HAPPIER_DESKTOP_PATH_MOVES';
18
+ const DESKTOP_EXPORT_LINE_PATTERN = /^export PATH="[^"\n]+:\$PATH"$/u;
19
+ export function renderHappierCliPathExportLine(binDir) {
20
+ return `export PATH="${binDir}:$PATH"`;
21
+ }
22
+ export function resolveHappierCliShellProfilePlan(params) {
23
+ const shellName = basename(String(params.shell ?? '').trim());
24
+ const home = params.homeDir;
25
+ if (shellName === 'zsh') {
26
+ return { rcFiles: [join(home, '.zshrc'), join(home, '.zprofile')], reloadFile: join(home, '.zshrc') };
27
+ }
28
+ if (shellName === 'bash') {
29
+ const bashProfile = join(home, '.bash_profile');
30
+ return {
31
+ rcFiles: [join(home, '.bashrc'), params.fileExists(bashProfile) ? bashProfile : join(home, '.profile')],
32
+ reloadFile: join(home, '.bashrc'),
33
+ };
34
+ }
35
+ return { rcFiles: [join(home, '.profile')], reloadFile: join(home, '.profile') };
36
+ }
37
+ /**
38
+ * Every profile file the table above can target, for any supported shell.
39
+ *
40
+ * `ensure` writes for the shell the user runs today; `remove` must undo what Desktop wrote under
41
+ * whatever shell was current then, so it works over this union instead. `fileExists: () => true`
42
+ * yields the maximal set (`.bash_profile` and `.profile` both appear); removal skips files that
43
+ * are absent, so no probe is needed here.
44
+ */
45
+ function resolveHappierCliShellProfileUnion(homeDir) {
46
+ const files = new Set();
47
+ for (const shell of ['zsh', 'bash', '']) {
48
+ for (const rcFile of resolveHappierCliShellProfilePlan({ shell, homeDir, fileExists: () => true }).rcFiles) {
49
+ files.add(rcFile);
50
+ }
51
+ }
52
+ return [...files];
53
+ }
54
+ function isPathUpdateDisabled(processEnv) {
55
+ return String(processEnv.HAPPIER_NO_PATH_UPDATE ?? '').trim() === '1';
56
+ }
57
+ function describeError(error) {
58
+ return error instanceof Error && error.message.trim() ? error.message.trim() : String(error);
59
+ }
60
+ export async function ensureHappierCliPathExposure(params) {
61
+ if (isPathUpdateDisabled(params.processEnv)) {
62
+ return { changed: false, shellReloadHint: null, failure: null, existingCommand: null };
63
+ }
64
+ const choice = readHappierCliChoiceSync({ processEnv: params.processEnv });
65
+ if (choice?.mode === 'own') {
66
+ // R12 "Keep my own": the terminal keeps the user's CLI, so no line puts ours in front of it.
67
+ return { changed: false, shellReloadHint: null, failure: null, existingCommand: choice.command };
68
+ }
69
+ const resolved = resolveHappierOnPath(params.processEnv);
70
+ const existingCommand = resolved && !isManagedShim(resolved, params.binDir) ? resolved : null;
71
+ if (resolved && !existingCommand) {
72
+ // Already the managed shim (for example the installer's `~/.local/bin/happier` link to it):
73
+ // there is nothing to expose, and a second export line would only duplicate it.
74
+ return { changed: false, shellReloadHint: null, failure: null, existingCommand: null };
75
+ }
76
+ if (existingCommand && choice?.mode !== 'managed') {
77
+ return { changed: false, shellReloadHint: null, failure: null, existingCommand };
78
+ }
79
+ // No other `happier`, or this computer chose "Let Happier manage it" (R12 amends INV5): the line
80
+ // is written even though another CLI resolves, so a new terminal runs the managed CLI first.
81
+ const exposed = process.platform === 'win32'
82
+ ? await ensureWindowsUserPathExposure({ ...params, putFirst: existingCommand !== null })
83
+ : await ensurePosixProfileExposure(params);
84
+ return { ...exposed, existingCommand };
85
+ }
86
+ /**
87
+ * A `happier` on PATH that is not this Happier home's managed shim — one the user installed
88
+ * (npm, Homebrew, a manual copy) — or `null` when every `happier` found is the managed shim
89
+ * (including the installer's `~/.local/bin` link to it). The same search path the PATH exposure
90
+ * above uses, walked past the managed shim (R13 b): after "Let Happier manage it" the managed shim
91
+ * answers first, and the old copy the person may still remove sits behind it. So "another CLI
92
+ * exists" means one thing everywhere — the question, the resolver and Settings (R12).
93
+ */
94
+ export function resolveForeignHappierCli(params) {
95
+ return resolveHappierOnPath(params.processEnv, (candidate) => !isManagedShim(candidate, params.binDir));
96
+ }
97
+ export function resolveTerminalHappierCli(params) {
98
+ const command = resolveHappierOnPath(params.processEnv);
99
+ if (!command)
100
+ return null;
101
+ if (!isManagedShim(command, params.binDir))
102
+ return { command, managed: false, desktopExposed: false };
103
+ const shimPath = join(params.binDir, process.platform === 'win32' ? 'happier.exe' : 'happier');
104
+ const direct = process.platform === 'win32' ? sameWindowsPathEntry(command, shimPath) : command === shimPath;
105
+ const recordedByDesktop = process.platform !== 'win32' || [
106
+ ...splitWindowsPathEntries(readEnvCaseInsensitive(params.processEnv, HAPPIER_DESKTOP_WINDOWS_PATH_PROVENANCE_VARIABLE)),
107
+ ...parseWindowsPathMoves(readEnvCaseInsensitive(params.processEnv, HAPPIER_DESKTOP_WINDOWS_PATH_MOVES_VARIABLE)).map((move) => move.entry),
108
+ ].some((entry) => sameWindowsPathEntry(entry, params.binDir));
109
+ return { command, managed: true, desktopExposed: direct && recordedByDesktop };
110
+ }
111
+ function readEnvCaseInsensitive(env, name) {
112
+ const key = Object.keys(env).find((candidate) => candidate.toLowerCase() === name.toLowerCase());
113
+ const value = key === undefined ? undefined : env[key];
114
+ return typeof value === 'string' ? value : null;
115
+ }
116
+ function isManagedShim(candidate, binDir) {
117
+ return isSameFile(candidate, join(binDir, process.platform === 'win32' ? 'happier.exe' : 'happier'));
118
+ }
119
+ /**
120
+ * The `happier` a new terminal would run, or `null` when none resolves.
121
+ *
122
+ * On macOS an app opened from the Dock or Finder gets launchd's PATH (`/usr/bin:/bin:…`), which
123
+ * leaves out Homebrew, the npm-global default and the per-user bins where a user's own `happier`
124
+ * lives. The search there is the service PATH owner's (`buildServicePath`: this PATH, then the
125
+ * per-user bins, then its fixed macOS list). A version manager's shim directory (nvm, fnm, volta)
126
+ * is only on the login shell's PATH and is not detected (INV5). `accept` skips matches, so a caller
127
+ * looking for a particular kind of `happier` gets the first one of that kind.
128
+ */
129
+ function resolveHappierOnPath(processEnv, accept = () => true) {
130
+ if (process.platform === 'win32') {
131
+ return resolveWindowsCommandOnPath('happier', processEnv, accept);
132
+ }
133
+ for (const dir of resolveHappierCliSearchPath(processEnv).split(pathDelimiter)) {
134
+ if (!dir.trim())
135
+ continue;
136
+ const candidate = join(dir, 'happier');
137
+ try {
138
+ accessSync(candidate, fsConstants.X_OK);
139
+ if (statSync(candidate).isFile() && accept(candidate))
140
+ return candidate;
141
+ }
142
+ catch {
143
+ // not here; keep looking
144
+ }
145
+ }
146
+ return null;
147
+ }
148
+ /**
149
+ * The PATH a new terminal's `happier` is looked up in, as above: the process PATH, extended on
150
+ * macOS by the service PATH owner's list because a Dock-launched app gets launchd's PATH. A CLI
151
+ * found here is also run with it (R12): an npm `happier` is `#!/usr/bin/env node`, and the `node`
152
+ * beside it (Homebrew, `/usr/local/bin`) is only on that same list.
153
+ */
154
+ export function resolveHappierCliSearchPath(processEnv) {
155
+ return process.platform === 'darwin'
156
+ ? buildServicePath({ basePath: String(processEnv.PATH ?? ''), homeDir: resolvePosixHomeDir(processEnv), platform: 'darwin' })
157
+ : String(processEnv.PATH ?? '');
158
+ }
159
+ function isSameFile(left, right) {
160
+ try {
161
+ return realpathSync(left) === realpathSync(right);
162
+ }
163
+ catch {
164
+ return false;
165
+ }
166
+ }
167
+ export async function removeHappierCliPathExposure(params) {
168
+ if (process.platform === 'win32') {
169
+ return await removeWindowsUserPathExposure(params);
170
+ }
171
+ return await removePosixProfileExposure(params);
172
+ }
173
+ // POSIX: shell profiles ------------------------------------------------------------------------
174
+ function resolvePosixHomeDir(processEnv) {
175
+ return String(processEnv.HOME ?? '').trim() || homedir();
176
+ }
177
+ function resolvePosixProfilePlan(processEnv) {
178
+ // A desktop app launched from a launcher may not inherit $SHELL; the login shell is the same
179
+ // fact `$SHELL` carries in a terminal, so it is the equivalent input for the installer's table.
180
+ const shell = String(processEnv.SHELL ?? '').trim() || readLoginShell();
181
+ return resolveHappierCliShellProfilePlan({ shell, homeDir: resolvePosixHomeDir(processEnv), fileExists: existsSync });
182
+ }
183
+ function readLoginShell() {
184
+ try {
185
+ return userInfo().shell ?? undefined;
186
+ }
187
+ catch {
188
+ return undefined;
189
+ }
190
+ }
191
+ function profileContainsLine(content, line) {
192
+ return content.split('\n').some((candidate) => candidate.trim() === line);
193
+ }
194
+ async function ensurePosixProfileExposure(params) {
195
+ const plan = resolvePosixProfilePlan(params.processEnv);
196
+ const exportLine = renderHappierCliPathExportLine(params.binDir);
197
+ let changed = false;
198
+ const failures = [];
199
+ for (const rcFile of plan.rcFiles) {
200
+ try {
201
+ const existing = existsSync(rcFile) ? await readFile(rcFile, 'utf8') : null;
202
+ if (existing !== null && profileContainsLine(existing, exportLine)) {
203
+ continue;
204
+ }
205
+ // Same shape as the installer's `printf '\n%s\n'`, with the provenance marker directly above.
206
+ await appendFile(rcFile, `\n${HAPPIER_DESKTOP_PATH_MARKER_LINE}\n${exportLine}\n`, 'utf8');
207
+ changed = true;
208
+ }
209
+ catch (error) {
210
+ failures.push(`${rcFile}: ${describeError(error)}`);
211
+ }
212
+ }
213
+ return {
214
+ changed,
215
+ shellReloadHint: changed ? `Open a new terminal, or run: source "${plan.reloadFile}"` : null,
216
+ failure: failures.length > 0 ? `Could not update shell profile ${failures.join('; ')}` : null,
217
+ existingCommand: null,
218
+ };
219
+ }
220
+ function stripDesktopCreatedLines(content) {
221
+ const lines = content.split('\n');
222
+ const kept = [];
223
+ let removed = false;
224
+ for (let index = 0; index < lines.length; index += 1) {
225
+ const line = lines[index] ?? '';
226
+ const next = lines[index + 1];
227
+ if (line.trim() === HAPPIER_DESKTOP_PATH_MARKER_LINE && next !== undefined && DESKTOP_EXPORT_LINE_PATTERN.test(next.trim())) {
228
+ if (kept.length > 0 && kept[kept.length - 1] === '') {
229
+ // Drop the separator blank line the append wrote in front of the marker.
230
+ kept.pop();
231
+ }
232
+ index += 1;
233
+ removed = true;
234
+ continue;
235
+ }
236
+ kept.push(line);
237
+ }
238
+ return { content: removed ? kept.join('\n') : content, removed };
239
+ }
240
+ async function removePosixProfileExposure(params) {
241
+ let removed = false;
242
+ const failures = [];
243
+ for (const rcFile of resolveHappierCliShellProfileUnion(resolvePosixHomeDir(params.processEnv))) {
244
+ try {
245
+ if (!existsSync(rcFile)) {
246
+ continue;
247
+ }
248
+ const stripped = stripDesktopCreatedLines(await readFile(rcFile, 'utf8'));
249
+ if (!stripped.removed) {
250
+ continue;
251
+ }
252
+ await writeFile(rcFile, stripped.content, 'utf8');
253
+ removed = true;
254
+ }
255
+ catch (error) {
256
+ failures.push(`${rcFile}: ${describeError(error)}`);
257
+ }
258
+ }
259
+ return {
260
+ removed,
261
+ failure: failures.length > 0 ? `Could not update shell profile ${failures.join('; ')}` : null,
262
+ };
263
+ }
264
+ // Windows: user PATH in the environment (HKCU\Environment) --------------------------------------
265
+ function splitWindowsPathEntries(value) {
266
+ return String(value ?? '').split(';').map((entry) => entry.trim()).filter(Boolean);
267
+ }
268
+ function sameWindowsPathEntry(left, right) {
269
+ return left.toLowerCase() === right.toLowerCase();
270
+ }
271
+ function parseWindowsPathMoves(value) {
272
+ return splitWindowsPathEntries(value).flatMap((record) => {
273
+ const [entry, ...movedAhead] = record.split('|').map((part) => part.trim());
274
+ return entry ? [{ entry, movedAhead: movedAhead.filter(Boolean) }] : [];
275
+ });
276
+ }
277
+ function renderWindowsPathMoves(moves) {
278
+ return moves.length > 0 ? moves.map((move) => [move.entry, ...move.movedAhead].join('|')).join(';') : null;
279
+ }
280
+ export function planWindowsUserPathExposure(params) {
281
+ const currentPath = params.userPath ?? '';
282
+ const entries = splitWindowsPathEntries(currentPath);
283
+ const index = entries.findIndex((entry) => sameWindowsPathEntry(entry, params.binDir));
284
+ const existing = entries[index];
285
+ if (existing !== undefined) {
286
+ if (!params.putFirst || index === 0) {
287
+ return { changed: false, userPath: currentPath, provenance: params.provenance, moves: params.moves };
288
+ }
289
+ const move = { entry: existing, movedAhead: entries.slice(0, index) };
290
+ return {
291
+ changed: true,
292
+ userPath: [existing, ...entries.filter((_, entryIndex) => entryIndex !== index)].join(';'),
293
+ provenance: params.provenance,
294
+ moves: renderWindowsPathMoves([
295
+ ...parseWindowsPathMoves(params.moves).filter((recorded) => !sameWindowsPathEntry(recorded.entry, existing)),
296
+ move,
297
+ ]),
298
+ };
299
+ }
300
+ const provenanceEntries = splitWindowsPathEntries(params.provenance);
301
+ return {
302
+ changed: true,
303
+ userPath: [params.binDir, ...entries].join(';'),
304
+ provenance: [...provenanceEntries, params.binDir].join(';'),
305
+ moves: params.moves,
306
+ };
307
+ }
308
+ /**
309
+ * Undo what Desktop changed in the user PATH, and only that: the entries it added are removed, and
310
+ * an entry it moved is put back behind the entries it was moved ahead of — only while that move
311
+ * still holds (the entry is still ahead of every one of them that is still there). Anything the
312
+ * person changed since — an entry they added, or putting ours back themselves — is left as it is.
313
+ * Both records are cleared: what no longer applies is not Desktop's to undo later.
314
+ */
315
+ export function planWindowsUserPathRemoval(params) {
316
+ const currentPath = params.userPath ?? '';
317
+ const desktopCreated = splitWindowsPathEntries(params.provenance);
318
+ let entries = splitWindowsPathEntries(currentPath)
319
+ .filter((entry) => !desktopCreated.some((created) => sameWindowsPathEntry(created, entry)));
320
+ let removed = desktopCreated.length > 0;
321
+ for (const move of parseWindowsPathMoves(params.moves)) {
322
+ const index = entries.findIndex((entry) => sameWindowsPathEntry(entry, move.entry));
323
+ const aheadIndexes = move.movedAhead
324
+ .map((ahead) => entries.findIndex((entry) => sameWindowsPathEntry(entry, ahead)))
325
+ .filter((aheadIndex) => aheadIndex >= 0);
326
+ if (index < 0 || aheadIndexes.length === 0 || aheadIndexes.some((aheadIndex) => aheadIndex < index)) {
327
+ continue;
328
+ }
329
+ const lastAhead = Math.max(...aheadIndexes);
330
+ const moved = entries[index] ?? move.entry;
331
+ entries = [...entries.slice(0, index), ...entries.slice(index + 1, lastAhead + 1), moved, ...entries.slice(lastAhead + 1)];
332
+ removed = true;
333
+ }
334
+ if (!removed) {
335
+ return { removed: false, userPath: currentPath, provenance: null, moves: null };
336
+ }
337
+ return { removed: true, userPath: entries.join(';'), provenance: null, moves: null };
338
+ }
339
+ /**
340
+ * Names of the environment variables the PowerShell scripts read their inputs from.
341
+ *
342
+ * The values travel through the child environment, never as argv: `powershell.exe -Command` folds
343
+ * every argument after the script into the command text it parses, and a user `Path` contains `;`
344
+ * — PowerShell's statement separator — so passing it positionally truncates the value and then
345
+ * evaluates the rest as code.
346
+ */
347
+ const WINDOWS_SCRIPT_ENV = {
348
+ provenanceName: 'HAPPIER_PATH_PROVENANCE_NAME',
349
+ userPath: 'HAPPIER_PATH_USER_PATH',
350
+ valueKind: 'HAPPIER_PATH_VALUE_KIND',
351
+ provenanceValue: 'HAPPIER_PATH_PROVENANCE_VALUE',
352
+ movesName: 'HAPPIER_PATH_MOVES_NAME',
353
+ movesValue: 'HAPPIER_PATH_MOVES_VALUE',
354
+ };
355
+ const WINDOWS_READ_USER_ENVIRONMENT_SCRIPT = [
356
+ '& {',
357
+ `$ProvenanceName = $env:${WINDOWS_SCRIPT_ENV.provenanceName}`,
358
+ `$MovesName = $env:${WINDOWS_SCRIPT_ENV.movesName}`,
359
+ "$key = [Microsoft.Win32.Registry]::CurrentUser.OpenSubKey('Environment', $false)",
360
+ '$userPath = $null',
361
+ "$kind = 'ExpandString'",
362
+ '$provenance = $null',
363
+ '$moves = $null',
364
+ 'if ($key) {',
365
+ " $userPath = $key.GetValue('Path', $null, [Microsoft.Win32.RegistryValueOptions]::DoNotExpandEnvironmentNames)",
366
+ " if ($null -ne $userPath -and ($key.GetValueNames() -contains 'Path')) { $kind = $key.GetValueKind('Path').ToString() }",
367
+ ' $provenance = $key.GetValue($ProvenanceName, $null, [Microsoft.Win32.RegistryValueOptions]::DoNotExpandEnvironmentNames)',
368
+ ' $moves = $key.GetValue($MovesName, $null, [Microsoft.Win32.RegistryValueOptions]::DoNotExpandEnvironmentNames)',
369
+ ' $key.Close()',
370
+ '}',
371
+ '[pscustomobject]@{ userPath = $userPath; userPathKind = $kind; provenance = $provenance; moves = $moves } | ConvertTo-Json -Compress',
372
+ '}',
373
+ ].join('\n');
374
+ // Writes Path with its existing registry kind (so %VAR% entries keep expanding), then writes the
375
+ // provenance variable through [Environment], whose user-scope write broadcasts WM_SETTINGCHANGE so
376
+ // new terminals see both values.
377
+ const WINDOWS_WRITE_USER_ENVIRONMENT_SCRIPT = [
378
+ '& {',
379
+ `$UserPath = $env:${WINDOWS_SCRIPT_ENV.userPath}`,
380
+ `$Kind = $env:${WINDOWS_SCRIPT_ENV.valueKind}`,
381
+ `$ProvenanceName = $env:${WINDOWS_SCRIPT_ENV.provenanceName}`,
382
+ `$Provenance = $env:${WINDOWS_SCRIPT_ENV.provenanceValue}`,
383
+ `$MovesName = $env:${WINDOWS_SCRIPT_ENV.movesName}`,
384
+ `$Moves = $env:${WINDOWS_SCRIPT_ENV.movesValue}`,
385
+ // Refuse to write rather than clear the user PATH if the value did not arrive.
386
+ `if (-not $UserPath) { throw '${WINDOWS_SCRIPT_ENV.userPath} is not set.' }`,
387
+ "$key = [Microsoft.Win32.Registry]::CurrentUser.OpenSubKey('Environment', $true)",
388
+ "if (-not $key) { $key = [Microsoft.Win32.Registry]::CurrentUser.CreateSubKey('Environment') }",
389
+ "$valueKind = if ($Kind -eq 'String') { [Microsoft.Win32.RegistryValueKind]::String } else { [Microsoft.Win32.RegistryValueKind]::ExpandString }",
390
+ "$key.SetValue('Path', $UserPath, $valueKind)",
391
+ '$key.Close()',
392
+ "if ($Provenance) { [Environment]::SetEnvironmentVariable($ProvenanceName, $Provenance, [EnvironmentVariableTarget]::User) }",
393
+ "else { [Environment]::SetEnvironmentVariable($ProvenanceName, $null, [EnvironmentVariableTarget]::User) }",
394
+ "if ($Moves) { [Environment]::SetEnvironmentVariable($MovesName, $Moves, [EnvironmentVariableTarget]::User) }",
395
+ "else { [Environment]::SetEnvironmentVariable($MovesName, $null, [EnvironmentVariableTarget]::User) }",
396
+ '}',
397
+ ].join('\n');
398
+ function parseWindowsUserEnvironmentSnapshot(stdout) {
399
+ const parsed = JSON.parse(stdout.trim());
400
+ if (!parsed || typeof parsed !== 'object') {
401
+ throw new Error('Unexpected user environment snapshot shape.');
402
+ }
403
+ const record = parsed;
404
+ return {
405
+ userPath: typeof record.userPath === 'string' ? record.userPath : null,
406
+ userPathKind: record.userPathKind === 'String' ? 'String' : 'ExpandString',
407
+ provenance: typeof record.provenance === 'string' && record.provenance.trim() ? record.provenance : null,
408
+ moves: typeof record.moves === 'string' && record.moves.trim() ? record.moves : null,
409
+ };
410
+ }
411
+ function resolveWindowsPowerShellPath(processEnv) {
412
+ const systemRoot = String(processEnv.SystemRoot ?? processEnv.SYSTEMROOT ?? processEnv.windir ?? processEnv.WINDIR ?? '').trim();
413
+ if (!systemRoot) {
414
+ throw new Error('SystemRoot is unavailable; cannot locate powershell.exe.');
415
+ }
416
+ return win32.join(systemRoot, 'System32', 'WindowsPowerShell', 'v1.0', 'powershell.exe');
417
+ }
418
+ function runWindowsPowerShell(processEnv, script, scriptEnv) {
419
+ const powershell = resolveWindowsPowerShellPath(processEnv);
420
+ return new Promise((resolve, reject) => {
421
+ execFile(powershell,
422
+ // The script is the last token on purpose — see WINDOWS_SCRIPT_ENV.
423
+ ['-NoProfile', '-NonInteractive', '-ExecutionPolicy', 'Bypass', '-Command', script], { encoding: 'utf8', windowsHide: true, env: { ...processEnv, ...scriptEnv } }, (error, stdout, stderr) => {
424
+ if (error) {
425
+ reject(new Error(`powershell.exe failed: ${String(stderr).trim() || error.message}`));
426
+ return;
427
+ }
428
+ resolve(String(stdout));
429
+ });
430
+ });
431
+ }
432
+ async function readWindowsUserEnvironment(processEnv) {
433
+ const stdout = await runWindowsPowerShell(processEnv, WINDOWS_READ_USER_ENVIRONMENT_SCRIPT, {
434
+ [WINDOWS_SCRIPT_ENV.provenanceName]: HAPPIER_DESKTOP_WINDOWS_PATH_PROVENANCE_VARIABLE,
435
+ [WINDOWS_SCRIPT_ENV.movesName]: HAPPIER_DESKTOP_WINDOWS_PATH_MOVES_VARIABLE,
436
+ });
437
+ return parseWindowsUserEnvironmentSnapshot(stdout);
438
+ }
439
+ async function writeWindowsUserEnvironment(processEnv, value) {
440
+ await runWindowsPowerShell(processEnv, WINDOWS_WRITE_USER_ENVIRONMENT_SCRIPT, {
441
+ [WINDOWS_SCRIPT_ENV.userPath]: value.userPath,
442
+ [WINDOWS_SCRIPT_ENV.valueKind]: value.userPathKind,
443
+ [WINDOWS_SCRIPT_ENV.provenanceName]: HAPPIER_DESKTOP_WINDOWS_PATH_PROVENANCE_VARIABLE,
444
+ [WINDOWS_SCRIPT_ENV.provenanceValue]: value.provenance ?? '',
445
+ [WINDOWS_SCRIPT_ENV.movesName]: HAPPIER_DESKTOP_WINDOWS_PATH_MOVES_VARIABLE,
446
+ [WINDOWS_SCRIPT_ENV.movesValue]: value.moves ?? '',
447
+ });
448
+ }
449
+ async function ensureWindowsUserPathExposure(params) {
450
+ try {
451
+ const snapshot = await readWindowsUserEnvironment(params.processEnv);
452
+ const planned = planWindowsUserPathExposure({
453
+ userPath: snapshot.userPath,
454
+ provenance: snapshot.provenance,
455
+ moves: snapshot.moves,
456
+ binDir: params.binDir,
457
+ putFirst: params.putFirst,
458
+ });
459
+ if (!planned.changed) {
460
+ return { changed: false, shellReloadHint: null, failure: null, existingCommand: null };
461
+ }
462
+ await writeWindowsUserEnvironment(params.processEnv, {
463
+ userPath: planned.userPath,
464
+ userPathKind: snapshot.userPathKind,
465
+ provenance: planned.provenance,
466
+ moves: planned.moves,
467
+ });
468
+ return { changed: true, shellReloadHint: 'Open a new terminal to use happier.', failure: null, existingCommand: null };
469
+ }
470
+ catch (error) {
471
+ return { changed: false, shellReloadHint: null, failure: `Could not update the user PATH: ${describeError(error)}`, existingCommand: null };
472
+ }
473
+ }
474
+ async function removeWindowsUserPathExposure(params) {
475
+ try {
476
+ const snapshot = await readWindowsUserEnvironment(params.processEnv);
477
+ const planned = planWindowsUserPathRemoval({ userPath: snapshot.userPath, provenance: snapshot.provenance, moves: snapshot.moves });
478
+ // A record that no longer applies is still cleared, so a later removal cannot act on it.
479
+ if (!planned.removed && snapshot.provenance === null && snapshot.moves === null) {
480
+ return { removed: false, failure: null };
481
+ }
482
+ await writeWindowsUserEnvironment(params.processEnv, {
483
+ userPath: planned.userPath,
484
+ userPathKind: snapshot.userPathKind,
485
+ provenance: planned.provenance,
486
+ moves: planned.moves,
487
+ });
488
+ return { removed: true, failure: null };
489
+ }
490
+ catch (error) {
491
+ return { removed: false, failure: `Could not update the user PATH: ${describeError(error)}` };
492
+ }
493
+ }
494
+ //# sourceMappingURL=ensureHappierCliPathExposure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ensureHappierCliPathExposure.js","sourceRoot":"","sources":["../../src/firstPartyRuntime/ensureHappierCliPathExposure.ts"],"names":[],"mappings":"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"}
@@ -2,5 +2,6 @@ export declare function extractReleasePayloadRootFromArchive(params: Readonly<{
2
2
  archivePath: string;
3
3
  archiveName: string;
4
4
  extractDir: string;
5
+ signal?: AbortSignal;
5
6
  }>): Promise<string>;
6
7
  //# sourceMappingURL=extractReleasePayloadRootFromArchive.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"extractReleasePayloadRootFromArchive.d.ts","sourceRoot":"","sources":["../../src/firstPartyRuntime/extractReleasePayloadRootFromArchive.ts"],"names":[],"mappings":"AAKA,wBAAsB,oCAAoC,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1E,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAgCnB"}
1
+ {"version":3,"file":"extractReleasePayloadRootFromArchive.d.ts","sourceRoot":"","sources":["../../src/firstPartyRuntime/extractReleasePayloadRootFromArchive.ts"],"names":[],"mappings":"AAKA,wBAAsB,oCAAoC,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1E,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAiCnB"}
@@ -6,6 +6,7 @@ export async function extractReleasePayloadRootFromArchive(params) {
6
6
  archiveName: params.archiveName,
7
7
  archivePath: params.archivePath,
8
8
  extractDir: params.extractDir,
9
+ signal: params.signal,
9
10
  });
10
11
  const entries = (await readdir(params.extractDir)).filter((entry) => !entry.startsWith('.'));
11
12
  if (entries.length === 1) {
@@ -1 +1 @@
1
- {"version":3,"file":"extractReleasePayloadRootFromArchive.js","sourceRoot":"","sources":["../../src/firstPartyRuntime/extractReleasePayloadRootFromArchive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,0CAA0C,EAAE,MAAM,gDAAgD,CAAC;AAE5G,MAAM,CAAC,KAAK,UAAU,oCAAoC,CAAC,MAIzD;IACA,MAAM,0CAA0C,CAAC;QAC/C,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,UAAU,EAAE,MAAM,CAAC,UAAU;KAC9B,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7F,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAE,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAClC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QAC3B,IAAI;QACJ,IAAI,EAAE,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;KACjD,CAAC,CAAC,CACJ,CAAC;IAEF,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACrG,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAE,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,+BAA+B,EAAE,EAAE,CAAC,CAAC;IACpF,IAAI,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACrC,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,IAAI,KAAK,CACb,yEAAyE,MAAM,CAAC,WAAW,YAAY,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC5H,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"extractReleasePayloadRootFromArchive.js","sourceRoot":"","sources":["../../src/firstPartyRuntime/extractReleasePayloadRootFromArchive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,0CAA0C,EAAE,MAAM,gDAAgD,CAAC;AAE5G,MAAM,CAAC,KAAK,UAAU,oCAAoC,CAAC,MAKzD;IACA,MAAM,0CAA0C,CAAC;QAC/C,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,MAAM,EAAE,MAAM,CAAC,MAAM;KACtB,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7F,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAE,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAClC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QAC3B,IAAI;QACJ,IAAI,EAAE,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;KACjD,CAAC,CAAC,CACJ,CAAC;IAEF,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACrG,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAE,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,+BAA+B,EAAE,EAAE,CAAC,CAAC;IACpF,IAAI,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACrC,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,IAAI,KAAK,CACb,yEAAyE,MAAM,CAAC,WAAW,YAAY,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC5H,CAAC;AACJ,CAAC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Which Happier CLI this computer runs (plan R12): the one this app installs and keeps first on
3
+ * PATH (`managed`), or a `happier` the user installed themselves (`own`, with the path of that CLI).
4
+ *
5
+ * One answer per Happier home, recorded beside the managed layout's other records
6
+ * (`current.version`, `default-cli-release-channel.json`), so every Happier app on this computer and
7
+ * every bootstrap task resolves the same CLI. No record means nobody was asked: a computer with no
8
+ * other `happier` keeps the managed default without a question.
9
+ */
10
+ export type HappierCliChoice = Readonly<{
11
+ mode: 'managed';
12
+ }> | Readonly<{
13
+ mode: 'own';
14
+ command: string;
15
+ }>;
16
+ export declare function resolveHappierCliChoiceStatePath(params?: Readonly<{
17
+ processEnv?: NodeJS.ProcessEnv;
18
+ }>): string;
19
+ /** The recorded choice; `null` when none was recorded or the record cannot be read as one. */
20
+ export declare function readHappierCliChoiceSync(params?: Readonly<{
21
+ processEnv?: NodeJS.ProcessEnv;
22
+ }>): HappierCliChoice | null;
23
+ export declare function writeHappierCliChoice(params: Readonly<{
24
+ choice: HappierCliChoice;
25
+ processEnv?: NodeJS.ProcessEnv;
26
+ }>): Promise<void>;
27
+ //# sourceMappingURL=happierCliChoice.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"happierCliChoice.d.ts","sourceRoot":"","sources":["../../src/firstPartyRuntime/happierCliChoice.ts"],"names":[],"mappings":"AAOA;;;;;;;;GAQG;AACH,MAAM,MAAM,gBAAgB,GACxB,QAAQ,CAAC;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC,GAC7B,QAAQ,CAAC;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAE/C,wBAAgB,gCAAgC,CAAC,MAAM,GAAE,QAAQ,CAAC;IAChE,UAAU,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CAChC,CAAM,GAAG,MAAM,CAEf;AAWD,8FAA8F;AAC9F,wBAAgB,wBAAwB,CAAC,MAAM,GAAE,QAAQ,CAAC;IACxD,UAAU,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CAChC,CAAM,GAAG,gBAAgB,GAAG,IAAI,CAMhC;AAED,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC3D,MAAM,EAAE,gBAAgB,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CAChC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAOjB"}
@@ -0,0 +1,36 @@
1
+ import { readFileSync } from 'node:fs';
2
+ import { mkdir, writeFile } from 'node:fs/promises';
3
+ import { dirname } from 'node:path';
4
+ import { joinPathForPathShape } from '../path/pathShape.js';
5
+ import { resolveHappyHomeDirFromEnvironment } from '../providers/resolveHappyHomeDir.js';
6
+ export function resolveHappierCliChoiceStatePath(params = {}) {
7
+ return joinPathForPathShape(resolveHappyHomeDirFromEnvironment(params.processEnv ?? process.env), 'cli-choice.json');
8
+ }
9
+ function parseHappierCliChoice(raw) {
10
+ const parsed = JSON.parse(raw);
11
+ if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed))
12
+ return null;
13
+ const record = parsed;
14
+ if (record.mode === 'managed')
15
+ return { mode: 'managed' };
16
+ const command = typeof record.command === 'string' ? record.command.trim() : '';
17
+ return record.mode === 'own' && command ? { mode: 'own', command } : null;
18
+ }
19
+ /** The recorded choice; `null` when none was recorded or the record cannot be read as one. */
20
+ export function readHappierCliChoiceSync(params = {}) {
21
+ try {
22
+ return parseHappierCliChoice(readFileSync(resolveHappierCliChoiceStatePath(params), 'utf8'));
23
+ }
24
+ catch {
25
+ return null;
26
+ }
27
+ }
28
+ export async function writeHappierCliChoice(params) {
29
+ const statePath = resolveHappierCliChoiceStatePath(params);
30
+ const payload = params.choice.mode === 'own'
31
+ ? { mode: 'own', command: params.choice.command }
32
+ : { mode: 'managed' };
33
+ await mkdir(dirname(statePath), { recursive: true });
34
+ await writeFile(statePath, `${JSON.stringify(payload)}\n`, 'utf8');
35
+ }
36
+ //# sourceMappingURL=happierCliChoice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"happierCliChoice.js","sourceRoot":"","sources":["../../src/firstPartyRuntime/happierCliChoice.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,kCAAkC,EAAE,MAAM,qCAAqC,CAAC;AAezF,MAAM,UAAU,gCAAgC,CAAC,MAAM,GAElD,EAAE;IACL,OAAO,oBAAoB,CAAC,kCAAkC,CAAC,MAAM,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,iBAAiB,CAAC,CAAC;AACvH,CAAC;AAED,SAAS,qBAAqB,CAAC,GAAW;IACxC,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACxC,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IAChF,MAAM,MAAM,GAAG,MAAiC,CAAC;IACjD,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAC1D,MAAM,OAAO,GAAG,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAChF,OAAO,MAAM,CAAC,IAAI,KAAK,KAAK,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5E,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,wBAAwB,CAAC,MAAM,GAE1C,EAAE;IACL,IAAI,CAAC;QACH,OAAO,qBAAqB,CAAC,YAAY,CAAC,gCAAgC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/F,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,MAG1C;IACA,MAAM,SAAS,GAAG,gCAAgC,CAAC,MAAM,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,KAAK;QAC1C,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE;QACjD,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IACxB,MAAM,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACrD,MAAM,SAAS,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACrE,CAAC"}