actoviq-agent-sdk 0.4.21 → 0.4.22

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 (278) hide show
  1. package/README-zh.md +50 -113
  2. package/README.md +51 -164
  3. package/assets/hadamard-icon.ico +0 -0
  4. package/assets/hadamard-icon.png +0 -0
  5. package/bin/hadamard-gui.js +31 -12
  6. package/dist/src/codeIntel/codeIntelligenceService.d.ts +16 -0
  7. package/dist/src/codeIntel/codeIntelligenceService.d.ts.map +1 -1
  8. package/dist/src/codeIntel/codeIntelligenceService.js +87 -2
  9. package/dist/src/codeIntel/codeIntelligenceService.js.map +1 -1
  10. package/dist/src/codeIntel/codeIntelligenceTools.d.ts.map +1 -1
  11. package/dist/src/codeIntel/codeIntelligenceTools.js +6 -0
  12. package/dist/src/codeIntel/codeIntelligenceTools.js.map +1 -1
  13. package/dist/src/codeIntel/index.d.ts +1 -0
  14. package/dist/src/codeIntel/index.d.ts.map +1 -1
  15. package/dist/src/codeIntel/index.js +1 -0
  16. package/dist/src/codeIntel/index.js.map +1 -1
  17. package/dist/src/codeIntel/languageServerPresets.d.ts +13 -0
  18. package/dist/src/codeIntel/languageServerPresets.d.ts.map +1 -0
  19. package/dist/src/codeIntel/languageServerPresets.js +51 -0
  20. package/dist/src/codeIntel/languageServerPresets.js.map +1 -0
  21. package/dist/src/codeIntel/languageServerRegistry.d.ts +1 -0
  22. package/dist/src/codeIntel/languageServerRegistry.d.ts.map +1 -1
  23. package/dist/src/codeIntel/languageServerRegistry.js +2 -2
  24. package/dist/src/codeIntel/languageServerRegistry.js.map +1 -1
  25. package/dist/src/config/resolveRuntimeConfig.d.ts.map +1 -1
  26. package/dist/src/config/resolveRuntimeConfig.js +5 -0
  27. package/dist/src/config/resolveRuntimeConfig.js.map +1 -1
  28. package/dist/src/extensions/builtInExtensions.d.ts +61 -0
  29. package/dist/src/extensions/builtInExtensions.d.ts.map +1 -0
  30. package/dist/src/extensions/builtInExtensions.js +218 -0
  31. package/dist/src/extensions/builtInExtensions.js.map +1 -0
  32. package/dist/src/extensions/filterOutputPolicy.d.ts +21 -0
  33. package/dist/src/extensions/filterOutputPolicy.d.ts.map +1 -0
  34. package/dist/src/extensions/filterOutputPolicy.js +121 -0
  35. package/dist/src/extensions/filterOutputPolicy.js.map +1 -0
  36. package/dist/src/extensions/securityPolicy.d.ts +27 -0
  37. package/dist/src/extensions/securityPolicy.d.ts.map +1 -0
  38. package/dist/src/extensions/securityPolicy.js +238 -0
  39. package/dist/src/extensions/securityPolicy.js.map +1 -0
  40. package/dist/src/extensions/sessionCostTracker.d.ts +63 -0
  41. package/dist/src/extensions/sessionCostTracker.d.ts.map +1 -0
  42. package/dist/src/extensions/sessionCostTracker.js +213 -0
  43. package/dist/src/extensions/sessionCostTracker.js.map +1 -0
  44. package/dist/src/extensions/taskNotifications.d.ts +31 -0
  45. package/dist/src/extensions/taskNotifications.d.ts.map +1 -0
  46. package/dist/src/extensions/taskNotifications.js +50 -0
  47. package/dist/src/extensions/taskNotifications.js.map +1 -0
  48. package/dist/src/extensions/usageBar.d.ts +35 -0
  49. package/dist/src/extensions/usageBar.d.ts.map +1 -0
  50. package/dist/src/extensions/usageBar.js +67 -0
  51. package/dist/src/extensions/usageBar.js.map +1 -0
  52. package/dist/src/gui/contextRailStore.d.ts +13 -0
  53. package/dist/src/gui/contextRailStore.d.ts.map +1 -1
  54. package/dist/src/gui/contextRailStore.js +16 -0
  55. package/dist/src/gui/contextRailStore.js.map +1 -1
  56. package/dist/src/gui/electronMain.js +45 -5
  57. package/dist/src/gui/electronMain.js.map +1 -1
  58. package/dist/src/gui/guiDesignClientScript.d.ts.map +1 -1
  59. package/dist/src/gui/guiDesignClientScript.js +31 -0
  60. package/dist/src/gui/guiDesignClientScript.js.map +1 -1
  61. package/dist/src/gui/guiUsageRoutingAssets.d.ts +7 -0
  62. package/dist/src/gui/guiUsageRoutingAssets.d.ts.map +1 -0
  63. package/dist/src/gui/guiUsageRoutingAssets.js +509 -0
  64. package/dist/src/gui/guiUsageRoutingAssets.js.map +1 -0
  65. package/dist/src/gui/guiUsageRoutingHttpController.d.ts +11 -0
  66. package/dist/src/gui/guiUsageRoutingHttpController.d.ts.map +1 -0
  67. package/dist/src/gui/guiUsageRoutingHttpController.js +125 -0
  68. package/dist/src/gui/guiUsageRoutingHttpController.js.map +1 -0
  69. package/dist/src/gui/guiUsageRoutingRuntime.d.ts +36 -0
  70. package/dist/src/gui/guiUsageRoutingRuntime.d.ts.map +1 -0
  71. package/dist/src/gui/guiUsageRoutingRuntime.js +98 -0
  72. package/dist/src/gui/guiUsageRoutingRuntime.js.map +1 -0
  73. package/dist/src/gui/hadamardGui.d.ts +5 -0
  74. package/dist/src/gui/hadamardGui.d.ts.map +1 -1
  75. package/dist/src/gui/hadamardGui.js +159 -16
  76. package/dist/src/gui/hadamardGui.js.map +1 -1
  77. package/dist/src/gui/hadamardGuiAssets.d.ts.map +1 -1
  78. package/dist/src/gui/hadamardGuiAssets.js +297 -41
  79. package/dist/src/gui/hadamardGuiAssets.js.map +1 -1
  80. package/dist/src/index.d.ts +32 -2
  81. package/dist/src/index.d.ts.map +1 -1
  82. package/dist/src/index.js +16 -1
  83. package/dist/src/index.js.map +1 -1
  84. package/dist/src/keyway/electronSecretStore.d.ts +37 -0
  85. package/dist/src/keyway/electronSecretStore.d.ts.map +1 -0
  86. package/dist/src/keyway/electronSecretStore.js +105 -0
  87. package/dist/src/keyway/electronSecretStore.js.map +1 -0
  88. package/dist/src/keyway/embeddedKeyway.d.ts +34 -0
  89. package/dist/src/keyway/embeddedKeyway.d.ts.map +1 -0
  90. package/dist/src/keyway/embeddedKeyway.js +81 -0
  91. package/dist/src/keyway/embeddedKeyway.js.map +1 -0
  92. package/dist/src/keyway/keywayLoopbackGateway.d.ts +30 -0
  93. package/dist/src/keyway/keywayLoopbackGateway.d.ts.map +1 -0
  94. package/dist/src/keyway/keywayLoopbackGateway.js +71 -0
  95. package/dist/src/keyway/keywayLoopbackGateway.js.map +1 -0
  96. package/dist/src/keyway/keywayMigrationService.d.ts +44 -0
  97. package/dist/src/keyway/keywayMigrationService.d.ts.map +1 -0
  98. package/dist/src/keyway/keywayMigrationService.js +219 -0
  99. package/dist/src/keyway/keywayMigrationService.js.map +1 -0
  100. package/dist/src/keyway/keywayModelApi.d.ts +24 -0
  101. package/dist/src/keyway/keywayModelApi.d.ts.map +1 -0
  102. package/dist/src/keyway/keywayModelApi.js +106 -0
  103. package/dist/src/keyway/keywayModelApi.js.map +1 -0
  104. package/dist/src/keyway/keywayPorts.d.ts +189 -0
  105. package/dist/src/keyway/keywayPorts.d.ts.map +1 -0
  106. package/dist/src/keyway/keywayPorts.js +2 -0
  107. package/dist/src/keyway/keywayPorts.js.map +1 -0
  108. package/dist/src/keyway/keywayProviderExecutor.d.ts +30 -0
  109. package/dist/src/keyway/keywayProviderExecutor.d.ts.map +1 -0
  110. package/dist/src/keyway/keywayProviderExecutor.js +257 -0
  111. package/dist/src/keyway/keywayProviderExecutor.js.map +1 -0
  112. package/dist/src/keyway/routingComposition.d.ts +18 -0
  113. package/dist/src/keyway/routingComposition.d.ts.map +1 -0
  114. package/dist/src/keyway/routingComposition.js +19 -0
  115. package/dist/src/keyway/routingComposition.js.map +1 -0
  116. package/dist/src/keyway/usageRoutingAdminService.d.ts +86 -0
  117. package/dist/src/keyway/usageRoutingAdminService.d.ts.map +1 -0
  118. package/dist/src/keyway/usageRoutingAdminService.js +384 -0
  119. package/dist/src/keyway/usageRoutingAdminService.js.map +1 -0
  120. package/dist/src/nativeCli/crushManagedClient.d.ts +84 -0
  121. package/dist/src/nativeCli/crushManagedClient.d.ts.map +1 -0
  122. package/dist/src/nativeCli/crushManagedClient.js +978 -0
  123. package/dist/src/nativeCli/crushManagedClient.js.map +1 -0
  124. package/dist/src/nativeCli/crushNativeCliClient.d.ts +19 -0
  125. package/dist/src/nativeCli/crushNativeCliClient.d.ts.map +1 -0
  126. package/dist/src/nativeCli/crushNativeCliClient.js +243 -0
  127. package/dist/src/nativeCli/crushNativeCliClient.js.map +1 -0
  128. package/dist/src/nativeCli/keywayNativeCliAdapter.d.ts +31 -0
  129. package/dist/src/nativeCli/keywayNativeCliAdapter.d.ts.map +1 -0
  130. package/dist/src/nativeCli/keywayNativeCliAdapter.js +35 -0
  131. package/dist/src/nativeCli/keywayNativeCliAdapter.js.map +1 -0
  132. package/dist/src/nativeCli/nativeCliAuth.d.ts +24 -0
  133. package/dist/src/nativeCli/nativeCliAuth.d.ts.map +1 -0
  134. package/dist/src/nativeCli/nativeCliAuth.js +327 -0
  135. package/dist/src/nativeCli/nativeCliAuth.js.map +1 -0
  136. package/dist/src/nativeCli/nativeCliClient.d.ts +16 -0
  137. package/dist/src/nativeCli/nativeCliClient.d.ts.map +1 -0
  138. package/dist/src/nativeCli/nativeCliClient.js +575 -0
  139. package/dist/src/nativeCli/nativeCliClient.js.map +1 -0
  140. package/dist/src/nativeCli/nativeCliCodewhaleProtocol.d.ts +18 -0
  141. package/dist/src/nativeCli/nativeCliCodewhaleProtocol.d.ts.map +1 -0
  142. package/dist/src/nativeCli/nativeCliCodewhaleProtocol.js +376 -0
  143. package/dist/src/nativeCli/nativeCliCodewhaleProtocol.js.map +1 -0
  144. package/dist/src/nativeCli/nativeCliContracts.d.ts +22 -0
  145. package/dist/src/nativeCli/nativeCliContracts.d.ts.map +1 -0
  146. package/dist/src/nativeCli/nativeCliContracts.js +2 -0
  147. package/dist/src/nativeCli/nativeCliContracts.js.map +1 -0
  148. package/dist/src/nativeCli/nativeCliCursorProtocol.d.ts +7 -0
  149. package/dist/src/nativeCli/nativeCliCursorProtocol.d.ts.map +1 -0
  150. package/dist/src/nativeCli/nativeCliCursorProtocol.js +210 -0
  151. package/dist/src/nativeCli/nativeCliCursorProtocol.js.map +1 -0
  152. package/dist/src/nativeCli/nativeCliEnvironment.d.ts +3 -0
  153. package/dist/src/nativeCli/nativeCliEnvironment.d.ts.map +1 -0
  154. package/dist/src/nativeCli/nativeCliEnvironment.js +17 -0
  155. package/dist/src/nativeCli/nativeCliEnvironment.js.map +1 -0
  156. package/dist/src/nativeCli/nativeCliExecResolver.d.ts +26 -0
  157. package/dist/src/nativeCli/nativeCliExecResolver.d.ts.map +1 -0
  158. package/dist/src/nativeCli/nativeCliExecResolver.js +152 -0
  159. package/dist/src/nativeCli/nativeCliExecResolver.js.map +1 -0
  160. package/dist/src/nativeCli/nativeCliPiProtocol.d.ts +15 -0
  161. package/dist/src/nativeCli/nativeCliPiProtocol.d.ts.map +1 -0
  162. package/dist/src/nativeCli/nativeCliPiProtocol.js +329 -0
  163. package/dist/src/nativeCli/nativeCliPiProtocol.js.map +1 -0
  164. package/dist/src/nativeCli/nativeCliProcessTree.d.ts +3 -0
  165. package/dist/src/nativeCli/nativeCliProcessTree.d.ts.map +1 -0
  166. package/dist/src/nativeCli/nativeCliProcessTree.js +104 -0
  167. package/dist/src/nativeCli/nativeCliProcessTree.js.map +1 -0
  168. package/dist/src/nativeCli/reasonixAcpSession.d.ts +35 -0
  169. package/dist/src/nativeCli/reasonixAcpSession.d.ts.map +1 -0
  170. package/dist/src/nativeCli/reasonixAcpSession.js +472 -0
  171. package/dist/src/nativeCli/reasonixAcpSession.js.map +1 -0
  172. package/dist/src/nativeCli/reasonixManagedClient.d.ts +56 -0
  173. package/dist/src/nativeCli/reasonixManagedClient.d.ts.map +1 -0
  174. package/dist/src/nativeCli/reasonixManagedClient.js +293 -0
  175. package/dist/src/nativeCli/reasonixManagedClient.js.map +1 -0
  176. package/dist/src/nativeCli/reasonixNativeCliClient.d.ts +20 -0
  177. package/dist/src/nativeCli/reasonixNativeCliClient.d.ts.map +1 -0
  178. package/dist/src/nativeCli/reasonixNativeCliClient.js +317 -0
  179. package/dist/src/nativeCli/reasonixNativeCliClient.js.map +1 -0
  180. package/dist/src/parity/bridgeExecResolver.d.ts +2 -25
  181. package/dist/src/parity/bridgeExecResolver.d.ts.map +1 -1
  182. package/dist/src/parity/bridgeExecResolver.js +2 -151
  183. package/dist/src/parity/bridgeExecResolver.js.map +1 -1
  184. package/dist/src/parity/bridgeProcessTree.d.ts +2 -2
  185. package/dist/src/parity/bridgeProcessTree.d.ts.map +1 -1
  186. package/dist/src/parity/bridgeProcessTree.js +2 -82
  187. package/dist/src/parity/bridgeProcessTree.js.map +1 -1
  188. package/dist/src/parity/crushManagedClient.d.ts +2 -83
  189. package/dist/src/parity/crushManagedClient.d.ts.map +1 -1
  190. package/dist/src/parity/crushManagedClient.js +2 -977
  191. package/dist/src/parity/crushManagedClient.js.map +1 -1
  192. package/dist/src/parity/externalCliAuth.d.ts +2 -22
  193. package/dist/src/parity/externalCliAuth.d.ts.map +1 -1
  194. package/dist/src/parity/externalCliAuth.js +2 -295
  195. package/dist/src/parity/externalCliAuth.js.map +1 -1
  196. package/dist/src/parity/hadamardBridgeSdk.d.ts.map +1 -1
  197. package/dist/src/parity/hadamardBridgeSdk.js +14 -1
  198. package/dist/src/parity/hadamardBridgeSdk.js.map +1 -1
  199. package/dist/src/parity/nativeCliBridgeAdapter.d.ts +6 -0
  200. package/dist/src/parity/nativeCliBridgeAdapter.d.ts.map +1 -0
  201. package/dist/src/parity/nativeCliBridgeAdapter.js +38 -0
  202. package/dist/src/parity/nativeCliBridgeAdapter.js.map +1 -0
  203. package/dist/src/parity/reasonixAcpSession.d.ts +2 -34
  204. package/dist/src/parity/reasonixAcpSession.d.ts.map +1 -1
  205. package/dist/src/parity/reasonixAcpSession.js +2 -471
  206. package/dist/src/parity/reasonixAcpSession.js.map +1 -1
  207. package/dist/src/parity/reasonixManagedClient.d.ts +2 -55
  208. package/dist/src/parity/reasonixManagedClient.d.ts.map +1 -1
  209. package/dist/src/parity/reasonixManagedClient.js +2 -292
  210. package/dist/src/parity/reasonixManagedClient.js.map +1 -1
  211. package/dist/src/provider/openai-client.js +2 -2
  212. package/dist/src/provider/openai-client.js.map +1 -1
  213. package/dist/src/provider/openai-model-api.d.ts.map +1 -1
  214. package/dist/src/provider/openai-model-api.js +5 -1
  215. package/dist/src/provider/openai-model-api.js.map +1 -1
  216. package/dist/src/runtime/agentClient.d.ts +14 -1
  217. package/dist/src/runtime/agentClient.d.ts.map +1 -1
  218. package/dist/src/runtime/agentClient.js +60 -6
  219. package/dist/src/runtime/agentClient.js.map +1 -1
  220. package/dist/src/runtime/toolPolicyPipeline.d.ts +32 -1
  221. package/dist/src/runtime/toolPolicyPipeline.d.ts.map +1 -1
  222. package/dist/src/runtime/toolPolicyPipeline.js +43 -3
  223. package/dist/src/runtime/toolPolicyPipeline.js.map +1 -1
  224. package/dist/src/tui/hadamardTuiController.d.ts.map +1 -1
  225. package/dist/src/tui/hadamardTuiController.js +62 -8
  226. package/dist/src/tui/hadamardTuiController.js.map +1 -1
  227. package/dist/src/tui/tuiBasicCommandHandler.d.ts +4 -0
  228. package/dist/src/tui/tuiBasicCommandHandler.d.ts.map +1 -1
  229. package/dist/src/tui/tuiBasicCommandHandler.js +23 -2
  230. package/dist/src/tui/tuiBasicCommandHandler.js.map +1 -1
  231. package/dist/src/tui/tuiCatalogCommandHandler.d.ts +2 -0
  232. package/dist/src/tui/tuiCatalogCommandHandler.d.ts.map +1 -1
  233. package/dist/src/tui/tuiCatalogCommandHandler.js +10 -1
  234. package/dist/src/tui/tuiCatalogCommandHandler.js.map +1 -1
  235. package/dist/src/tui/tuiUsageRoutingRuntime.d.ts +22 -0
  236. package/dist/src/tui/tuiUsageRoutingRuntime.d.ts.map +1 -0
  237. package/dist/src/tui/tuiUsageRoutingRuntime.js +81 -0
  238. package/dist/src/tui/tuiUsageRoutingRuntime.js.map +1 -0
  239. package/dist/src/types.d.ts +16 -0
  240. package/dist/src/types.d.ts.map +1 -1
  241. package/dist/src/types.js.map +1 -1
  242. package/dist/src/ui/commandSurface.d.ts.map +1 -1
  243. package/dist/src/ui/commandSurface.js +45 -1
  244. package/dist/src/ui/commandSurface.js.map +1 -1
  245. package/dist/src/ui/extensionsCommandView.d.ts +18 -0
  246. package/dist/src/ui/extensionsCommandView.d.ts.map +1 -0
  247. package/dist/src/ui/extensionsCommandView.js +82 -0
  248. package/dist/src/ui/extensionsCommandView.js.map +1 -0
  249. package/dist/src/ui/lspCommandView.d.ts +17 -0
  250. package/dist/src/ui/lspCommandView.d.ts.map +1 -0
  251. package/dist/src/ui/lspCommandView.js +25 -0
  252. package/dist/src/ui/lspCommandView.js.map +1 -0
  253. package/dist/src/ui/usageRoutingCommand.d.ts +13 -0
  254. package/dist/src/ui/usageRoutingCommand.d.ts.map +1 -0
  255. package/dist/src/ui/usageRoutingCommand.js +224 -0
  256. package/dist/src/ui/usageRoutingCommand.js.map +1 -0
  257. package/dist/src/usage/budgetService.d.ts +28 -0
  258. package/dist/src/usage/budgetService.d.ts.map +1 -0
  259. package/dist/src/usage/budgetService.js +50 -0
  260. package/dist/src/usage/budgetService.js.map +1 -0
  261. package/dist/src/usage/contracts.d.ts +149 -0
  262. package/dist/src/usage/contracts.d.ts.map +1 -0
  263. package/dist/src/usage/contracts.js +2 -0
  264. package/dist/src/usage/contracts.js.map +1 -0
  265. package/dist/src/usage/index.d.ts +7 -0
  266. package/dist/src/usage/index.d.ts.map +1 -0
  267. package/dist/src/usage/index.js +4 -0
  268. package/dist/src/usage/index.js.map +1 -0
  269. package/dist/src/usage/usageLedger.d.ts +19 -0
  270. package/dist/src/usage/usageLedger.d.ts.map +1 -0
  271. package/dist/src/usage/usageLedger.js +389 -0
  272. package/dist/src/usage/usageLedger.js.map +1 -0
  273. package/dist/src/usage/usageQueryService.d.ts +12 -0
  274. package/dist/src/usage/usageQueryService.d.ts.map +1 -0
  275. package/dist/src/usage/usageQueryService.js +29 -0
  276. package/dist/src/usage/usageQueryService.js.map +1 -0
  277. package/package.json +14 -2
  278. package/scripts/prepare-gui-launcher.mjs +62 -0
