@ricsam/r5d-worker 0.0.136 → 0.0.138

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 (240) hide show
  1. package/README.md +4 -94
  2. package/dist/cjs/package.json +1 -1
  3. package/dist/mjs/main.mjs +46 -7537
  4. package/dist/mjs/package.json +1 -1
  5. package/dist/mjs/personal/action-scheduler.mjs +31 -0
  6. package/dist/mjs/personal/client.mjs +215 -0
  7. package/dist/mjs/personal/runtime.mjs +328 -0
  8. package/dist/mjs/personal/tcp.mjs +217 -0
  9. package/dist/mjs/runtime/adapter.mjs +42 -0
  10. package/dist/mjs/runtime/client.mjs +95 -0
  11. package/dist/mjs/runtime/daemon.mjs +131 -0
  12. package/dist/mjs/runtime/executor.mjs +436 -0
  13. package/dist/mjs/runtime/index.mjs +15 -0
  14. package/dist/mjs/runtime/protocol.mjs +139 -0
  15. package/dist/mjs/runtime/pty-host.mjs +156 -0
  16. package/dist/mjs/runtime/pty.mjs +127 -0
  17. package/dist/mjs/runtime/releases/artifacts.mjs +201 -0
  18. package/dist/mjs/runtime/releases/grants.mjs +93 -0
  19. package/dist/mjs/runtime/releases/main.mjs +101 -0
  20. package/dist/mjs/runtime/releases/manager.mjs +541 -0
  21. package/dist/mjs/runtime/releases/process.mjs +88 -0
  22. package/dist/mjs/runtime/releases/retirement.mjs +18 -0
  23. package/dist/mjs/runtime/releases/rpc-client.mjs +184 -0
  24. package/dist/mjs/runtime/releases/rpc-main.mjs +213 -0
  25. package/dist/mjs/runtime/releases/rpc-protocol.mjs +103 -0
  26. package/dist/mjs/runtime/storage.mjs +156 -0
  27. package/dist/mjs/runtime/workspace/artifacts.mjs +121 -0
  28. package/dist/mjs/runtime/workspace/authority.mjs +1355 -0
  29. package/dist/mjs/runtime/workspace/contracts.mjs +60 -0
  30. package/dist/mjs/runtime/workspace/file-write.mjs +23 -0
  31. package/dist/mjs/runtime/workspace/files.mjs +308 -0
  32. package/dist/mjs/runtime/workspace/http-body.mjs +45 -0
  33. package/dist/mjs/runtime/workspace/storage-client.mjs +59 -0
  34. package/dist/mjs/runtime/workspace/storage-wire.mjs +53 -0
  35. package/dist/types/main.d.ts +0 -1167
  36. package/dist/types/personal/action-scheduler.d.ts +23 -0
  37. package/dist/types/personal/client.d.ts +14 -0
  38. package/dist/types/personal/runtime.d.ts +121 -0
  39. package/dist/types/personal/tcp.d.ts +14 -0
  40. package/dist/types/runtime/client.d.ts +17 -0
  41. package/dist/types/runtime/daemon.d.ts +8 -0
  42. package/dist/types/runtime/executor.d.ts +35 -0
  43. package/dist/types/runtime/index.d.ts +5 -0
  44. package/dist/types/runtime/protocol.d.ts +544 -0
  45. package/dist/types/runtime/pty.d.ts +30 -0
  46. package/dist/types/runtime/releases/artifacts.d.ts +51 -0
  47. package/dist/types/runtime/releases/grants.d.ts +16 -0
  48. package/dist/types/runtime/releases/manager.d.ts +145 -0
  49. package/dist/types/runtime/releases/process.d.ts +14 -0
  50. package/dist/types/runtime/releases/retirement.d.ts +15 -0
  51. package/dist/types/runtime/releases/rpc-client.d.ts +52 -0
  52. package/dist/types/runtime/releases/rpc-main.d.ts +10 -0
  53. package/dist/types/runtime/releases/rpc-protocol.d.ts +1139 -0
  54. package/dist/types/runtime/storage.d.ts +21 -0
  55. package/dist/types/runtime/test-harness.d.ts +53 -0
  56. package/dist/types/runtime/workspace/artifacts.d.ts +30 -0
  57. package/dist/types/runtime/workspace/authority.d.ts +338 -0
  58. package/dist/types/runtime/workspace/contracts.d.ts +86 -0
  59. package/dist/types/runtime/workspace/file-write.d.ts +14 -0
  60. package/dist/types/runtime/workspace/files.d.ts +21 -0
  61. package/dist/types/runtime/workspace/http-body.d.ts +9 -0
  62. package/dist/types/runtime/workspace/storage-client.d.ts +23 -0
  63. package/dist/types/runtime/workspace/storage-wire.d.ts +138 -0
  64. package/package.json +8 -6
  65. package/dist/cjs/atomic-rename.cjs +0 -303
  66. package/dist/cjs/browser-upload.cjs +0 -73
  67. package/dist/cjs/cli-update.cjs +0 -108
  68. package/dist/cjs/command-launcher.cjs +0 -423
  69. package/dist/cjs/control-command-policy.cjs +0 -177
  70. package/dist/cjs/git-blob-hash.cjs +0 -41
  71. package/dist/cjs/git-identity.cjs +0 -39
  72. package/dist/cjs/git-process-environment.cjs +0 -133
  73. package/dist/cjs/inline-output.cjs +0 -62
  74. package/dist/cjs/main.cjs +0 -7511
  75. package/dist/cjs/managed-paths.cjs +0 -215
  76. package/dist/cjs/plan-lint.cjs +0 -165
  77. package/dist/cjs/plan-parser.cjs +0 -127
  78. package/dist/cjs/plan-paths.cjs +0 -53
  79. package/dist/cjs/port-forward-client.cjs +0 -206
  80. package/dist/cjs/process-tree.cjs +0 -117
  81. package/dist/cjs/project-checkout-garbage.cjs +0 -219
  82. package/dist/cjs/project-mirror-fetch-policy.cjs +0 -82
  83. package/dist/cjs/project-mirror-refs-token.cjs +0 -85
  84. package/dist/cjs/project-workspace-state.cjs +0 -972
  85. package/dist/cjs/project-worktrees.cjs +0 -1713
  86. package/dist/cjs/pty-output-coalescer.cjs +0 -87
  87. package/dist/cjs/recovery-journal-protocol.cjs +0 -56
  88. package/dist/cjs/recovery-journal-runtime.cjs +0 -133
  89. package/dist/cjs/recovery-journal-thread.cjs +0 -9
  90. package/dist/cjs/recovery-journal.cjs +0 -742
  91. package/dist/cjs/recovery-output-window.cjs +0 -77
  92. package/dist/cjs/recovery-protocol.cjs +0 -31
  93. package/dist/cjs/recovery-store.cjs +0 -252
  94. package/dist/cjs/registry-auth.cjs +0 -310
  95. package/dist/cjs/repository-transition-policy.cjs +0 -49
  96. package/dist/cjs/runtime-version.cjs +0 -88
  97. package/dist/cjs/session-file-mutations.cjs +0 -61
  98. package/dist/cjs/supervisor.cjs +0 -147
  99. package/dist/cjs/three-way-merge.cjs +0 -346
  100. package/dist/cjs/working-tree-mirror.cjs +0 -1872
  101. package/dist/cjs/workspace-automatic-sync-policy.cjs +0 -79
  102. package/dist/cjs/workspace-branch-incarnation-policy.cjs +0 -37
  103. package/dist/cjs/workspace-command-sync-policy.cjs +0 -112
  104. package/dist/cjs/workspace-command-targets.cjs +0 -63
  105. package/dist/cjs/workspace-filesystem-executor-thread.cjs +0 -36
  106. package/dist/cjs/workspace-filesystem-executor.cjs +0 -327
  107. package/dist/cjs/workspace-filesystem-job-types.cjs +0 -144
  108. package/dist/cjs/workspace-filesystem-jobs.cjs +0 -59
  109. package/dist/cjs/workspace-git-sync.cjs +0 -3450
  110. package/dist/cjs/workspace-hydration-ledger.cjs +0 -66
  111. package/dist/cjs/workspace-hydration-merge.cjs +0 -433
  112. package/dist/cjs/workspace-hydration-recovery-state.cjs +0 -53
  113. package/dist/cjs/workspace-incident-state.cjs +0 -37
  114. package/dist/cjs/workspace-merge-projection.cjs +0 -467
  115. package/dist/cjs/workspace-mount-boundary.cjs +0 -71
  116. package/dist/cjs/workspace-mount-hold-fence.cjs +0 -120
  117. package/dist/cjs/workspace-mutation-gate.cjs +0 -127
  118. package/dist/cjs/workspace-path-move.cjs +0 -195
  119. package/dist/cjs/workspace-preserve-only-policy.cjs +0 -36
  120. package/dist/cjs/workspace-project-config-policy.cjs +0 -53
  121. package/dist/cjs/workspace-projection-ledger.cjs +0 -81
  122. package/dist/cjs/workspace-publication-evidence.cjs +0 -46
  123. package/dist/cjs/workspace-sync-coalescer.cjs +0 -58
  124. package/dist/mjs/atomic-rename.mjs +0 -261
  125. package/dist/mjs/browser-upload.mjs +0 -42
  126. package/dist/mjs/command-launcher.mjs +0 -393
  127. package/dist/mjs/control-command-policy.mjs +0 -146
  128. package/dist/mjs/git-blob-hash.mjs +0 -16
  129. package/dist/mjs/git-identity.mjs +0 -15
  130. package/dist/mjs/git-process-environment.mjs +0 -105
  131. package/dist/mjs/inline-output.mjs +0 -37
  132. package/dist/mjs/managed-paths.mjs +0 -174
  133. package/dist/mjs/plan-lint.mjs +0 -129
  134. package/dist/mjs/plan-parser.mjs +0 -94
  135. package/dist/mjs/plan-paths.mjs +0 -25
  136. package/dist/mjs/port-forward-client.mjs +0 -172
  137. package/dist/mjs/project-checkout-garbage.mjs +0 -178
  138. package/dist/mjs/project-mirror-fetch-policy.mjs +0 -56
  139. package/dist/mjs/project-mirror-refs-token.mjs +0 -53
  140. package/dist/mjs/project-workspace-state.mjs +0 -937
  141. package/dist/mjs/project-worktrees.mjs +0 -1657
  142. package/dist/mjs/pty-output-coalescer.mjs +0 -61
  143. package/dist/mjs/recovery-journal-protocol.mjs +0 -30
  144. package/dist/mjs/recovery-journal-runtime.mjs +0 -112
  145. package/dist/mjs/recovery-journal-thread.mjs +0 -8
  146. package/dist/mjs/recovery-journal.mjs +0 -694
  147. package/dist/mjs/recovery-output-window.mjs +0 -53
  148. package/dist/mjs/recovery-protocol.mjs +0 -6
  149. package/dist/mjs/recovery-store.mjs +0 -217
  150. package/dist/mjs/registry-auth.mjs +0 -269
  151. package/dist/mjs/repository-transition-policy.mjs +0 -22
  152. package/dist/mjs/runtime-version.mjs +0 -54
  153. package/dist/mjs/session-file-mutations.mjs +0 -37
  154. package/dist/mjs/supervisor.mjs +0 -114
  155. package/dist/mjs/three-way-merge.mjs +0 -318
  156. package/dist/mjs/working-tree-mirror.mjs +0 -1817
  157. package/dist/mjs/workspace-automatic-sync-policy.mjs +0 -48
  158. package/dist/mjs/workspace-branch-incarnation-policy.mjs +0 -13
  159. package/dist/mjs/workspace-command-sync-policy.mjs +0 -84
  160. package/dist/mjs/workspace-command-targets.mjs +0 -37
  161. package/dist/mjs/workspace-filesystem-executor-thread.mjs +0 -38
  162. package/dist/mjs/workspace-filesystem-executor.mjs +0 -287
  163. package/dist/mjs/workspace-filesystem-job-types.mjs +0 -116
  164. package/dist/mjs/workspace-filesystem-jobs.mjs +0 -55
  165. package/dist/mjs/workspace-git-sync.mjs +0 -3407
  166. package/dist/mjs/workspace-hydration-ledger.mjs +0 -42
  167. package/dist/mjs/workspace-hydration-merge.mjs +0 -399
  168. package/dist/mjs/workspace-hydration-recovery-state.mjs +0 -29
  169. package/dist/mjs/workspace-incident-state.mjs +0 -12
  170. package/dist/mjs/workspace-merge-projection.mjs +0 -433
  171. package/dist/mjs/workspace-mount-boundary.mjs +0 -37
  172. package/dist/mjs/workspace-mount-hold-fence.mjs +0 -95
  173. package/dist/mjs/workspace-mutation-gate.mjs +0 -103
  174. package/dist/mjs/workspace-path-move.mjs +0 -160
  175. package/dist/mjs/workspace-preserve-only-policy.mjs +0 -11
  176. package/dist/mjs/workspace-project-config-policy.mjs +0 -27
  177. package/dist/mjs/workspace-projection-ledger.mjs +0 -57
  178. package/dist/mjs/workspace-publication-evidence.mjs +0 -21
  179. package/dist/mjs/workspace-sync-coalescer.mjs +0 -34
  180. package/dist/types/atomic-rename.d.ts +0 -78
  181. package/dist/types/browser-upload.d.ts +0 -7
  182. package/dist/types/command-launcher.d.ts +0 -104
  183. package/dist/types/control-command-policy.d.ts +0 -53
  184. package/dist/types/git-blob-hash.d.ts +0 -10
  185. package/dist/types/git-identity.d.ts +0 -9
  186. package/dist/types/git-process-environment.d.ts +0 -9
  187. package/dist/types/inline-output.d.ts +0 -3
  188. package/dist/types/managed-paths.d.ts +0 -19
  189. package/dist/types/plan-lint.d.ts +0 -16
  190. package/dist/types/plan-parser.d.ts +0 -38
  191. package/dist/types/plan-paths.d.ts +0 -36
  192. package/dist/types/port-forward-client.d.ts +0 -8
  193. package/dist/types/project-checkout-garbage.d.ts +0 -86
  194. package/dist/types/project-mirror-fetch-policy.d.ts +0 -84
  195. package/dist/types/project-mirror-refs-token.d.ts +0 -53
  196. package/dist/types/project-workspace-state.d.ts +0 -188
  197. package/dist/types/project-worktrees.d.ts +0 -397
  198. package/dist/types/pty-output-coalescer.d.ts +0 -20
  199. package/dist/types/recovery-journal-protocol.d.ts +0 -35
  200. package/dist/types/recovery-journal-runtime.d.ts +0 -12
  201. package/dist/types/recovery-journal-thread.d.ts +0 -1
  202. package/dist/types/recovery-journal.d.ts +0 -248
  203. package/dist/types/recovery-output-window.d.ts +0 -19
  204. package/dist/types/recovery-protocol.d.ts +0 -59
  205. package/dist/types/recovery-store.d.ts +0 -52
  206. package/dist/types/registry-auth.d.ts +0 -47
  207. package/dist/types/repository-transition-policy.d.ts +0 -26
  208. package/dist/types/runtime-version.d.ts +0 -1
  209. package/dist/types/session-file-mutations.d.ts +0 -22
  210. package/dist/types/supervisor-daemonized-fixture.d.ts +0 -1
  211. package/dist/types/supervisor-launcher-cleanup-fixture.d.ts +0 -1
  212. package/dist/types/supervisor-signal-fixture.d.ts +0 -1
  213. package/dist/types/supervisor.d.ts +0 -23
  214. package/dist/types/three-way-merge.d.ts +0 -77
  215. package/dist/types/working-tree-mirror.d.ts +0 -424
  216. package/dist/types/workspace-automatic-sync-policy.d.ts +0 -57
  217. package/dist/types/workspace-branch-incarnation-policy.d.ts +0 -14
  218. package/dist/types/workspace-command-sync-policy.d.ts +0 -57
  219. package/dist/types/workspace-command-targets.d.ts +0 -37
  220. package/dist/types/workspace-filesystem-executor-thread.d.ts +0 -1
  221. package/dist/types/workspace-filesystem-executor.d.ts +0 -123
  222. package/dist/types/workspace-filesystem-job-types.d.ts +0 -288
  223. package/dist/types/workspace-filesystem-jobs.d.ts +0 -7
  224. package/dist/types/workspace-git-sync.d.ts +0 -495
  225. package/dist/types/workspace-hydration-ledger.d.ts +0 -43
  226. package/dist/types/workspace-hydration-merge.d.ts +0 -95
  227. package/dist/types/workspace-hydration-recovery-state.d.ts +0 -10
  228. package/dist/types/workspace-incident-state.d.ts +0 -19
  229. package/dist/types/workspace-merge-projection.d.ts +0 -60
  230. package/dist/types/workspace-mount-boundary.d.ts +0 -10
  231. package/dist/types/workspace-mount-hold-fence.d.ts +0 -42
  232. package/dist/types/workspace-mutation-gate.d.ts +0 -42
  233. package/dist/types/workspace-path-move.d.ts +0 -21
  234. package/dist/types/workspace-preserve-only-policy.d.ts +0 -15
  235. package/dist/types/workspace-project-config-policy.d.ts +0 -48
  236. package/dist/types/workspace-projection-ledger.d.ts +0 -59
  237. package/dist/types/workspace-publication-evidence.d.ts +0 -17
  238. package/dist/types/workspace-sync-coalescer.d.ts +0 -28
  239. /package/dist/types/{credential-authority-lock-fixture.d.ts → runtime/adapter.d.ts} +0 -0
  240. /package/dist/types/{recovery-journal-stall-fixture.d.ts → runtime/releases/main.d.ts} +0 -0