@@ -0,0 +1,317 @@
1
+ import { createHash, randomUUID } from 'node:crypto';
2
+ import { chmod, mkdir, writeFile } from 'node:fs/promises';
3
+ import path from 'node:path';
4
+ import { resolveHadamardHome } from '../config/hadamardHome.js';
5
+ import { HadamardBridgeProcessError, RunAbortedError } from '../errors.js';
6
+ import { AsyncQueue } from '../runtime/asyncQueue.js';
7
+ import { asError, isRecord } from '../runtime/helpers.js';
8
+ import { nativeChildEnvironment, nativeSensitiveValues } from './nativeCliEnvironment.js';
9
+ import { IS_WINDOWS, resolveExecutableInvocation } from './nativeCliExecResolver.js';
10
+ import { createReasonixManagedClient } from './reasonixManagedClient.js';
11
+ const MAX_EVENTS = 1_000;
12
+ const MAX_ASSISTANT_MESSAGES = 128;
13
+ class ReasonixRunStream {
14
+ queue = new AsyncQueue({
15
+ capacity: MAX_EVENTS,
16
+ overflowStrategy: 'drop-oldest',
17
+ isPriority: event => event.type === 'system' || event.type === 'result',
18
+ priorityReserve: 2,
19
+ canDrop: event => event.type !== 'system' && event.type !== 'result',
20
+ });
21
+ result;
22
+ constructor(execute) {
23
+ this.result = execute(event => this.queue.push(event))
24
+ .catch(error => {
25
+ this.queue.fail(error);
26
+ throw error;
27
+ })
28
+ .finally(() => this.queue.close());
29
+ }
30
+ [Symbol.asyncIterator]() {
31
+ return this.queue[Symbol.asyncIterator]();
32
+ }
33
+ }
34
+ export class ReasonixNativeCliClient {
35
+ defaults;
36
+ entries = new Map();
37
+ pendingEntries = new Map();
38
+ closed = false;
39
+ constructor(defaults) {
40
+ this.defaults = defaults;
41
+ }
42
+ stream(prompt, options = {}) {
43
+ const merged = {
44
+ ...options,
45
+ model: options.model ?? this.defaults.model,
46
+ workDir: options.workDir ?? this.defaults.workDir ?? process.cwd(),
47
+ homeDir: options.homeDir ?? this.defaults.homeDir,
48
+ profileName: options.profileName ?? this.defaults.profileName,
49
+ credentialProvider: options.credentialProvider ?? this.defaults.credentialProvider,
50
+ env: { ...this.defaults.env, ...options.env },
51
+ };
52
+ return new ReasonixRunStream(emit => this.execute(prompt, merged, emit));
53
+ }
54
+ async close() {
55
+ if (this.closed && this.entries.size === 0 && this.pendingEntries.size === 0)
56
+ return;
57
+ this.closed = true;
58
+ const pending = await Promise.allSettled([...this.pendingEntries.values()]);
59
+ const entries = new Set(this.entries.values());
60
+ for (const result of pending)
61
+ if (result.status === 'fulfilled')
62
+ entries.add(result.value);
63
+ await Promise.all([...entries].map(entry => this.release(entry)));
64
+ this.entries.clear();
65
+ this.pendingEntries.clear();
66
+ }
67
+ async execute(prompt, options, emit) {
68
+ if (this.closed)
69
+ throw new HadamardBridgeProcessError('The native CLI client is closed.');
70
+ assertSupportedOptions(options);
71
+ if (options.forkSession) {
72
+ throw new HadamardBridgeProcessError('Reasonix managed mode does not expose a native session-fork operation.');
73
+ }
74
+ if (options.resume === true || options.continueMostRecent) {
75
+ throw new HadamardBridgeProcessError('Reasonix managed mode requires an exact persisted session id.');
76
+ }
77
+ const nativeSessionId = typeof options.resume === 'string'
78
+ ? validateReasonixValue(options.resume, 'session id')
79
+ : undefined;
80
+ const cwd = path.resolve(options.workDir ?? process.cwd());
81
+ const fingerprint = configFingerprint(options);
82
+ const logicalSessionId = (nativeSessionId ?? options.sessionId?.trim()) || '__default__';
83
+ const alias = entryKey(fingerprint, cwd, logicalSessionId);
84
+ const entry = await this.getOrCreateEntry(alias, cwd, nativeSessionId, options);
85
+ const events = [];
86
+ const assistantMessages = [];
87
+ let initEvent;
88
+ let resultEvent;
89
+ const onEvent = (event) => {
90
+ retain(events, structuredClone(event), MAX_EVENTS);
91
+ if (event.type === 'system' && event.subtype === 'init')
92
+ initEvent = structuredClone(event);
93
+ if (event.type === 'assistant')
94
+ retain(assistantMessages, structuredClone(event), MAX_ASSISTANT_MESSAGES);
95
+ if (event.type === 'result')
96
+ resultEvent = structuredClone(event);
97
+ emit(event);
98
+ };
99
+ try {
100
+ const managed = await entry.client.run({
101
+ prompt,
102
+ model: options.model,
103
+ effort: options.effort,
104
+ maxBudgetUsd: options.maxBudgetUsd,
105
+ permissionMode: options.dangerouslySkipPermissions
106
+ ? 'bypassPermissions'
107
+ : options.permissionMode ?? 'default',
108
+ signal: options.signal,
109
+ onEvent,
110
+ });
111
+ if (!resultEvent) {
112
+ await this.release(entry);
113
+ throw new HadamardBridgeProcessError(managed.stderr.trim()
114
+ ? `Reasonix exited without a result event: ${managed.stderr.trim()}`
115
+ : 'Reasonix exited without emitting a result event.', { stderr: managed.stderr, exitCode: managed.exitCode });
116
+ }
117
+ if (managed.reusable && managed.sessionId) {
118
+ await writeTranscriptMetadata(entry, {
119
+ sessionId: managed.sessionId, cwd, model: options.model, prompt,
120
+ }).catch(() => undefined);
121
+ this.entries.set(entryKey(fingerprint, cwd, managed.sessionId), entry);
122
+ }
123
+ else if (!managed.reusable)
124
+ await this.release(entry);
125
+ return {
126
+ text: resultText(resultEvent, assistantMessages),
127
+ sessionId: nonEmptyString(resultEvent.session_id)
128
+ ?? nonEmptyString(initEvent?.session_id)
129
+ ?? managed.sessionId,
130
+ isError: typeof resultEvent.is_error === 'boolean' ? resultEvent.is_error : false,
131
+ subtype: stringValue(resultEvent.subtype),
132
+ stopReason: stringValue(resultEvent.stop_reason),
133
+ durationMs: numberValue(resultEvent.duration_ms),
134
+ totalCostUsd: numberValue(resultEvent.total_cost_usd),
135
+ numTurns: numberValue(resultEvent.num_turns),
136
+ exitCode: managed.exitCode,
137
+ stderr: managed.stderr,
138
+ initEvent,
139
+ resultEvent,
140
+ assistantMessages,
141
+ events,
142
+ };
143
+ }
144
+ catch (error) {
145
+ await this.release(entry);
146
+ const normalized = asError(error);
147
+ if (options.signal?.aborted || normalized.name === 'AbortError') {
148
+ throw new RunAbortedError('The Reasonix managed run was aborted.', { cause: error });
149
+ }
150
+ if (error instanceof HadamardBridgeProcessError)
151
+ throw error;
152
+ throw new HadamardBridgeProcessError(normalized.message, { cause: error });
153
+ }
154
+ }
155
+ async getOrCreateEntry(alias, cwd, nativeSessionId, options) {
156
+ const cached = this.entries.get(alias);
157
+ if (cached)
158
+ return cached;
159
+ const pending = this.pendingEntries.get(alias);
160
+ if (pending)
161
+ return pending;
162
+ const creation = (async () => {
163
+ const environment = nativeChildEnvironment(options.env);
164
+ const cliArgs = buildReasonixArgs(options);
165
+ const transcriptRoot = path.join(await persistentProfile(options), '.reasonix', 'sessions');
166
+ await ensurePrivateDirectory(transcriptRoot);
167
+ const identity = nativeSessionId
168
+ ? createHash('sha256').update(nativeSessionId).digest('hex').slice(0, 32)
169
+ : randomUUID();
170
+ const transcriptPath = path.join(transcriptRoot, `managed-${identity}.jsonl`);
171
+ cliArgs.push('--dir', cwd, '--transcript', transcriptPath);
172
+ const rawArgs = this.defaults.cliPath ? [this.defaults.cliPath, ...cliArgs] : cliArgs;
173
+ const invocation = await resolveExecutableInvocation(this.defaults.executable, rawArgs);
174
+ if (this.closed)
175
+ throw new HadamardBridgeProcessError('The native CLI client is closed.');
176
+ const client = createReasonixManagedClient({
177
+ executable: invocation.file,
178
+ args: invocation.args,
179
+ cwd,
180
+ env: environment,
181
+ nativeSessionId,
182
+ secrets: nativeSensitiveValues(environment),
183
+ });
184
+ const entry = {
185
+ client,
186
+ transcriptPath,
187
+ transcriptCreatedAt: new Date().toISOString(),
188
+ };
189
+ this.entries.set(alias, entry);
190
+ return entry;
191
+ })();
192
+ this.pendingEntries.set(alias, creation);
193
+ try {
194
+ return await creation;
195
+ }
196
+ finally {
197
+ if (this.pendingEntries.get(alias) === creation)
198
+ this.pendingEntries.delete(alias);
199
+ }
200
+ }
201
+ async release(entry) {
202
+ for (const [key, candidate] of this.entries)
203
+ if (candidate === entry)
204
+ this.entries.delete(key);
205
+ entry.cleanupPromise ??= entry.client.close().catch(() => undefined);
206
+ await entry.cleanupPromise;
207
+ }
208
+ }
209
+ export async function createReasonixNativeCliClient(options) {
210
+ return new ReasonixNativeCliClient(options);
211
+ }
212
+ function buildReasonixArgs(options) {
213
+ const args = ['acp'];
214
+ if (options.model)
215
+ args.push('--model', validateReasonixValue(options.model, 'model'));
216
+ return args;
217
+ }
218
+ function validateReasonixValue(value, label) {
219
+ const normalized = value.trim();
220
+ if (!normalized || normalized.length > 512 || normalized.startsWith('-')
221
+ || /[\u0000-\u001f\u007f]/u.test(normalized)) {
222
+ throw new HadamardBridgeProcessError(`Reasonix ${label} must be a non-option value without control characters.`);
223
+ }
224
+ return normalized;
225
+ }
226
+ const UNSUPPORTED_OPTIONS = [
227
+ 'fallbackModel', 'systemPrompt', 'appendSystemPrompt', 'maxTurns', 'agent', 'agents',
228
+ 'tools', 'allowedTools', 'disallowedTools', 'addDirs', 'mcpConfigs', 'strictMcpConfig',
229
+ 'settings', 'settingSources', 'jsonSchema', 'files', 'bare', 'disableSlashCommands',
230
+ 'includeHookEvents', 'pluginDirs', 'cliArgs',
231
+ ];
232
+ function assertSupportedOptions(options) {
233
+ const unsupported = UNSUPPORTED_OPTIONS.filter(key => optionWasRequested(options, key));
234
+ if (unsupported.length)
235
+ throw new HadamardBridgeProcessError(`Reasonix managed mode cannot enforce bridge option${unsupported.length === 1 ? '' : 's'}: ${unsupported.join(', ')}.`);
236
+ }
237
+ function optionWasRequested(options, key) {
238
+ const value = options[key];
239
+ if (value == null)
240
+ return false;
241
+ if (key === 'tools')
242
+ return true;
243
+ if (Array.isArray(value))
244
+ return value.length > 0;
245
+ if (typeof value === 'string')
246
+ return value.length > 0;
247
+ if (typeof value === 'boolean')
248
+ return value;
249
+ return true;
250
+ }
251
+ function configFingerprint(options) {
252
+ return createHash('sha256').update(JSON.stringify({
253
+ homeDir: options.homeDir ?? '',
254
+ model: options.model ?? '',
255
+ profileName: options.profileName ?? '',
256
+ credentialProvider: options.credentialProvider ?? '',
257
+ env: Object.entries(options.env ?? {}).sort(([left], [right]) => left.localeCompare(right)),
258
+ })).digest('hex');
259
+ }
260
+ function entryKey(fingerprint, cwd, sessionId) {
261
+ return `${fingerprint}\0${cwd}\0${sessionId}`;
262
+ }
263
+ async function persistentProfile(options) {
264
+ const name = options.profileName?.trim();
265
+ const identity = name ? `name:${name}` : `anonymous:${options.credentialProvider ?? ''}`;
266
+ const profileId = createHash('sha256').update(`reasonix\0${identity}`).digest('hex');
267
+ const root = path.join(resolveHadamardHome(options.homeDir), 'external-cli-profiles', 'reasonix', profileId);
268
+ await ensurePrivateDirectory(root);
269
+ return root;
270
+ }
271
+ async function ensurePrivateDirectory(directory) {
272
+ await mkdir(directory, { recursive: true, mode: 0o700 });
273
+ if (!IS_WINDOWS)
274
+ await chmod(directory, 0o700);
275
+ }
276
+ async function writeTranscriptMetadata(entry, options) {
277
+ entry.transcriptTitle ??= options.prompt.replace(/\s+/gu, ' ').trim().slice(0, 160);
278
+ const stem = entry.transcriptPath.slice(0, -path.extname(entry.transcriptPath).length);
279
+ await writeFile(`${stem}.acp.json`, `${JSON.stringify({
280
+ sessionId: options.sessionId,
281
+ title: entry.transcriptTitle || options.sessionId,
282
+ cwd: options.cwd,
283
+ model: options.model,
284
+ createdAt: entry.transcriptCreatedAt,
285
+ updatedAt: new Date().toISOString(),
286
+ }, null, 2)}\n`, { encoding: 'utf8', mode: 0o600 });
287
+ }
288
+ function resultText(result, messages) {
289
+ if (typeof result.result === 'string')
290
+ return result.result;
291
+ const parts = [];
292
+ for (const event of messages) {
293
+ const message = isRecord(event.message) ? event.message : undefined;
294
+ if (!Array.isArray(message?.content))
295
+ continue;
296
+ for (const block of message.content) {
297
+ if (isRecord(block) && block.type === 'text' && typeof block.text === 'string')
298
+ parts.push(block.text);
299
+ }
300
+ }
301
+ return parts.join('');
302
+ }
303
+ function retain(items, value, limit) {
304
+ if (items.length === limit)
305
+ items.shift();
306
+ items.push(value);
307
+ }
308
+ function stringValue(value) {
309
+ return typeof value === 'string' ? value : undefined;
310
+ }
311
+ function nonEmptyString(value) {
312
+ return stringValue(value)?.trim() || undefined;
313
+ }
314
+ function numberValue(value) {
315
+ return typeof value === 'number' && Number.isFinite(value) ? value : undefined;
316
+ }
317
+ //# sourceMappingURL=reasonixNativeCliClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reasonixNativeCliClient.js","sourceRoot":"","sources":["../../../src/nativeCli/reasonixNativeCliClient.ts"],"names":[],"mappings":"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"}
@@ -1,26 +1,3 @@
1
- /**
2
- * Executable resolution primitives shared by the bridge SDK and its provider
3
- * layer. Kept in a leaf module so `bridgeProviders.ts` can resolve a provider
4
- * binary on PATH without importing the full `hadamardBridgeSdk.ts` (which would
5
- * create a circular import).
6
- */
7
- declare const IS_WINDOWS: boolean;
8
- export declare function pathExists(filePath: string): Promise<boolean>;
9
- export declare function isExecutable(filePath: string): Promise<boolean>;
10
- export declare function splitPathEnv(pathValue: string | undefined): string[];
11
- export declare function findExecutableOnPath(name: string): Promise<string | undefined>;
12
- export declare function findFirstExistingPath(candidates: string[]): Promise<string | undefined>;
13
- export interface ResolvedExecutableInvocation {
14
- file: string;
15
- args: string[];
16
- }
17
- /**
18
- * Resolve an npm-generated Windows .cmd/.bat shim to its real executable.
19
- * User-controlled prompts must never be concatenated into a cmd.exe command
20
- * line: cmd expands `%VAR%` even inside quotes and its quote rules cannot make
21
- * arbitrary argv safe. Standard npm shims point at either a package .exe or a
22
- * JavaScript entry point; both can be launched directly with shell:false.
23
- */
24
- export declare function resolveExecutableInvocation(executable: string, args: string[]): Promise<ResolvedExecutableInvocation>;
25
- export { IS_WINDOWS };
1
+ /** @deprecated Import executable resolution from ../nativeCli/nativeCliExecResolver.js. */
2
+ export * from '../nativeCli/nativeCliExecResolver.js';
26
3
  //# sourceMappingURL=bridgeExecResolver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bridgeExecResolver.d.ts","sourceRoot":"","sources":["../../../src/parity/bridgeExecResolver.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,QAAA,MAAM,UAAU,SAA+B,CAAC;AAEhD,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOnE;AAED,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOrE;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE,CAKpE;AAED,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAyBpF;AAED,wBAAsB,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAU7F;AAED,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED;;;;;;GAMG;AACH,wBAAsB,2BAA2B,CAC/C,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EAAE,GACb,OAAO,CAAC,4BAA4B,CAAC,CAkDvC;AAyCD,OAAO,EAAE,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"bridgeExecResolver.d.ts","sourceRoot":"","sources":["../../../src/parity/bridgeExecResolver.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,cAAc,uCAAuC,CAAC"}
@@ -1,152 +1,3 @@
1
- /**
2
- * Executable resolution primitives shared by the bridge SDK and its provider
3
- * layer. Kept in a leaf module so `bridgeProviders.ts` can resolve a provider
4
- * binary on PATH without importing the full `hadamardBridgeSdk.ts` (which would
5
- * create a circular import).
6
- */
7
- import { constants as fsConstants } from 'node:fs';
8
- import { access, readFile, readdir } from 'node:fs/promises';
9
- import path from 'node:path';
10
- const IS_WINDOWS = process.platform === 'win32';
11
- export async function pathExists(filePath) {
12
- try {
13
- await access(filePath, fsConstants.F_OK);
14
- return true;
15
- }
16
- catch {
17
- return false;
18
- }
19
- }
20
- export async function isExecutable(filePath) {
21
- try {
22
- await access(filePath, IS_WINDOWS ? fsConstants.F_OK : fsConstants.X_OK);
23
- return true;
24
- }
25
- catch {
26
- return false;
27
- }
28
- }
29
- export function splitPathEnv(pathValue) {
30
- if (!pathValue) {
31
- return [];
32
- }
33
- return pathValue.split(path.delimiter).filter(Boolean);
34
- }
35
- export async function findExecutableOnPath(name) {
36
- const pathDirectories = splitPathEnv(process.env.PATH);
37
- const extensions = IS_WINDOWS
38
- ? (process.env.PATHEXT ?? '.COM;.EXE;.BAT;.CMD')
39
- .split(';')
40
- .filter(Boolean)
41
- : [''];
42
- for (const directory of pathDirectories) {
43
- const directCandidate = path.join(directory, name);
44
- if (!IS_WINDOWS && (await isExecutable(directCandidate))) {
45
- return directCandidate;
46
- }
47
- for (const extension of extensions) {
48
- const candidate = directCandidate.endsWith(extension.toLowerCase())
49
- ? directCandidate
50
- : `${directCandidate}${extension.toLowerCase()}`;
51
- if (await isExecutable(candidate)) {
52
- return candidate;
53
- }
54
- }
55
- }
56
- return undefined;
57
- }
58
- export async function findFirstExistingPath(candidates) {
59
- for (const candidate of candidates) {
60
- if (!candidate) {
61
- continue;
62
- }
63
- if (await pathExists(candidate)) {
64
- return candidate;
65
- }
66
- }
67
- return undefined;
68
- }
69
- /**
70
- * Resolve an npm-generated Windows .cmd/.bat shim to its real executable.
71
- * User-controlled prompts must never be concatenated into a cmd.exe command
72
- * line: cmd expands `%VAR%` even inside quotes and its quote rules cannot make
73
- * arbitrary argv safe. Standard npm shims point at either a package .exe or a
74
- * JavaScript entry point; both can be launched directly with shell:false.
75
- */
76
- export async function resolveExecutableInvocation(executable, args) {
77
- if (!IS_WINDOWS || !/\.(?:cmd|bat)$/i.test(executable)) {
78
- return { file: executable, args };
79
- }
80
- let source;
81
- try {
82
- source = await readFile(executable, 'utf8');
83
- }
84
- catch (error) {
85
- throw new Error(`Unable to read Windows CLI shim: ${executable}`, { cause: error });
86
- }
87
- const candidates = [...source.matchAll(/%~?dp0%?[\\/]([^"\r\n]+?\.(?:exe|com|cjs|mjs|js))(?=["\s])/giu)];
88
- const match = candidates.at(-1);
89
- if (!match?.[1]) {
90
- // Not an npm-style shim. The Cursor CLI ships a PowerShell shim that
91
- // dispatches to versions/<version>/node.exe versions/<version>/index.js
92
- // next to the wrapper; resolve that bundle directly.
93
- const bundled = await resolveVersionedNodeBundle(path.dirname(executable), args);
94
- if (bundled) {
95
- return bundled;
96
- }
97
- throw new Error(`Unsupported Windows CLI wrapper: ${executable}. Configure the underlying .exe or JavaScript entry point instead.`);
98
- }
99
- const target = path.resolve(path.dirname(executable), match[1].replace(/[\\/]+/gu, path.sep));
100
- if (!(await pathExists(target))) {
101
- throw new Error(`Windows CLI shim target was not found: ${target}`);
102
- }
103
- if (/\.(?:cjs|mjs|js)$/i.test(target)) {
104
- // `process.execPath` is electron.exe inside the desktop app. Launching a
105
- // JavaScript npm shim with it would start another Electron application,
106
- // not the CLI runtime. An npm-installed CLI necessarily has a Node host
107
- // available on PATH, so resolve that host explicitly in Electron.
108
- const nodeExecutable = process.versions.electron
109
- ? await findExecutableOnPath('node')
110
- : process.execPath;
111
- if (!nodeExecutable) {
112
- throw new Error(`Node.js was not found on PATH for Windows CLI shim target: ${target}`);
113
- }
114
- return { file: nodeExecutable, args: [target, ...args] };
115
- }
116
- return { file: target, args };
117
- }
118
- const VERSIONED_BUNDLE_DIR = /^(\d{4})\.(\d{1,2})\.(\d{1,2})(?:-\d{2}-\d{2}-\d{2})?-[a-f0-9]+$/iu;
119
- /**
120
- * Resolve a Cursor-style versioned Node bundle next to a Windows shim:
121
- * versions/<YYYY.MM.DD[-HH-MM-SS]-commit>/node.exe plus index.js. Mirrors the
122
- * version selection of the vendor PowerShell shim (latest date wins).
123
- */
124
- async function resolveVersionedNodeBundle(shimDir, args) {
125
- let entries;
126
- try {
127
- entries = await readdir(path.join(shimDir, 'versions'), { withFileTypes: true });
128
- }
129
- catch {
130
- return undefined;
131
- }
132
- const versions = entries
133
- .filter(entry => entry.isDirectory())
134
- .map(entry => ({ name: entry.name, match: VERSIONED_BUNDLE_DIR.exec(entry.name) }))
135
- .filter((candidate) => candidate.match !== null)
136
- .map(candidate => ({
137
- name: candidate.name,
138
- key: Number(candidate.match[1]) * 10000 + Number(candidate.match[2]) * 100 + Number(candidate.match[3]),
139
- }))
140
- .sort((a, b) => b.key - a.key || b.name.localeCompare(a.name));
141
- for (const version of versions) {
142
- const bundleDir = path.join(shimDir, 'versions', version.name);
143
- const nodeExecutable = path.join(bundleDir, 'node.exe');
144
- const entryPoint = path.join(bundleDir, 'index.js');
145
- if (await pathExists(nodeExecutable) && await pathExists(entryPoint)) {
146
- return { file: nodeExecutable, args: [entryPoint, ...args] };
147
- }
148
- }
149
- return undefined;
150
- }
151
- export { IS_WINDOWS };
1
+ /** @deprecated Import executable resolution from ../nativeCli/nativeCliExecResolver.js. */
2
+ export * from '../nativeCli/nativeCliExecResolver.js';
152
3
  //# sourceMappingURL=bridgeExecResolver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bridgeExecResolver.js","sourceRoot":"","sources":["../../../src/parity/bridgeExecResolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bridgeExecResolver.js","sourceRoot":"","sources":["../../../src/parity/bridgeExecResolver.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,cAAc,uCAAuC,CAAC"}