@@ -1,79 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var workspace_automatic_sync_policy_exports = {};
20
- __export(workspace_automatic_sync_policy_exports, {
21
- PENDING_CREATED_BRANCH_AUTOMATIC_SYNC_GRACE_MS: () => PENDING_CREATED_BRANCH_AUTOMATIC_SYNC_GRACE_MS,
22
- hasActiveVisibleProjectsWorkspaceTarget: () => hasActiveVisibleProjectsWorkspaceTarget,
23
- pendingCreatedBranchAutomaticSyncDeferral: () => pendingCreatedBranchAutomaticSyncDeferral,
24
- pendingCreatedBranchKey: () => pendingCreatedBranchKey,
25
- projectBranchHasActiveWorkspaceTarget: () => projectBranchHasActiveWorkspaceTarget,
26
- projectBranchMountBusyDuringExclusiveSync: () => projectBranchMountBusyDuringExclusiveSync,
27
- shouldDeferAutomaticWorkspaceSyncForPendingBranch: () => shouldDeferAutomaticWorkspaceSyncForPendingBranch,
28
- workspacePlansMountBusyDuringExclusiveSync: () => workspacePlansMountBusyDuringExclusiveSync
29
- });
30
- module.exports = __toCommonJS(workspace_automatic_sync_policy_exports);
31
- const PENDING_CREATED_BRANCH_AUTOMATIC_SYNC_GRACE_MS = 12e4;
32
- function pendingCreatedBranchKey(projectId, branchName) {
33
- return `${projectId}\0${branchName}`;
34
- }
35
- function hasActiveVisibleProjectsWorkspaceTarget(activeTargets) {
36
- for (const target of activeTargets) {
37
- if (target.type === "workspace" && target.rootProfile === "visible_projects") return true;
38
- }
39
- return false;
40
- }
41
- function projectBranchHasActiveWorkspaceTarget(projectId, branchName, activeTargets) {
42
- for (const target of activeTargets) {
43
- if (target.type === "project" && target.projectId === projectId && target.branchName === branchName) return true;
44
- if (target.type === "workspace" && target.rootProfile === "visible_projects") return true;
45
- }
46
- return false;
47
- }
48
- function projectBranchMountBusyDuringExclusiveSync(input) {
49
- return input.executionDisabled || input.worktreeOperationInProgress || input.retainedCanonicalProcessGroup || projectBranchHasActiveWorkspaceTarget(input.projectId, input.branchName, input.activeTargets);
50
- }
51
- function workspacePlansMountBusyDuringExclusiveSync(activeTargets, retainedCanonicalProcessGroup = false) {
52
- return retainedCanonicalProcessGroup || hasActiveVisibleProjectsWorkspaceTarget(activeTargets);
53
- }
54
- function shouldDeferAutomaticWorkspaceSyncForPendingBranch(pendingCreatedBranches, activeTargets) {
55
- if (pendingCreatedBranches.length === 0) return false;
56
- const targets = [...activeTargets];
57
- return pendingCreatedBranches.some(({ projectId, branchName }) => projectBranchHasActiveWorkspaceTarget(projectId, branchName, targets));
58
- }
59
- function pendingCreatedBranchAutomaticSyncDeferral(pendingCreatedBranches, activeTargets, publicationNotBeforeByBranch, nowMs = Date.now()) {
60
- if (shouldDeferAutomaticWorkspaceSyncForPendingBranch(pendingCreatedBranches, activeTargets)) {
61
- return { kind: "active_target" };
62
- }
63
- const notBeforeMs = pendingCreatedBranches.reduce(
64
- (latest, { projectId, branchName }) => Math.max(latest, publicationNotBeforeByBranch.get(pendingCreatedBranchKey(projectId, branchName)) ?? 0),
65
- 0
66
- );
67
- return notBeforeMs > nowMs ? { kind: "creation_grace", retryAfterMs: notBeforeMs - nowMs } : null;
68
- }
69
- // Annotate the CommonJS export names for ESM import in node:
70
- 0 && (module.exports = {
71
- PENDING_CREATED_BRANCH_AUTOMATIC_SYNC_GRACE_MS,
72
- hasActiveVisibleProjectsWorkspaceTarget,
73
- pendingCreatedBranchAutomaticSyncDeferral,
74
- pendingCreatedBranchKey,
75
- projectBranchHasActiveWorkspaceTarget,
76
- projectBranchMountBusyDuringExclusiveSync,
77
- shouldDeferAutomaticWorkspaceSyncForPendingBranch,
78
- workspacePlansMountBusyDuringExclusiveSync
79
- });
@@ -1,37 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var workspace_branch_incarnation_policy_exports = {};
20
- __export(workspace_branch_incarnation_policy_exports, {
21
- assertProjectBranchDeletionIncarnation: () => assertProjectBranchDeletionIncarnation
22
- });
23
- module.exports = __toCommonJS(workspace_branch_incarnation_policy_exports);
24
- function assertProjectBranchDeletionIncarnation(input) {
25
- if (!/^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$/.test(input.requiredBranchId)) {
26
- throw new Error("Project branch deletion requires a valid durable branch incarnation");
27
- }
28
- for (const branch of [input.configuredBranch, input.pendingLocalBranch]) {
29
- if (branch && branch.branchId !== input.requiredBranchId) {
30
- throw new Error("Project branch deletion belongs to another durable branch incarnation");
31
- }
32
- }
33
- }
34
- // Annotate the CommonJS export names for ESM import in node:
35
- 0 && (module.exports = {
36
- assertProjectBranchDeletionIncarnation
37
- });
@@ -1,112 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var workspace_command_sync_policy_exports = {};
20
- __export(workspace_command_sync_policy_exports, {
21
- acquireWorkspaceCommandMutation: () => acquireWorkspaceCommandMutation,
22
- reserveWorkspaceCommandAfterCurrentSync: () => reserveWorkspaceCommandAfterCurrentSync,
23
- runReservedWorkspaceCommand: () => runReservedWorkspaceCommand,
24
- runWorkspaceCommand: () => runWorkspaceCommand,
25
- shouldSerializeWorkspaceCommand: () => shouldSerializeWorkspaceCommand
26
- });
27
- module.exports = __toCommonJS(workspace_command_sync_policy_exports);
28
- var import_workspace_mount_hold_fence = require("./workspace-mount-hold-fence.cjs");
29
- function requiresCurrentSyncBarrier(targets) {
30
- return targets.some((target) => target.type === "workspace" && target.rootProfile === "visible_projects");
31
- }
32
- function asTargetList(target) {
33
- return Array.isArray(target) ? target : [target];
34
- }
35
- async function reserveWorkspaceCommandAfterCurrentSync(target, coordinator, reserve, options = {}) {
36
- const targets = asTargetList(target);
37
- while (true) {
38
- if (requiresCurrentSyncBarrier(targets)) {
39
- const currentSync = coordinator.afterCurrent();
40
- await raceWithAbort(currentSync, options.signal);
41
- if (currentSync !== coordinator.afterCurrent()) continue;
42
- }
43
- if (options.signal?.aborted) throw new import_workspace_mount_hold_fence.WorkspaceMountHoldAbortedError(abortReason(options.signal));
44
- const hold = coordinator.mountHold(targets, options.signal);
45
- if (hold) {
46
- await hold;
47
- continue;
48
- }
49
- reserve();
50
- return;
51
- }
52
- }
53
- function raceWithAbort(waited, signal) {
54
- if (!signal) return waited;
55
- if (signal.aborted) return Promise.reject(new import_workspace_mount_hold_fence.WorkspaceMountHoldAbortedError(abortReason(signal)));
56
- return new Promise((resolve, reject) => {
57
- const onAbort = () => reject(new import_workspace_mount_hold_fence.WorkspaceMountHoldAbortedError(abortReason(signal)));
58
- signal.addEventListener("abort", onAbort, { once: true });
59
- waited.then(
60
- () => {
61
- signal.removeEventListener("abort", onAbort);
62
- resolve();
63
- },
64
- (error) => {
65
- signal.removeEventListener("abort", onAbort);
66
- reject(error instanceof Error ? error : new Error(String(error)));
67
- }
68
- );
69
- });
70
- }
71
- function abortReason(signal) {
72
- const reason = signal.reason;
73
- if (reason instanceof Error) return reason.message;
74
- if (typeof reason === "string" && reason) return reason;
75
- return "Workspace command reservation was aborted";
76
- }
77
- function shouldSerializeWorkspaceCommand(target) {
78
- return target.type === "workspace" && target.rootProfile === "canonical_sync";
79
- }
80
- function runWorkspaceCommand(target, coordinator, operation) {
81
- return shouldSerializeWorkspaceCommand(target) ? coordinator.runMutation(operation) : Promise.resolve().then(operation);
82
- }
83
- async function runReservedWorkspaceCommand(target, coordinator, operation, releaseReservation) {
84
- let released = false;
85
- const releaseOnce = () => {
86
- if (released) return;
87
- released = true;
88
- releaseReservation();
89
- };
90
- try {
91
- return await runWorkspaceCommand(target, coordinator, async () => {
92
- try {
93
- return await operation();
94
- } finally {
95
- releaseOnce();
96
- }
97
- });
98
- } finally {
99
- releaseOnce();
100
- }
101
- }
102
- function acquireWorkspaceCommandMutation(target, coordinator) {
103
- return shouldSerializeWorkspaceCommand(target) ? coordinator.acquireMutation() : Promise.resolve(void 0);
104
- }
105
- // Annotate the CommonJS export names for ESM import in node:
106
- 0 && (module.exports = {
107
- acquireWorkspaceCommandMutation,
108
- reserveWorkspaceCommandAfterCurrentSync,
109
- runReservedWorkspaceCommand,
110
- runWorkspaceCommand,
111
- shouldSerializeWorkspaceCommand
112
- });
@@ -1,63 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var workspace_command_targets_exports = {};
20
- __export(workspace_command_targets_exports, {
21
- commandTargets: () => commandTargets,
22
- describeCommandAdditionalTargets: () => describeCommandAdditionalTargets,
23
- normalizeCommandAdditionalTargets: () => normalizeCommandAdditionalTargets
24
- });
25
- module.exports = __toCommonJS(workspace_command_targets_exports);
26
- function targetKey(target) {
27
- return `${target.projectId}\0${target.branchName}`;
28
- }
29
- function normalizeCommandAdditionalTargets(primary, additional, validators) {
30
- if (additional === void 0 || additional === null) return [];
31
- if (!Array.isArray(additional)) throw new Error("Command additional targets must be a list of project branches");
32
- const seen = new Set(primary.type === "project" ? [targetKey(primary)] : []);
33
- const normalized = [];
34
- for (const entry of additional) {
35
- if (!entry || typeof entry !== "object" || entry.type !== "project") {
36
- throw new Error("Command additional targets must be project branches");
37
- }
38
- const { projectId, branchName } = entry;
39
- if (typeof projectId !== "string" || typeof branchName !== "string")
40
- throw new Error("Command additional target is missing its project or branch");
41
- validators.validateProjectId(projectId);
42
- validators.validateBranchName(branchName);
43
- const target = { type: "project", projectId, branchName };
44
- const key = targetKey(target);
45
- if (seen.has(key)) continue;
46
- seen.add(key);
47
- normalized.push(target);
48
- }
49
- return normalized;
50
- }
51
- function commandTargets(primary, additional) {
52
- return [primary, ...additional];
53
- }
54
- function describeCommandAdditionalTargets(additional) {
55
- if (additional.length === 0) return "";
56
- return ` (also fencing ${additional.map((target) => `${target.projectId}/${target.branchName}`).join(", ")})`;
57
- }
58
- // Annotate the CommonJS export names for ESM import in node:
59
- 0 && (module.exports = {
60
- commandTargets,
61
- describeCommandAdditionalTargets,
62
- normalizeCommandAdditionalTargets
63
- });
@@ -1,36 +0,0 @@
1
- "use strict";
2
- var import_node_worker_threads = require("node:worker_threads");
3
- var import_workspace_filesystem_job_types = require("./workspace-filesystem-job-types.cjs");
4
- var import_workspace_filesystem_jobs = require("./workspace-filesystem-jobs.cjs");
5
- if (import_node_worker_threads.isMainThread || !import_node_worker_threads.parentPort) {
6
- throw new Error("The workspace filesystem executor thread must be started by the worker runtime");
7
- }
8
- const port = import_node_worker_threads.parentPort;
9
- function runRequest(request) {
10
- if (!(0, import_workspace_filesystem_job_types.isWorkspaceFilesystemJobKind)(request.kind)) {
11
- return {
12
- type: "failure",
13
- id: request.id,
14
- error: (0, import_workspace_filesystem_job_types.serializeWorkspaceFilesystemError)(new Error(`Unknown workspace filesystem job kind: ${String(request.kind)}`))
15
- };
16
- }
17
- const operation = import_workspace_filesystem_jobs.workspaceFilesystemJobOperations[request.kind];
18
- const previousEnvironment = process.env;
19
- process.env = { ...request.environment };
20
- try {
21
- const result = operation(request.input, {
22
- progress: (progress) => port.postMessage({ type: "progress", id: request.id, progress })
23
- });
24
- return { type: "result", id: request.id, result };
25
- } catch (error) {
26
- return { type: "failure", id: request.id, error: (0, import_workspace_filesystem_job_types.serializeWorkspaceFilesystemError)(error) };
27
- } finally {
28
- process.env = previousEnvironment;
29
- }
30
- }
31
- port.on("message", (message) => {
32
- if (!message || typeof message !== "object") return;
33
- const request = message;
34
- if (request.type !== "run" || typeof request.id !== "number") return;
35
- port.postMessage(runRequest(request));
36
- });
@@ -1,327 +0,0 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var workspace_filesystem_executor_exports = {};
30
- __export(workspace_filesystem_executor_exports, {
31
- WORKSPACE_FILESYSTEM_EXECUTOR_MAX_QUEUED: () => WORKSPACE_FILESYSTEM_EXECUTOR_MAX_QUEUED,
32
- WORKSPACE_FILESYSTEM_EXECUTOR_QUEUE_TIMEOUT_MS: () => WORKSPACE_FILESYSTEM_EXECUTOR_QUEUE_TIMEOUT_MS,
33
- WORKSPACE_FILESYSTEM_EXECUTOR_STALL_LOG_INTERVAL_MS: () => WORKSPACE_FILESYSTEM_EXECUTOR_STALL_LOG_INTERVAL_MS,
34
- WorkspaceFilesystemExecutor: () => WorkspaceFilesystemExecutor,
35
- WorkspaceFilesystemExecutorError: () => WorkspaceFilesystemExecutorError,
36
- WorkspaceFilesystemExecutorThreadExitedError: () => WorkspaceFilesystemExecutorThreadExitedError,
37
- installWorkspaceFilesystemExecutorFailureHandler: () => installWorkspaceFilesystemExecutorFailureHandler,
38
- workspaceFilesystemExecutor: () => workspaceFilesystemExecutor,
39
- workspaceFilesystemExecutorTestHarness: () => workspaceFilesystemExecutorTestHarness,
40
- workspaceFilesystemExecutorThreadModulePath: () => workspaceFilesystemExecutorThreadModulePath
41
- });
42
- module.exports = __toCommonJS(workspace_filesystem_executor_exports);
43
- var import_node_path = __toESM(require("node:path"), 1);
44
- var import_node_worker_threads = require("node:worker_threads");
45
- var import_git_process_environment = require("./git-process-environment.cjs");
46
- var import_workspace_filesystem_job_types = require("./workspace-filesystem-job-types.cjs");
47
- const WORKSPACE_FILESYSTEM_EXECUTOR_MAX_QUEUED = 32;
48
- const WORKSPACE_FILESYSTEM_EXECUTOR_QUEUE_TIMEOUT_MS = 5 * 6e4;
49
- const WORKSPACE_FILESYSTEM_EXECUTOR_STALL_LOG_INTERVAL_MS = 3e4;
50
- class WorkspaceFilesystemExecutorError extends Error {
51
- name = "WorkspaceFilesystemExecutorError";
52
- }
53
- class WorkspaceFilesystemExecutorThreadExitedError extends WorkspaceFilesystemExecutorError {
54
- constructor(exitCode, description, cause) {
55
- super(
56
- `Workspace filesystem executor thread exited${exitCode === null ? "" : ` with code ${exitCode}`} while running ${description}; the filesystem state is whatever a process crash would have left`,
57
- cause === void 0 ? void 0 : { cause }
58
- );
59
- this.exitCode = exitCode;
60
- this.description = description;
61
- }
62
- exitCode;
63
- description;
64
- }
65
- class WorkspaceFilesystemExecutor {
66
- threadModulePath;
67
- log;
68
- now;
69
- maxQueued;
70
- queueTimeoutMs;
71
- stallLogIntervalMs;
72
- worker = null;
73
- queue = [];
74
- running = null;
75
- nextJobId = 1;
76
- failed = null;
77
- closed = false;
78
- /** Invoked once when the executor fails closed (thread exit under a running job). */
79
- onFailure;
80
- constructor(options) {
81
- this.threadModulePath = options.threadModulePath;
82
- this.log = options.log ?? ((line) => process.stderr.write(`${line}
83
- `));
84
- this.now = options.now ?? (() => Date.now());
85
- this.maxQueued = options.maxQueued ?? WORKSPACE_FILESYSTEM_EXECUTOR_MAX_QUEUED;
86
- this.queueTimeoutMs = options.queueTimeoutMs ?? WORKSPACE_FILESYSTEM_EXECUTOR_QUEUE_TIMEOUT_MS;
87
- this.stallLogIntervalMs = options.stallLogIntervalMs ?? WORKSPACE_FILESYSTEM_EXECUTOR_STALL_LOG_INTERVAL_MS;
88
- }
89
- /**
90
- * Run one job to completion on the executor thread. Resolves with the
91
- * job's result; rejects with the job's own error (properties preserved),
92
- * with a queue-wait or capacity error when the job never started, or with
93
- * WorkspaceFilesystemExecutorThreadExitedError when the thread died under it.
94
- */
95
- run(kind, input, options = {}) {
96
- const description = (0, import_workspace_filesystem_job_types.describeWorkspaceFilesystemJob)(kind, input);
97
- if (this.closed)
98
- return Promise.reject(new WorkspaceFilesystemExecutorError(`Workspace filesystem executor is closed; refusing ${description}`));
99
- if (this.failed) return Promise.reject(new WorkspaceFilesystemExecutorError(`${this.failed}; refusing ${description}`));
100
- if (this.queue.length >= this.maxQueued) {
101
- return Promise.reject(
102
- new WorkspaceFilesystemExecutorError(
103
- `Workspace filesystem executor queue is full (${this.queue.length} waiting behind ${this.describeRunning()}); refusing ${description}`
104
- )
105
- );
106
- }
107
- return new Promise((resolve, reject) => {
108
- const job = {
109
- id: this.nextJobId++,
110
- kind,
111
- input,
112
- description,
113
- onProgress: options.onProgress,
114
- resolve: (result) => resolve(result),
115
- reject,
116
- queuedAtMs: this.now(),
117
- queueTimer: void 0
118
- };
119
- this.queue.push(job);
120
- if (this.running) {
121
- job.queueTimer = setTimeout(() => this.expireQueued(job), this.queueTimeoutMs);
122
- }
123
- this.dispatch();
124
- });
125
- }
126
- status() {
127
- const running = this.running;
128
- return {
129
- running: running ? {
130
- kind: running.kind,
131
- description: running.description,
132
- startedAtMs: running.startedAtMs,
133
- ageMs: this.now() - running.startedAtMs
134
- } : null,
135
- queued: this.queue.length,
136
- failed: this.failed
137
- };
138
- }
139
- /**
140
- * Stop accepting jobs, fail everything still queued and ask the thread to
141
- * stop. A running job settles when the thread actually exits; a thread
142
- * blocked in the kernel only exits with the process, which is the point.
143
- */
144
- close() {
145
- if (this.closed) return;
146
- this.closed = true;
147
- for (const job of this.queue.splice(0)) {
148
- if (job.queueTimer) clearTimeout(job.queueTimer);
149
- job.reject(new WorkspaceFilesystemExecutorError(`Workspace filesystem executor is closed; ${job.description} did not start`));
150
- }
151
- const worker = this.worker;
152
- if (worker && !this.running) {
153
- this.worker = null;
154
- void worker.terminate();
155
- } else if (worker) {
156
- void worker.terminate();
157
- }
158
- }
159
- describeRunning() {
160
- const running = this.running;
161
- if (!running) return "an idle executor";
162
- return `${running.description} (running for ${Math.round((this.now() - running.startedAtMs) / 1e3)}s)`;
163
- }
164
- expireQueued(job) {
165
- const index = this.queue.indexOf(job);
166
- if (index < 0) return;
167
- this.queue.splice(index, 1);
168
- job.queueTimer = void 0;
169
- job.reject(
170
- new WorkspaceFilesystemExecutorError(
171
- `Workspace filesystem executor is blocked: ${this.describeRunning()} while ${job.description} waited ${Math.round((this.now() - job.queuedAtMs) / 1e3)}s for its turn; filesystem I/O may be stalled`
172
- )
173
- );
174
- }
175
- dispatch() {
176
- if (this.running || this.closed || this.failed) return;
177
- const job = this.queue.shift();
178
- if (!job) {
179
- this.worker?.unref();
180
- return;
181
- }
182
- if (job.queueTimer) {
183
- clearTimeout(job.queueTimer);
184
- job.queueTimer = void 0;
185
- }
186
- let worker;
187
- try {
188
- worker = this.ensureWorker();
189
- } catch (error) {
190
- job.reject(error instanceof Error ? error : new Error(String(error)));
191
- this.dispatch();
192
- return;
193
- }
194
- const environment = {};
195
- for (const [key, value] of Object.entries((0, import_git_process_environment.workerGitProcessEnvironment)(process.env))) if (value !== void 0) environment[key] = value;
196
- const request = { type: "run", id: job.id, kind: job.kind, input: job.input, environment };
197
- const startedAtMs = this.now();
198
- const running = {
199
- ...job,
200
- startedAtMs,
201
- stallTimer: setInterval(() => {
202
- this.log(
203
- `[r5d-worker] workspace filesystem job ${running.kind} (${running.description}) has run for ${Math.round((this.now() - startedAtMs) / 1e3)}s; filesystem I/O may be stalled (${this.queue.length} job(s) queued behind it)`
204
- );
205
- }, this.stallLogIntervalMs)
206
- };
207
- running.stallTimer.unref();
208
- this.running = running;
209
- worker.ref();
210
- try {
211
- worker.postMessage(request);
212
- } catch (error) {
213
- this.settleRunning(running, () => running.reject(error instanceof Error ? error : new Error(String(error))));
214
- }
215
- }
216
- settleRunning(job, settle) {
217
- if (this.running !== job) return;
218
- clearInterval(job.stallTimer);
219
- this.running = null;
220
- settle();
221
- this.dispatch();
222
- }
223
- ensureWorker() {
224
- if (this.worker) return this.worker;
225
- const worker = new import_node_worker_threads.Worker(this.threadModulePath);
226
- this.worker = worker;
227
- worker.on("message", (message) => this.onReply(worker, message));
228
- worker.on("error", (error) => {
229
- this.log(`[r5d-worker] workspace filesystem executor thread error: ${error.stack ?? error.message}`);
230
- this.lastThreadError = error;
231
- });
232
- worker.on("exit", (code) => this.onExit(worker, code));
233
- worker.unref();
234
- return worker;
235
- }
236
- lastThreadError;
237
- onReply(worker, message) {
238
- if (this.worker !== worker) return;
239
- const running = this.running;
240
- if (!running || !message || typeof message !== "object" || message.id !== running.id) return;
241
- if (message.type === "progress") {
242
- running.onProgress?.(message.progress);
243
- return;
244
- }
245
- if (message.type === "result") {
246
- this.settleRunning(running, () => running.resolve(message.result));
247
- return;
248
- }
249
- if (message.type === "failure") {
250
- this.settleRunning(running, () => running.reject((0, import_workspace_filesystem_job_types.restoreWorkspaceFilesystemError)(message.error)));
251
- }
252
- }
253
- onExit(worker, code) {
254
- if (this.worker !== worker) return;
255
- this.worker = null;
256
- const cause = this.lastThreadError;
257
- this.lastThreadError = void 0;
258
- const running = this.running;
259
- if (!running) {
260
- if (!this.closed) this.dispatch();
261
- return;
262
- }
263
- const failure = new WorkspaceFilesystemExecutorThreadExitedError(code, running.description, cause);
264
- if (!this.closed) {
265
- this.failed = `Workspace filesystem executor thread exited with code ${code} while running ${running.description}; the worker must restart and recover before it mutates the workspace again`;
266
- this.log(`[r5d-worker] ${this.failed}`);
267
- }
268
- this.settleRunning(running, () => running.reject(failure));
269
- for (const job of this.queue.splice(0)) {
270
- if (job.queueTimer) clearTimeout(job.queueTimer);
271
- job.reject(
272
- new WorkspaceFilesystemExecutorError(
273
- `${this.failed ?? "Workspace filesystem executor is closed"}; ${job.description} did not start`
274
- )
275
- );
276
- }
277
- if (!this.closed) this.onFailure?.(failure);
278
- }
279
- }
280
- function workspaceFilesystemExecutorThreadModulePath() {
281
- return import_node_path.default.join(import_node_path.default.dirname(__filename), `workspace-filesystem-executor-thread${import_node_path.default.extname(__filename)}`);
282
- }
283
- let processExecutor = null;
284
- let inlineRunner = null;
285
- function workspaceFilesystemExecutor() {
286
- if (inlineRunner) return inlineRunner;
287
- processExecutor ??= new WorkspaceFilesystemExecutor({ threadModulePath: workspaceFilesystemExecutorThreadModulePath() });
288
- return processExecutor;
289
- }
290
- function installWorkspaceFilesystemExecutorFailureHandler(handler) {
291
- processExecutor ??= new WorkspaceFilesystemExecutor({ threadModulePath: workspaceFilesystemExecutorThreadModulePath() });
292
- processExecutor.onFailure = handler;
293
- }
294
- const workspaceFilesystemExecutorTestHarness = {
295
- async runJobsInline(body) {
296
- const { workspaceFilesystemJobOperations } = await import("./workspace-filesystem-jobs.cjs");
297
- const previous = inlineRunner;
298
- inlineRunner = {
299
- async run(kind, input, options = {}) {
300
- await Promise.resolve();
301
- const operation = workspaceFilesystemJobOperations[kind];
302
- return operation(input, { progress: (progress) => options.onProgress?.(progress) });
303
- }
304
- };
305
- try {
306
- return await body();
307
- } finally {
308
- inlineRunner = previous;
309
- }
310
- },
311
- processExecutor() {
312
- return processExecutor;
313
- }
314
- };
315
- // Annotate the CommonJS export names for ESM import in node:
316
- 0 && (module.exports = {
317
- WORKSPACE_FILESYSTEM_EXECUTOR_MAX_QUEUED,
318
- WORKSPACE_FILESYSTEM_EXECUTOR_QUEUE_TIMEOUT_MS,
319
- WORKSPACE_FILESYSTEM_EXECUTOR_STALL_LOG_INTERVAL_MS,
320
- WorkspaceFilesystemExecutor,
321
- WorkspaceFilesystemExecutorError,
322
- WorkspaceFilesystemExecutorThreadExitedError,
323
- installWorkspaceFilesystemExecutorFailureHandler,
324
- workspaceFilesystemExecutor,
325
- workspaceFilesystemExecutorTestHarness,
326
- workspaceFilesystemExecutorThreadModulePath
327
- });