@@ -1,3 +1,3 @@
1
- import type { ChildProcess } from 'node:child_process';
2
- export declare function terminateManagedProcessTree(child: ChildProcess): Promise<void>;
1
+ /** @deprecated Import process-tree helpers from ../nativeCli/nativeCliProcessTree.js. */
2
+ export * from '../nativeCli/nativeCliProcessTree.js';
3
3
  //# sourceMappingURL=bridgeProcessTree.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bridgeProcessTree.d.ts","sourceRoot":"","sources":["../../../src/parity/bridgeProcessTree.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AA4EvD,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAM9E"}
1
+ {"version":3,"file":"bridgeProcessTree.d.ts","sourceRoot":"","sources":["../../../src/parity/bridgeProcessTree.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,cAAc,sCAAsC,CAAC"}
@@ -1,83 +1,3 @@
1
- import { IS_WINDOWS } from './bridgeExecResolver.js';
2
- import { terminateBridgeProcessTree } from './bridgeProviders.js';
3
- const POSIX_TERMINATION_GRACE_MS = 250;
4
- const PROCESS_EXIT_WAIT_MS = 1_000;
5
- const activeTerminations = new WeakMap();
6
- function hasExited(child) {
7
- return child.exitCode !== null || child.signalCode !== null;
8
- }
9
- function waitForExit(child, timeoutMs) {
10
- if (hasExited(child))
11
- return Promise.resolve();
12
- return new Promise(resolve => {
13
- const finish = () => {
14
- clearTimeout(timer);
15
- child.removeListener('close', finish);
16
- resolve();
17
- };
18
- const timer = setTimeout(finish, timeoutMs);
19
- child.once('close', finish);
20
- });
21
- }
22
- function processGroupIsAlive(pid) {
23
- try {
24
- process.kill(-pid, 0);
25
- return true;
26
- }
27
- catch (error) {
28
- return error.code === 'EPERM';
29
- }
30
- }
31
- function signalProcessGroup(child, signal) {
32
- const pid = child.pid;
33
- if (!pid)
34
- return;
35
- try {
36
- process.kill(-pid, signal);
37
- return;
38
- }
39
- catch {
40
- // A detached POSIX child should lead its process group. Fall back to the
41
- // direct process if it exited or group signalling is unavailable.
42
- }
43
- if (!hasExited(child)) {
44
- try {
45
- child.kill(signal);
46
- }
47
- catch {
48
- // The process may exit between the state check and signal.
49
- }
50
- }
51
- }
52
- async function terminateProcessTreeImpl(child) {
53
- if (IS_WINDOWS) {
54
- await terminateBridgeProcessTree(child);
55
- return;
56
- }
57
- const pid = child.pid;
58
- if (!pid)
59
- return;
60
- signalProcessGroup(child, 'SIGTERM');
61
- await new Promise(resolve => setTimeout(resolve, POSIX_TERMINATION_GRACE_MS));
62
- if (processGroupIsAlive(pid)) {
63
- signalProcessGroup(child, 'SIGKILL');
64
- }
65
- else if (!hasExited(child)) {
66
- try {
67
- child.kill('SIGKILL');
68
- }
69
- catch {
70
- // The direct child exited after the group-liveness check.
71
- }
72
- }
73
- await waitForExit(child, PROCESS_EXIT_WAIT_MS);
74
- }
75
- export function terminateManagedProcessTree(child) {
76
- const active = activeTerminations.get(child);
77
- if (active)
78
- return active;
79
- const termination = terminateProcessTreeImpl(child);
80
- activeTerminations.set(child, termination);
81
- return termination;
82
- }
1
+ /** @deprecated Import process-tree helpers from ../nativeCli/nativeCliProcessTree.js. */
2
+ export * from '../nativeCli/nativeCliProcessTree.js';
83
3
  //# sourceMappingURL=bridgeProcessTree.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bridgeProcessTree.js","sourceRoot":"","sources":["../../../src/parity/bridgeProcessTree.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bridgeProcessTree.js","sourceRoot":"","sources":["../../../src/parity/bridgeProcessTree.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,cAAc,sCAAsC,CAAC"}