looply-cli 0.0.0-stage → 0.3.0

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 (793) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +137 -3
  3. package/dist/.src-hash +1 -0
  4. package/dist/acceptance-observe.d.ts +108 -0
  5. package/dist/acceptance-observe.d.ts.map +1 -0
  6. package/dist/acceptance-observe.js +152 -0
  7. package/dist/acceptance-observe.js.map +1 -0
  8. package/dist/agent-cmd.d.ts +131 -0
  9. package/dist/agent-cmd.d.ts.map +1 -0
  10. package/dist/agent-cmd.js +154 -0
  11. package/dist/agent-cmd.js.map +1 -0
  12. package/dist/agent-contained.d.ts +114 -0
  13. package/dist/agent-contained.d.ts.map +1 -0
  14. package/dist/agent-contained.js +292 -0
  15. package/dist/agent-contained.js.map +1 -0
  16. package/dist/agent-driver.d.ts +130 -0
  17. package/dist/agent-driver.d.ts.map +1 -0
  18. package/dist/agent-driver.js +170 -0
  19. package/dist/agent-driver.js.map +1 -0
  20. package/dist/agent-envelope.d.ts +94 -0
  21. package/dist/agent-envelope.d.ts.map +1 -0
  22. package/dist/agent-envelope.js +214 -0
  23. package/dist/agent-envelope.js.map +1 -0
  24. package/dist/agent-exec.d.ts +182 -0
  25. package/dist/agent-exec.d.ts.map +1 -0
  26. package/dist/agent-exec.js +125 -0
  27. package/dist/agent-exec.js.map +1 -0
  28. package/dist/agent-runtime.d.ts +23 -0
  29. package/dist/agent-runtime.d.ts.map +1 -0
  30. package/dist/agent-runtime.js +143 -0
  31. package/dist/agent-runtime.js.map +1 -0
  32. package/dist/approval-gate-read.d.ts +66 -0
  33. package/dist/approval-gate-read.d.ts.map +1 -0
  34. package/dist/approval-gate-read.js +138 -0
  35. package/dist/approval-gate-read.js.map +1 -0
  36. package/dist/approval-resolution.d.ts +87 -0
  37. package/dist/approval-resolution.d.ts.map +1 -0
  38. package/dist/approval-resolution.js +100 -0
  39. package/dist/approval-resolution.js.map +1 -0
  40. package/dist/approval-resumes.d.ts +102 -0
  41. package/dist/approval-resumes.d.ts.map +1 -0
  42. package/dist/approval-resumes.js +167 -0
  43. package/dist/approval-resumes.js.map +1 -0
  44. package/dist/ask-brain.d.ts +167 -0
  45. package/dist/ask-brain.d.ts.map +1 -0
  46. package/dist/ask-brain.js +355 -0
  47. package/dist/ask-brain.js.map +1 -0
  48. package/dist/autonomy-authority.d.ts +80 -0
  49. package/dist/autonomy-authority.d.ts.map +1 -0
  50. package/dist/autonomy-authority.js +82 -0
  51. package/dist/autonomy-authority.js.map +1 -0
  52. package/dist/autonomy-controller.d.ts +321 -0
  53. package/dist/autonomy-controller.d.ts.map +1 -0
  54. package/dist/autonomy-controller.js +517 -0
  55. package/dist/autonomy-controller.js.map +1 -0
  56. package/dist/autonomy-store.d.ts +327 -0
  57. package/dist/autonomy-store.d.ts.map +1 -0
  58. package/dist/autonomy-store.js +581 -0
  59. package/dist/autonomy-store.js.map +1 -0
  60. package/dist/autonomy-tick.d.ts +257 -0
  61. package/dist/autonomy-tick.d.ts.map +1 -0
  62. package/dist/autonomy-tick.js +616 -0
  63. package/dist/autonomy-tick.js.map +1 -0
  64. package/dist/bin.d.ts +3 -0
  65. package/dist/bin.d.ts.map +1 -0
  66. package/dist/bin.js +2727 -0
  67. package/dist/bin.js.map +1 -0
  68. package/dist/brain-advice.d.ts +21 -0
  69. package/dist/brain-advice.d.ts.map +1 -0
  70. package/dist/brain-advice.js +51 -0
  71. package/dist/brain-advice.js.map +1 -0
  72. package/dist/candidate-replay-runtime.d.ts +125 -0
  73. package/dist/candidate-replay-runtime.d.ts.map +1 -0
  74. package/dist/candidate-replay-runtime.js +188 -0
  75. package/dist/candidate-replay-runtime.js.map +1 -0
  76. package/dist/checkout-carry.d.ts +76 -0
  77. package/dist/checkout-carry.d.ts.map +1 -0
  78. package/dist/checkout-carry.js +125 -0
  79. package/dist/checkout-carry.js.map +1 -0
  80. package/dist/citation-readers.d.ts +26 -0
  81. package/dist/citation-readers.d.ts.map +1 -0
  82. package/dist/citation-readers.js +102 -0
  83. package/dist/citation-readers.js.map +1 -0
  84. package/dist/command-receipts.d.ts +79 -0
  85. package/dist/command-receipts.d.ts.map +1 -0
  86. package/dist/command-receipts.js +143 -0
  87. package/dist/command-receipts.js.map +1 -0
  88. package/dist/command-runner.d.ts +32 -0
  89. package/dist/command-runner.d.ts.map +1 -0
  90. package/dist/command-runner.js +108 -0
  91. package/dist/command-runner.js.map +1 -0
  92. package/dist/compatible-sets.d.ts +67 -0
  93. package/dist/compatible-sets.d.ts.map +1 -0
  94. package/dist/compatible-sets.js +81 -0
  95. package/dist/compatible-sets.js.map +1 -0
  96. package/dist/compile-check.d.ts +31 -0
  97. package/dist/compile-check.d.ts.map +1 -0
  98. package/dist/compile-check.js +34 -0
  99. package/dist/compile-check.js.map +1 -0
  100. package/dist/compile-store.d.ts +16 -0
  101. package/dist/compile-store.d.ts.map +1 -0
  102. package/dist/compile-store.js +21 -0
  103. package/dist/compile-store.js.map +1 -0
  104. package/dist/completion.d.ts +106 -0
  105. package/dist/completion.d.ts.map +1 -0
  106. package/dist/completion.js +131 -0
  107. package/dist/completion.js.map +1 -0
  108. package/dist/config.d.ts +549 -0
  109. package/dist/config.d.ts.map +1 -0
  110. package/dist/config.js +763 -0
  111. package/dist/config.js.map +1 -0
  112. package/dist/control-file.d.ts +142 -0
  113. package/dist/control-file.d.ts.map +1 -0
  114. package/dist/control-file.js +144 -0
  115. package/dist/control-file.js.map +1 -0
  116. package/dist/coordinator-state.d.ts +131 -0
  117. package/dist/coordinator-state.d.ts.map +1 -0
  118. package/dist/coordinator-state.js +380 -0
  119. package/dist/coordinator-state.js.map +1 -0
  120. package/dist/coordinator.d.ts +95 -0
  121. package/dist/coordinator.d.ts.map +1 -0
  122. package/dist/coordinator.js +97 -0
  123. package/dist/coordinator.js.map +1 -0
  124. package/dist/cursor-store.d.ts +53 -0
  125. package/dist/cursor-store.d.ts.map +1 -0
  126. package/dist/cursor-store.js +98 -0
  127. package/dist/cursor-store.js.map +1 -0
  128. package/dist/daemon-cmd.d.ts +239 -0
  129. package/dist/daemon-cmd.d.ts.map +1 -0
  130. package/dist/daemon-cmd.js +1751 -0
  131. package/dist/daemon-cmd.js.map +1 -0
  132. package/dist/daemon-lock.d.ts +140 -0
  133. package/dist/daemon-lock.d.ts.map +1 -0
  134. package/dist/daemon-lock.js +352 -0
  135. package/dist/daemon-lock.js.map +1 -0
  136. package/dist/daemon-recovery.d.ts +78 -0
  137. package/dist/daemon-recovery.d.ts.map +1 -0
  138. package/dist/daemon-recovery.js +161 -0
  139. package/dist/daemon-recovery.js.map +1 -0
  140. package/dist/daemon.d.ts +368 -0
  141. package/dist/daemon.d.ts.map +1 -0
  142. package/dist/daemon.js +601 -0
  143. package/dist/daemon.js.map +1 -0
  144. package/dist/declared-response-shape.d.ts +93 -0
  145. package/dist/declared-response-shape.d.ts.map +1 -0
  146. package/dist/declared-response-shape.js +200 -0
  147. package/dist/declared-response-shape.js.map +1 -0
  148. package/dist/declared-surfaces.d.ts +16 -0
  149. package/dist/declared-surfaces.d.ts.map +1 -0
  150. package/dist/declared-surfaces.js +19 -0
  151. package/dist/declared-surfaces.js.map +1 -0
  152. package/dist/depends-review.d.ts +113 -0
  153. package/dist/depends-review.d.ts.map +1 -0
  154. package/dist/depends-review.js +110 -0
  155. package/dist/depends-review.js.map +1 -0
  156. package/dist/doctor.d.ts +91 -0
  157. package/dist/doctor.d.ts.map +1 -0
  158. package/dist/doctor.js +71 -0
  159. package/dist/doctor.js.map +1 -0
  160. package/dist/edge-approval.d.ts +105 -0
  161. package/dist/edge-approval.d.ts.map +1 -0
  162. package/dist/edge-approval.js +100 -0
  163. package/dist/edge-approval.js.map +1 -0
  164. package/dist/evidence-cache.d.ts +45 -0
  165. package/dist/evidence-cache.d.ts.map +1 -0
  166. package/dist/evidence-cache.js +90 -0
  167. package/dist/evidence-cache.js.map +1 -0
  168. package/dist/evidence-cmd.d.ts +133 -0
  169. package/dist/evidence-cmd.d.ts.map +1 -0
  170. package/dist/evidence-cmd.js +347 -0
  171. package/dist/evidence-cmd.js.map +1 -0
  172. package/dist/evidence-facts.d.ts +40 -0
  173. package/dist/evidence-facts.d.ts.map +1 -0
  174. package/dist/evidence-facts.js +114 -0
  175. package/dist/evidence-facts.js.map +1 -0
  176. package/dist/exclusive-lock.d.ts +52 -0
  177. package/dist/exclusive-lock.d.ts.map +1 -0
  178. package/dist/exclusive-lock.js +150 -0
  179. package/dist/exclusive-lock.js.map +1 -0
  180. package/dist/exec-domains.d.ts +140 -0
  181. package/dist/exec-domains.d.ts.map +1 -0
  182. package/dist/exec-domains.js +287 -0
  183. package/dist/exec-domains.js.map +1 -0
  184. package/dist/exemption-store.d.ts +197 -0
  185. package/dist/exemption-store.d.ts.map +1 -0
  186. package/dist/exemption-store.js +266 -0
  187. package/dist/exemption-store.js.map +1 -0
  188. package/dist/explicit-start-gate.d.ts +96 -0
  189. package/dist/explicit-start-gate.d.ts.map +1 -0
  190. package/dist/explicit-start-gate.js +103 -0
  191. package/dist/explicit-start-gate.js.map +1 -0
  192. package/dist/fs-trouble.d.ts +70 -0
  193. package/dist/fs-trouble.d.ts.map +1 -0
  194. package/dist/fs-trouble.js +98 -0
  195. package/dist/fs-trouble.js.map +1 -0
  196. package/dist/gate.d.ts +278 -0
  197. package/dist/gate.d.ts.map +1 -0
  198. package/dist/gate.js +278 -0
  199. package/dist/gate.js.map +1 -0
  200. package/dist/git-driver.d.ts +519 -0
  201. package/dist/git-driver.d.ts.map +1 -0
  202. package/dist/git-driver.js +900 -0
  203. package/dist/git-driver.js.map +1 -0
  204. package/dist/git-push-executor.d.ts +41 -0
  205. package/dist/git-push-executor.d.ts.map +1 -0
  206. package/dist/git-push-executor.js +142 -0
  207. package/dist/git-push-executor.js.map +1 -0
  208. package/dist/glob.d.ts +26 -0
  209. package/dist/glob.d.ts.map +1 -0
  210. package/dist/glob.js +93 -0
  211. package/dist/glob.js.map +1 -0
  212. package/dist/goal-adaptive.d.ts +295 -0
  213. package/dist/goal-adaptive.d.ts.map +1 -0
  214. package/dist/goal-adaptive.js +393 -0
  215. package/dist/goal-adaptive.js.map +1 -0
  216. package/dist/goal-compile.d.ts +342 -0
  217. package/dist/goal-compile.d.ts.map +1 -0
  218. package/dist/goal-compile.js +444 -0
  219. package/dist/goal-compile.js.map +1 -0
  220. package/dist/goal-depends-executor.d.ts +55 -0
  221. package/dist/goal-depends-executor.d.ts.map +1 -0
  222. package/dist/goal-depends-executor.js +202 -0
  223. package/dist/goal-depends-executor.js.map +1 -0
  224. package/dist/goal-execution-evidence.d.ts +135 -0
  225. package/dist/goal-execution-evidence.d.ts.map +1 -0
  226. package/dist/goal-execution-evidence.js +159 -0
  227. package/dist/goal-execution-evidence.js.map +1 -0
  228. package/dist/goal-gap.d.ts +140 -0
  229. package/dist/goal-gap.d.ts.map +1 -0
  230. package/dist/goal-gap.js +197 -0
  231. package/dist/goal-gap.js.map +1 -0
  232. package/dist/goal-met-target.d.ts +98 -0
  233. package/dist/goal-met-target.d.ts.map +1 -0
  234. package/dist/goal-met-target.js +92 -0
  235. package/dist/goal-met-target.js.map +1 -0
  236. package/dist/goal-ownership.d.ts +416 -0
  237. package/dist/goal-ownership.d.ts.map +1 -0
  238. package/dist/goal-ownership.js +576 -0
  239. package/dist/goal-ownership.js.map +1 -0
  240. package/dist/goal-runs.d.ts +82 -0
  241. package/dist/goal-runs.d.ts.map +1 -0
  242. package/dist/goal-runs.js +120 -0
  243. package/dist/goal-runs.js.map +1 -0
  244. package/dist/goal-store.d.ts +146 -0
  245. package/dist/goal-store.d.ts.map +1 -0
  246. package/dist/goal-store.js +294 -0
  247. package/dist/goal-store.js.map +1 -0
  248. package/dist/goal-view.d.ts +156 -0
  249. package/dist/goal-view.d.ts.map +1 -0
  250. package/dist/goal-view.js +499 -0
  251. package/dist/goal-view.js.map +1 -0
  252. package/dist/governed-approvals.d.ts +152 -0
  253. package/dist/governed-approvals.d.ts.map +1 -0
  254. package/dist/governed-approvals.js +246 -0
  255. package/dist/governed-approvals.js.map +1 -0
  256. package/dist/governed-broker.d.ts +169 -0
  257. package/dist/governed-broker.d.ts.map +1 -0
  258. package/dist/governed-broker.js +196 -0
  259. package/dist/governed-broker.js.map +1 -0
  260. package/dist/governed-run.d.ts +220 -0
  261. package/dist/governed-run.d.ts.map +1 -0
  262. package/dist/governed-run.js +406 -0
  263. package/dist/governed-run.js.map +1 -0
  264. package/dist/grant-reconcile.d.ts +63 -0
  265. package/dist/grant-reconcile.d.ts.map +1 -0
  266. package/dist/grant-reconcile.js +121 -0
  267. package/dist/grant-reconcile.js.map +1 -0
  268. package/dist/index-for-head.d.ts +56 -0
  269. package/dist/index-for-head.d.ts.map +1 -0
  270. package/dist/index-for-head.js +103 -0
  271. package/dist/index-for-head.js.map +1 -0
  272. package/dist/index.d.ts +39 -0
  273. package/dist/index.d.ts.map +1 -0
  274. package/dist/index.js +55 -0
  275. package/dist/index.js.map +1 -0
  276. package/dist/init-detect.d.ts +39 -0
  277. package/dist/init-detect.d.ts.map +1 -0
  278. package/dist/init-detect.js +188 -0
  279. package/dist/init-detect.js.map +1 -0
  280. package/dist/integration-deps.d.ts +62 -0
  281. package/dist/integration-deps.d.ts.map +1 -0
  282. package/dist/integration-deps.js +251 -0
  283. package/dist/integration-deps.js.map +1 -0
  284. package/dist/integration-runtime.d.ts +458 -0
  285. package/dist/integration-runtime.d.ts.map +1 -0
  286. package/dist/integration-runtime.js +681 -0
  287. package/dist/integration-runtime.js.map +1 -0
  288. package/dist/integration.d.ts +45 -0
  289. package/dist/integration.d.ts.map +1 -0
  290. package/dist/integration.js +87 -0
  291. package/dist/integration.js.map +1 -0
  292. package/dist/integrator.d.ts +84 -0
  293. package/dist/integrator.d.ts.map +1 -0
  294. package/dist/integrator.js +193 -0
  295. package/dist/integrator.js.map +1 -0
  296. package/dist/lane-claims.d.ts +174 -0
  297. package/dist/lane-claims.d.ts.map +1 -0
  298. package/dist/lane-claims.js +218 -0
  299. package/dist/lane-claims.js.map +1 -0
  300. package/dist/lane-coverage.d.ts +87 -0
  301. package/dist/lane-coverage.d.ts.map +1 -0
  302. package/dist/lane-coverage.js +129 -0
  303. package/dist/lane-coverage.js.map +1 -0
  304. package/dist/ledger-replay.d.ts +115 -0
  305. package/dist/ledger-replay.d.ts.map +1 -0
  306. package/dist/ledger-replay.js +155 -0
  307. package/dist/ledger-replay.js.map +1 -0
  308. package/dist/ledger-store.d.ts +68 -0
  309. package/dist/ledger-store.d.ts.map +1 -0
  310. package/dist/ledger-store.js +111 -0
  311. package/dist/ledger-store.js.map +1 -0
  312. package/dist/loop-safety-observer.d.ts +132 -0
  313. package/dist/loop-safety-observer.d.ts.map +1 -0
  314. package/dist/loop-safety-observer.js +76 -0
  315. package/dist/loop-safety-observer.js.map +1 -0
  316. package/dist/loop-safety-store.d.ts +339 -0
  317. package/dist/loop-safety-store.d.ts.map +1 -0
  318. package/dist/loop-safety-store.js +800 -0
  319. package/dist/loop-safety-store.js.map +1 -0
  320. package/dist/machine-store.d.ts +54 -0
  321. package/dist/machine-store.d.ts.map +1 -0
  322. package/dist/machine-store.js +149 -0
  323. package/dist/machine-store.js.map +1 -0
  324. package/dist/mcp-main.d.ts +2 -0
  325. package/dist/mcp-main.d.ts.map +1 -0
  326. package/dist/mcp-main.js +116 -0
  327. package/dist/mcp-main.js.map +1 -0
  328. package/dist/mcp-server.d.ts +72 -0
  329. package/dist/mcp-server.d.ts.map +1 -0
  330. package/dist/mcp-server.js +259 -0
  331. package/dist/mcp-server.js.map +1 -0
  332. package/dist/model-routing.d.ts +75 -0
  333. package/dist/model-routing.d.ts.map +1 -0
  334. package/dist/model-routing.js +108 -0
  335. package/dist/model-routing.js.map +1 -0
  336. package/dist/model-transport.d.ts +188 -0
  337. package/dist/model-transport.d.ts.map +1 -0
  338. package/dist/model-transport.js +625 -0
  339. package/dist/model-transport.js.map +1 -0
  340. package/dist/notify-cadence.d.ts +55 -0
  341. package/dist/notify-cadence.d.ts.map +1 -0
  342. package/dist/notify-cadence.js +68 -0
  343. package/dist/notify-cadence.js.map +1 -0
  344. package/dist/notify-channel.d.ts +69 -0
  345. package/dist/notify-channel.d.ts.map +1 -0
  346. package/dist/notify-channel.js +151 -0
  347. package/dist/notify-channel.js.map +1 -0
  348. package/dist/notify.d.ts +71 -0
  349. package/dist/notify.d.ts.map +1 -0
  350. package/dist/notify.js +125 -0
  351. package/dist/notify.js.map +1 -0
  352. package/dist/observation-inventory.d.ts +65 -0
  353. package/dist/observation-inventory.d.ts.map +1 -0
  354. package/dist/observation-inventory.js +139 -0
  355. package/dist/observation-inventory.js.map +1 -0
  356. package/dist/owned-children.d.ts +45 -0
  357. package/dist/owned-children.d.ts.map +1 -0
  358. package/dist/owned-children.js +64 -0
  359. package/dist/owned-children.js.map +1 -0
  360. package/dist/packet-for-goal.d.ts +19 -0
  361. package/dist/packet-for-goal.d.ts.map +1 -0
  362. package/dist/packet-for-goal.js +32 -0
  363. package/dist/packet-for-goal.js.map +1 -0
  364. package/dist/pair-cmd.d.ts +85 -0
  365. package/dist/pair-cmd.d.ts.map +1 -0
  366. package/dist/pair-cmd.js +205 -0
  367. package/dist/pair-cmd.js.map +1 -0
  368. package/dist/partial-asker.d.ts +96 -0
  369. package/dist/partial-asker.d.ts.map +1 -0
  370. package/dist/partial-asker.js +117 -0
  371. package/dist/partial-asker.js.map +1 -0
  372. package/dist/pdf-text-lines.d.ts +17 -0
  373. package/dist/pdf-text-lines.d.ts.map +1 -0
  374. package/dist/pdf-text-lines.js +70 -0
  375. package/dist/pdf-text-lines.js.map +1 -0
  376. package/dist/pdf-text-worker.d.ts +2 -0
  377. package/dist/pdf-text-worker.d.ts.map +1 -0
  378. package/dist/pdf-text-worker.js +81 -0
  379. package/dist/pdf-text-worker.js.map +1 -0
  380. package/dist/pdf-text.d.ts +56 -0
  381. package/dist/pdf-text.d.ts.map +1 -0
  382. package/dist/pdf-text.js +64 -0
  383. package/dist/pdf-text.js.map +1 -0
  384. package/dist/pending-action.d.ts +154 -0
  385. package/dist/pending-action.d.ts.map +1 -0
  386. package/dist/pending-action.js +148 -0
  387. package/dist/pending-action.js.map +1 -0
  388. package/dist/preemptor.d.ts +40 -0
  389. package/dist/preemptor.d.ts.map +1 -0
  390. package/dist/preemptor.js +49 -0
  391. package/dist/preemptor.js.map +1 -0
  392. package/dist/programme-mode.d.ts +29 -0
  393. package/dist/programme-mode.d.ts.map +1 -0
  394. package/dist/programme-mode.js +50 -0
  395. package/dist/programme-mode.js.map +1 -0
  396. package/dist/progress-view.d.ts +14 -0
  397. package/dist/progress-view.d.ts.map +1 -0
  398. package/dist/progress-view.js +114 -0
  399. package/dist/progress-view.js.map +1 -0
  400. package/dist/project-graph-builder.d.ts +81 -0
  401. package/dist/project-graph-builder.d.ts.map +1 -0
  402. package/dist/project-graph-builder.js +246 -0
  403. package/dist/project-graph-builder.js.map +1 -0
  404. package/dist/project-graph-runtime.d.ts +86 -0
  405. package/dist/project-graph-runtime.d.ts.map +1 -0
  406. package/dist/project-graph-runtime.js +112 -0
  407. package/dist/project-graph-runtime.js.map +1 -0
  408. package/dist/project-index-builder.d.ts +96 -0
  409. package/dist/project-index-builder.d.ts.map +1 -0
  410. package/dist/project-index-builder.js +298 -0
  411. package/dist/project-index-builder.js.map +1 -0
  412. package/dist/project-index-facts.d.ts +51 -0
  413. package/dist/project-index-facts.d.ts.map +1 -0
  414. package/dist/project-index-facts.js +117 -0
  415. package/dist/project-index-facts.js.map +1 -0
  416. package/dist/project-index-store.d.ts +97 -0
  417. package/dist/project-index-store.d.ts.map +1 -0
  418. package/dist/project-index-store.js +140 -0
  419. package/dist/project-index-store.js.map +1 -0
  420. package/dist/project-memory-store.d.ts +127 -0
  421. package/dist/project-memory-store.d.ts.map +1 -0
  422. package/dist/project-memory-store.js +302 -0
  423. package/dist/project-memory-store.js.map +1 -0
  424. package/dist/proposal-store.d.ts +14 -0
  425. package/dist/proposal-store.d.ts.map +1 -0
  426. package/dist/proposal-store.js +19 -0
  427. package/dist/proposal-store.js.map +1 -0
  428. package/dist/prover.d.ts +80 -0
  429. package/dist/prover.d.ts.map +1 -0
  430. package/dist/prover.js +137 -0
  431. package/dist/prover.js.map +1 -0
  432. package/dist/provider-identity-store.d.ts +34 -0
  433. package/dist/provider-identity-store.d.ts.map +1 -0
  434. package/dist/provider-identity-store.js +72 -0
  435. package/dist/provider-identity-store.js.map +1 -0
  436. package/dist/provider-identity.d.ts +104 -0
  437. package/dist/provider-identity.d.ts.map +1 -0
  438. package/dist/provider-identity.js +167 -0
  439. package/dist/provider-identity.js.map +1 -0
  440. package/dist/provider-limit.d.ts +79 -0
  441. package/dist/provider-limit.d.ts.map +1 -0
  442. package/dist/provider-limit.js +148 -0
  443. package/dist/provider-limit.js.map +1 -0
  444. package/dist/provider-preflight.d.ts +171 -0
  445. package/dist/provider-preflight.d.ts.map +1 -0
  446. package/dist/provider-preflight.js +395 -0
  447. package/dist/provider-preflight.js.map +1 -0
  448. package/dist/provider-state.d.ts +120 -0
  449. package/dist/provider-state.d.ts.map +1 -0
  450. package/dist/provider-state.js +182 -0
  451. package/dist/provider-state.js.map +1 -0
  452. package/dist/providers.d.ts +132 -0
  453. package/dist/providers.d.ts.map +1 -0
  454. package/dist/providers.js +161 -0
  455. package/dist/providers.js.map +1 -0
  456. package/dist/publication-recorder.d.ts +117 -0
  457. package/dist/publication-recorder.d.ts.map +1 -0
  458. package/dist/publication-recorder.js +124 -0
  459. package/dist/publication-recorder.js.map +1 -0
  460. package/dist/pursuit-delivery.d.ts +24 -0
  461. package/dist/pursuit-delivery.d.ts.map +1 -0
  462. package/dist/pursuit-delivery.js +38 -0
  463. package/dist/pursuit-delivery.js.map +1 -0
  464. package/dist/queue-store.d.ts +132 -0
  465. package/dist/queue-store.d.ts.map +1 -0
  466. package/dist/queue-store.js +185 -0
  467. package/dist/queue-store.js.map +1 -0
  468. package/dist/queue-summary.d.ts +14 -0
  469. package/dist/queue-summary.d.ts.map +1 -0
  470. package/dist/queue-summary.js +82 -0
  471. package/dist/queue-summary.js.map +1 -0
  472. package/dist/queue-view.d.ts +20 -0
  473. package/dist/queue-view.d.ts.map +1 -0
  474. package/dist/queue-view.js +163 -0
  475. package/dist/queue-view.js.map +1 -0
  476. package/dist/queue-write-lease.d.ts +106 -0
  477. package/dist/queue-write-lease.d.ts.map +1 -0
  478. package/dist/queue-write-lease.js +282 -0
  479. package/dist/queue-write-lease.js.map +1 -0
  480. package/dist/rails-home.d.ts +162 -0
  481. package/dist/rails-home.d.ts.map +1 -0
  482. package/dist/rails-home.js +452 -0
  483. package/dist/rails-home.js.map +1 -0
  484. package/dist/rails-migrations.d.ts +75 -0
  485. package/dist/rails-migrations.d.ts.map +1 -0
  486. package/dist/rails-migrations.js +199 -0
  487. package/dist/rails-migrations.js.map +1 -0
  488. package/dist/rails-stores.d.ts +49 -0
  489. package/dist/rails-stores.d.ts.map +1 -0
  490. package/dist/rails-stores.js +100 -0
  491. package/dist/rails-stores.js.map +1 -0
  492. package/dist/reaper.d.ts +69 -0
  493. package/dist/reaper.d.ts.map +1 -0
  494. package/dist/reaper.js +152 -0
  495. package/dist/reaper.js.map +1 -0
  496. package/dist/record-store.d.ts +36 -0
  497. package/dist/record-store.d.ts.map +1 -0
  498. package/dist/record-store.js +78 -0
  499. package/dist/record-store.js.map +1 -0
  500. package/dist/recovery-io.d.ts +50 -0
  501. package/dist/recovery-io.d.ts.map +1 -0
  502. package/dist/recovery-io.js +122 -0
  503. package/dist/recovery-io.js.map +1 -0
  504. package/dist/recovery.d.ts +146 -0
  505. package/dist/recovery.d.ts.map +1 -0
  506. package/dist/recovery.js +110 -0
  507. package/dist/recovery.js.map +1 -0
  508. package/dist/redraw.d.ts +34 -0
  509. package/dist/redraw.d.ts.map +1 -0
  510. package/dist/redraw.js +62 -0
  511. package/dist/redraw.js.map +1 -0
  512. package/dist/rejected-evidence.d.ts +255 -0
  513. package/dist/rejected-evidence.d.ts.map +1 -0
  514. package/dist/rejected-evidence.js +324 -0
  515. package/dist/rejected-evidence.js.map +1 -0
  516. package/dist/report-cmd.d.ts +32 -0
  517. package/dist/report-cmd.d.ts.map +1 -0
  518. package/dist/report-cmd.js +201 -0
  519. package/dist/report-cmd.js.map +1 -0
  520. package/dist/repos-cmd.d.ts +80 -0
  521. package/dist/repos-cmd.d.ts.map +1 -0
  522. package/dist/repos-cmd.js +240 -0
  523. package/dist/repos-cmd.js.map +1 -0
  524. package/dist/request-body-shape.d.ts +93 -0
  525. package/dist/request-body-shape.d.ts.map +1 -0
  526. package/dist/request-body-shape.js +407 -0
  527. package/dist/request-body-shape.js.map +1 -0
  528. package/dist/requirement-claims.d.ts +89 -0
  529. package/dist/requirement-claims.d.ts.map +1 -0
  530. package/dist/requirement-claims.js +92 -0
  531. package/dist/requirement-claims.js.map +1 -0
  532. package/dist/retention-apply-runtime.d.ts +105 -0
  533. package/dist/retention-apply-runtime.d.ts.map +1 -0
  534. package/dist/retention-apply-runtime.js +269 -0
  535. package/dist/retention-apply-runtime.js.map +1 -0
  536. package/dist/reverify.d.ts +41 -0
  537. package/dist/reverify.d.ts.map +1 -0
  538. package/dist/reverify.js +69 -0
  539. package/dist/reverify.js.map +1 -0
  540. package/dist/round-records.d.ts +65 -0
  541. package/dist/round-records.d.ts.map +1 -0
  542. package/dist/round-records.js +61 -0
  543. package/dist/round-records.js.map +1 -0
  544. package/dist/round-runner.d.ts +924 -0
  545. package/dist/round-runner.d.ts.map +1 -0
  546. package/dist/round-runner.js +1693 -0
  547. package/dist/round-runner.js.map +1 -0
  548. package/dist/run-approval.d.ts +180 -0
  549. package/dist/run-approval.d.ts.map +1 -0
  550. package/dist/run-approval.js +199 -0
  551. package/dist/run-approval.js.map +1 -0
  552. package/dist/run-cmd.d.ts +359 -0
  553. package/dist/run-cmd.d.ts.map +1 -0
  554. package/dist/run-cmd.js +4418 -0
  555. package/dist/run-cmd.js.map +1 -0
  556. package/dist/run-delivery.d.ts +71 -0
  557. package/dist/run-delivery.d.ts.map +1 -0
  558. package/dist/run-delivery.js +104 -0
  559. package/dist/run-delivery.js.map +1 -0
  560. package/dist/run-ended.d.ts +75 -0
  561. package/dist/run-ended.d.ts.map +1 -0
  562. package/dist/run-ended.js +27 -0
  563. package/dist/run-ended.js.map +1 -0
  564. package/dist/run-ending-locator.d.ts +125 -0
  565. package/dist/run-ending-locator.d.ts.map +1 -0
  566. package/dist/run-ending-locator.js +133 -0
  567. package/dist/run-ending-locator.js.map +1 -0
  568. package/dist/run-launcher.d.ts +459 -0
  569. package/dist/run-launcher.d.ts.map +1 -0
  570. package/dist/run-launcher.js +652 -0
  571. package/dist/run-launcher.js.map +1 -0
  572. package/dist/run-lease.d.ts +208 -0
  573. package/dist/run-lease.d.ts.map +1 -0
  574. package/dist/run-lease.js +301 -0
  575. package/dist/run-lease.js.map +1 -0
  576. package/dist/run-refusal-marks.d.ts +189 -0
  577. package/dist/run-refusal-marks.d.ts.map +1 -0
  578. package/dist/run-refusal-marks.js +249 -0
  579. package/dist/run-refusal-marks.js.map +1 -0
  580. package/dist/run-start-marks.d.ts +153 -0
  581. package/dist/run-start-marks.d.ts.map +1 -0
  582. package/dist/run-start-marks.js +269 -0
  583. package/dist/run-start-marks.js.map +1 -0
  584. package/dist/scan-cmd.d.ts +14 -0
  585. package/dist/scan-cmd.d.ts.map +1 -0
  586. package/dist/scan-cmd.js +270 -0
  587. package/dist/scan-cmd.js.map +1 -0
  588. package/dist/scan-events.d.ts +50 -0
  589. package/dist/scan-events.d.ts.map +1 -0
  590. package/dist/scan-events.js +91 -0
  591. package/dist/scan-events.js.map +1 -0
  592. package/dist/scan.d.ts +191 -0
  593. package/dist/scan.d.ts.map +1 -0
  594. package/dist/scan.js +417 -0
  595. package/dist/scan.js.map +1 -0
  596. package/dist/scope-rule.d.ts +148 -0
  597. package/dist/scope-rule.d.ts.map +1 -0
  598. package/dist/scope-rule.js +121 -0
  599. package/dist/scope-rule.js.map +1 -0
  600. package/dist/self-repo-id.d.ts +18 -0
  601. package/dist/self-repo-id.d.ts.map +1 -0
  602. package/dist/self-repo-id.js +70 -0
  603. package/dist/self-repo-id.js.map +1 -0
  604. package/dist/serve-cmd.d.ts +115 -0
  605. package/dist/serve-cmd.d.ts.map +1 -0
  606. package/dist/serve-cmd.js +505 -0
  607. package/dist/serve-cmd.js.map +1 -0
  608. package/dist/serve.d.ts +167 -0
  609. package/dist/serve.d.ts.map +1 -0
  610. package/dist/serve.js +336 -0
  611. package/dist/serve.js.map +1 -0
  612. package/dist/server-client.d.ts +766 -0
  613. package/dist/server-client.d.ts.map +1 -0
  614. package/dist/server-client.js +475 -0
  615. package/dist/server-client.js.map +1 -0
  616. package/dist/session-adapter-runtime.d.ts +195 -0
  617. package/dist/session-adapter-runtime.d.ts.map +1 -0
  618. package/dist/session-adapter-runtime.js +373 -0
  619. package/dist/session-adapter-runtime.js.map +1 -0
  620. package/dist/session-checkpoint-runtime.d.ts +62 -0
  621. package/dist/session-checkpoint-runtime.d.ts.map +1 -0
  622. package/dist/session-checkpoint-runtime.js +268 -0
  623. package/dist/session-checkpoint-runtime.js.map +1 -0
  624. package/dist/session-control-transport.d.ts +106 -0
  625. package/dist/session-control-transport.d.ts.map +1 -0
  626. package/dist/session-control-transport.js +232 -0
  627. package/dist/session-control-transport.js.map +1 -0
  628. package/dist/session-observation-store.d.ts +98 -0
  629. package/dist/session-observation-store.d.ts.map +1 -0
  630. package/dist/session-observation-store.js +155 -0
  631. package/dist/session-observation-store.js.map +1 -0
  632. package/dist/session-observe-runtime.d.ts +123 -0
  633. package/dist/session-observe-runtime.d.ts.map +1 -0
  634. package/dist/session-observe-runtime.js +317 -0
  635. package/dist/session-observe-runtime.js.map +1 -0
  636. package/dist/session-store.d.ts +98 -0
  637. package/dist/session-store.d.ts.map +1 -0
  638. package/dist/session-store.js +116 -0
  639. package/dist/session-store.js.map +1 -0
  640. package/dist/sessions-cmd.d.ts +202 -0
  641. package/dist/sessions-cmd.d.ts.map +1 -0
  642. package/dist/sessions-cmd.js +609 -0
  643. package/dist/sessions-cmd.js.map +1 -0
  644. package/dist/settings-overlay.d.ts +53 -0
  645. package/dist/settings-overlay.d.ts.map +1 -0
  646. package/dist/settings-overlay.js +175 -0
  647. package/dist/settings-overlay.js.map +1 -0
  648. package/dist/setup-prompt.d.ts +34 -0
  649. package/dist/setup-prompt.d.ts.map +1 -0
  650. package/dist/setup-prompt.js +92 -0
  651. package/dist/setup-prompt.js.map +1 -0
  652. package/dist/setup.d.ts +103 -0
  653. package/dist/setup.d.ts.map +1 -0
  654. package/dist/setup.js +283 -0
  655. package/dist/setup.js.map +1 -0
  656. package/dist/shared-grants.d.ts +164 -0
  657. package/dist/shared-grants.d.ts.map +1 -0
  658. package/dist/shared-grants.js +242 -0
  659. package/dist/shared-grants.js.map +1 -0
  660. package/dist/signals.d.ts +55 -0
  661. package/dist/signals.d.ts.map +1 -0
  662. package/dist/signals.js +85 -0
  663. package/dist/signals.js.map +1 -0
  664. package/dist/source-cmd.d.ts +201 -0
  665. package/dist/source-cmd.d.ts.map +1 -0
  666. package/dist/source-cmd.js +684 -0
  667. package/dist/source-cmd.js.map +1 -0
  668. package/dist/source-verdict.d.ts +99 -0
  669. package/dist/source-verdict.d.ts.map +1 -0
  670. package/dist/source-verdict.js +182 -0
  671. package/dist/source-verdict.js.map +1 -0
  672. package/dist/spend-ledger.d.ts +350 -0
  673. package/dist/spend-ledger.d.ts.map +1 -0
  674. package/dist/spend-ledger.js +546 -0
  675. package/dist/spend-ledger.js.map +1 -0
  676. package/dist/stale-run-sweep.d.ts +79 -0
  677. package/dist/stale-run-sweep.d.ts.map +1 -0
  678. package/dist/stale-run-sweep.js +116 -0
  679. package/dist/stale-run-sweep.js.map +1 -0
  680. package/dist/start-attempts.d.ts +385 -0
  681. package/dist/start-attempts.d.ts.map +1 -0
  682. package/dist/start-attempts.js +613 -0
  683. package/dist/start-attempts.js.map +1 -0
  684. package/dist/status-cmd.d.ts +28 -0
  685. package/dist/status-cmd.d.ts.map +1 -0
  686. package/dist/status-cmd.js +116 -0
  687. package/dist/status-cmd.js.map +1 -0
  688. package/dist/stop-follow-up.d.ts +107 -0
  689. package/dist/stop-follow-up.d.ts.map +1 -0
  690. package/dist/stop-follow-up.js +172 -0
  691. package/dist/stop-follow-up.js.map +1 -0
  692. package/dist/surface-lease.d.ts +118 -0
  693. package/dist/surface-lease.d.ts.map +1 -0
  694. package/dist/surface-lease.js +485 -0
  695. package/dist/surface-lease.js.map +1 -0
  696. package/dist/sync.d.ts +54 -0
  697. package/dist/sync.d.ts.map +1 -0
  698. package/dist/sync.js +93 -0
  699. package/dist/sync.js.map +1 -0
  700. package/dist/syncing-ledger.d.ts +45 -0
  701. package/dist/syncing-ledger.d.ts.map +1 -0
  702. package/dist/syncing-ledger.js +53 -0
  703. package/dist/syncing-ledger.js.map +1 -0
  704. package/dist/temp-fixtures.d.ts +68 -0
  705. package/dist/temp-fixtures.d.ts.map +1 -0
  706. package/dist/temp-fixtures.js +38 -0
  707. package/dist/temp-fixtures.js.map +1 -0
  708. package/dist/token-window.d.ts +84 -0
  709. package/dist/token-window.d.ts.map +1 -0
  710. package/dist/token-window.js +143 -0
  711. package/dist/token-window.js.map +1 -0
  712. package/dist/tool-bridge.d.ts +177 -0
  713. package/dist/tool-bridge.d.ts.map +1 -0
  714. package/dist/tool-bridge.js +329 -0
  715. package/dist/tool-bridge.js.map +1 -0
  716. package/dist/tool-call-record.d.ts +197 -0
  717. package/dist/tool-call-record.d.ts.map +1 -0
  718. package/dist/tool-call-record.js +276 -0
  719. package/dist/tool-call-record.js.map +1 -0
  720. package/dist/tool-protocol.d.ts +135 -0
  721. package/dist/tool-protocol.d.ts.map +1 -0
  722. package/dist/tool-protocol.js +104 -0
  723. package/dist/tool-protocol.js.map +1 -0
  724. package/dist/tool-worker.d.ts +3 -0
  725. package/dist/tool-worker.d.ts.map +1 -0
  726. package/dist/tool-worker.js +478 -0
  727. package/dist/tool-worker.js.map +1 -0
  728. package/dist/toolchain-mirror.d.ts +86 -0
  729. package/dist/toolchain-mirror.d.ts.map +1 -0
  730. package/dist/toolchain-mirror.js +307 -0
  731. package/dist/toolchain-mirror.js.map +1 -0
  732. package/dist/trusted-git.d.ts +243 -0
  733. package/dist/trusted-git.d.ts.map +1 -0
  734. package/dist/trusted-git.js +920 -0
  735. package/dist/trusted-git.js.map +1 -0
  736. package/dist/ui.d.ts +76 -0
  737. package/dist/ui.d.ts.map +1 -0
  738. package/dist/ui.js +118 -0
  739. package/dist/ui.js.map +1 -0
  740. package/dist/untrusted-exec.d.ts +275 -0
  741. package/dist/untrusted-exec.d.ts.map +1 -0
  742. package/dist/untrusted-exec.js +479 -0
  743. package/dist/untrusted-exec.js.map +1 -0
  744. package/dist/untrusted-gate.d.ts +73 -0
  745. package/dist/untrusted-gate.d.ts.map +1 -0
  746. package/dist/untrusted-gate.js +226 -0
  747. package/dist/untrusted-gate.js.map +1 -0
  748. package/dist/uploader.d.ts +153 -0
  749. package/dist/uploader.d.ts.map +1 -0
  750. package/dist/uploader.js +204 -0
  751. package/dist/uploader.js.map +1 -0
  752. package/dist/verifier.d.ts +66 -0
  753. package/dist/verifier.d.ts.map +1 -0
  754. package/dist/verifier.js +170 -0
  755. package/dist/verifier.js.map +1 -0
  756. package/dist/verify-apply.d.ts +26 -0
  757. package/dist/verify-apply.d.ts.map +1 -0
  758. package/dist/verify-apply.js +36 -0
  759. package/dist/verify-apply.js.map +1 -0
  760. package/dist/verify-cmd.d.ts +44 -0
  761. package/dist/verify-cmd.d.ts.map +1 -0
  762. package/dist/verify-cmd.js +125 -0
  763. package/dist/verify-cmd.js.map +1 -0
  764. package/dist/verify-pass.d.ts +73 -0
  765. package/dist/verify-pass.d.ts.map +1 -0
  766. package/dist/verify-pass.js +103 -0
  767. package/dist/verify-pass.js.map +1 -0
  768. package/dist/welcome.d.ts +43 -0
  769. package/dist/welcome.d.ts.map +1 -0
  770. package/dist/welcome.js +116 -0
  771. package/dist/welcome.js.map +1 -0
  772. package/dist/workspace-provisioner.d.ts +65 -0
  773. package/dist/workspace-provisioner.d.ts.map +1 -0
  774. package/dist/workspace-provisioner.js +66 -0
  775. package/dist/workspace-provisioner.js.map +1 -0
  776. package/dist/workspace-quarantine.d.ts +64 -0
  777. package/dist/workspace-quarantine.d.ts.map +1 -0
  778. package/dist/workspace-quarantine.js +156 -0
  779. package/dist/workspace-quarantine.js.map +1 -0
  780. package/dist/workspace-residue-sweep.d.ts +113 -0
  781. package/dist/workspace-residue-sweep.d.ts.map +1 -0
  782. package/dist/workspace-residue-sweep.js +158 -0
  783. package/dist/workspace-residue-sweep.js.map +1 -0
  784. package/dist/workspace.d.ts +639 -0
  785. package/dist/workspace.d.ts.map +1 -0
  786. package/dist/workspace.js +2026 -0
  787. package/dist/workspace.js.map +1 -0
  788. package/package.json +52 -4
  789. package/win/CredProbe.cs +64 -0
  790. package/win/FakeClaude.cs +56 -0
  791. package/win/HandleProbe.cs +116 -0
  792. package/win/TokenProbe.cs +53 -0
  793. package/win/appcontainer.ps1 +500 -0
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sweepTargets = sweepTargets;
4
+ exports.makeStaleRunSweep = makeStaleRunSweep;
5
+ const node_fs_1 = require("node:fs");
6
+ const node_os_1 = require("node:os");
7
+ const node_path_1 = require("node:path");
8
+ const daemon_recovery_1 = require("./daemon-recovery");
9
+ const git_driver_1 = require("./git-driver");
10
+ const ledger_store_1 = require("./ledger-store");
11
+ const run_lease_1 = require("./run-lease");
12
+ const trusted_git_1 = require("./trusted-git");
13
+ const workspace_1 = require("./workspace");
14
+ const workspace_quarantine_1 = require("./workspace-quarantine");
15
+ /**
16
+ * The checkouts a sweep of this project covers, in a deterministic order: the
17
+ * main checkout first, then the workspaces by name.
18
+ */
19
+ function sweepTargets(cwd, home = (0, node_os_1.homedir)()) {
20
+ const seen = new Set();
21
+ const out = [];
22
+ const add = (path) => {
23
+ let key;
24
+ try {
25
+ key = node_fs_1.realpathSync.native(path);
26
+ }
27
+ catch {
28
+ return; // gone between the listing and here; nothing to sweep
29
+ }
30
+ if (seen.has(key))
31
+ return;
32
+ seen.add(key);
33
+ out.push(path);
34
+ };
35
+ add((0, node_path_1.resolve)(cwd));
36
+ const root = (0, workspace_1.workspacesRoot)(cwd, home);
37
+ let names;
38
+ try {
39
+ names = (0, node_fs_1.readdirSync)(root).sort();
40
+ }
41
+ catch {
42
+ return out;
43
+ }
44
+ const identity = (0, trusted_git_1.repoIdentityPath)(cwd);
45
+ for (const name of names) {
46
+ const path = (0, node_path_1.join)(root, name);
47
+ if (!(0, node_fs_1.existsSync)((0, node_path_1.join)(path, git_driver_1.STATE_DIR)))
48
+ continue;
49
+ if ((0, workspace_quarantine_1.quarantineOf)(cwd, path) !== null)
50
+ continue;
51
+ if ((0, trusted_git_1.repoIdentityPath)(path) !== identity)
52
+ continue;
53
+ add(path);
54
+ }
55
+ return out;
56
+ }
57
+ /**
58
+ * The daemon's `recoverStaleRun` dependency. ONE factory for the daemon and the
59
+ * end-to-end proof, so the proof sweeps with the sweep the daemon runs.
60
+ */
61
+ function makeStaleRunSweep(deps) {
62
+ const home = deps.home ?? (0, node_os_1.homedir)();
63
+ const now = deps.now ?? (() => Date.now());
64
+ return async () => {
65
+ const swept = [];
66
+ for (const checkout of sweepTargets(deps.cwd, home)) {
67
+ const stateDir = (0, git_driver_1.executionStateDir)(checkout);
68
+ try {
69
+ const outcome = await (0, daemon_recovery_1.recoverStaleRunOnStartup)({
70
+ leases: new run_lease_1.RunLeaseStore(stateDir, run_lease_1.nodeLeaseFs, deps.probe),
71
+ git: new git_driver_1.GitDriver((0, git_driver_1.nodeGitExec)(checkout)),
72
+ ledger: new ledger_store_1.LedgerStore(stateDir, ledger_store_1.nodeLedgerFs),
73
+ ledgerStateDir: stateDir,
74
+ ledgerFs: ledger_store_1.nodeLedgerFs,
75
+ projectId: deps.projectId,
76
+ now,
77
+ log: deps.log,
78
+ });
79
+ swept.push({ checkout, outcome });
80
+ }
81
+ catch (e) {
82
+ const because = e.message;
83
+ deps.log(`recover : could not check ${checkout} for a dead run (${because})`);
84
+ swept.push({ checkout, outcome: { kind: 'failed', because } });
85
+ }
86
+ }
87
+ /**
88
+ * M5-5: THE RECORD THAT LINGERS. A registered run whose process is PROVEN
89
+ * dead and whose checkout is gone — the reaper removed it (M4-4), or a
90
+ * person did — kept its record and its slot until `looply runs --release`
91
+ * (STATE §5 item 15; measured after the managed harness: one). Nothing can
92
+ * still be running there, so the record is released and the slot freed.
93
+ * A live record, a record the pid cannot be judged for, or one whose
94
+ * checkout still stands is left exactly alone — those are the reaper's and
95
+ * the person's to decide.
96
+ */
97
+ try {
98
+ const registry = new workspace_1.RunRegistry((0, git_driver_1.projectStateDir)(deps.cwd), deps.probe);
99
+ for (const entry of registry.list()) {
100
+ if (entry.kind !== 'orphaned')
101
+ continue;
102
+ if ((0, node_fs_1.existsSync)(entry.record.workspace))
103
+ continue;
104
+ const because = `its process is gone and so is its checkout ${entry.record.workspace}`;
105
+ const out = registry.forget(entry.record.runId);
106
+ deps.log(`recover : released the record of run ${entry.record.runId} — ${because}${out.slot === null ? '' : ` (slot ${out.slot} freed)`}`);
107
+ swept.push({ checkout: entry.record.workspace, outcome: { kind: 'released', runId: entry.record.runId, because } });
108
+ }
109
+ }
110
+ catch (e) {
111
+ deps.log(`recover : could not read the run registry (${e.message})`);
112
+ }
113
+ return swept;
114
+ };
115
+ }
116
+ //# sourceMappingURL=stale-run-sweep.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stale-run-sweep.js","sourceRoot":"","sources":["../src/stale-run-sweep.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,385 @@
1
+ import { type RunRefusalCode } from '@looply/core';
2
+ import { type Liveness, type ProbeFn } from './run-lease';
3
+ import { type LedgerFs } from './ledger-store';
4
+ /**
5
+ * ONE ATTEMPT TO EXECUTE ONE BOUNDED START.
6
+ *
7
+ * ─────────────────────────────────────────────────────────────────────────────
8
+ * TWO FACTS, NOT ONE
9
+ *
10
+ * A grant's ordinal receipt (autonomy-store.ts) says one thing and must go on
11
+ * saying only that: CONTROLLER C HAS PERMANENTLY SPENT START SLOT N. It is
12
+ * immutable, it is the budget, and nothing that goes wrong afterwards refunds
13
+ * it.
14
+ *
15
+ * This file records something different: ONE PROCESS HAS ATTEMPTED TO EXECUTE
16
+ * REQUEST S. A process can claim an attempt and die without ever reaching a
17
+ * Run, and that must be recoverable — otherwise a machine that crashed in the
18
+ * wrong second would burn a person's whole night one ordinal at a time.
19
+ *
20
+ * Conflating the two is what makes a controller wedge. If "the ordinal is
21
+ * reserved" also means "a Start is in flight", then a reservation followed by a
22
+ * crash is a Start that is in flight forever, against a process that does not
23
+ * exist, and nothing can ever move.
24
+ *
25
+ * ─────────────────────────────────────────────────────────────────────────────
26
+ * THE REQUEST ID NEVER CHANGES
27
+ *
28
+ * Attempts 1, 2 and 3 of ordinal N all carry the SAME requestId. They are not
29
+ * three Starts; they are three tries at establishing one Start, and every
30
+ * durable fact about it — the lease, the start mark, the refusal mark — is
31
+ * filed under that one id. A retry that minted a new id would be a second
32
+ * Start wearing a disguise, and the budget would be a lie.
33
+ *
34
+ * ─────────────────────────────────────────────────────────────────────────────
35
+ * THE CHILD CLAIMS, NOT THE DAEMON
36
+ *
37
+ * The claim is made by the process that could actually go on to do the work,
38
+ * immediately before it does. That is deliberate and it is the whole reason
39
+ * this is safe.
40
+ *
41
+ * A daemon that claimed before spawning would be recording the identity of a
42
+ * process that is NOT the executor: children here are detached and outlive
43
+ * their parent, so a dead daemon proves nothing about whether the run it
44
+ * launched is still going. The claimant would be a corpse and the executor
45
+ * would still be compiling. By having the child write its own pid, the durable
46
+ * claimant IS the process whose liveness decides whether a retry is safe.
47
+ */
48
+ /** Bumped only when the on-disk shape changes incompatibly. Read, not decorative. */
49
+ export declare const START_ATTEMPTS_SCHEMA = 1;
50
+ /**
51
+ * How many times one Start request may be attempted.
52
+ *
53
+ * Three, matching `MAX_ITEM_EXECUTION_ATTEMPTS` — the repository's existing
54
+ * answer to "how many times may one thing be tried before we stop and say so".
55
+ *
56
+ * It needs its own bound rather than borrowing one. A HUMAN Start is bounded by
57
+ * the server's one-hour redelivery window: `pop` marks anything un-acked and
58
+ * older than that `expired`, and stops offering it. An autonomous Start has no
59
+ * server row, so it inherits none of that — the only ceiling it would otherwise
60
+ * have is the grant's 24-hour lifetime, which at a ten-second cadence is more
61
+ * than eight thousand attempts at a request that has failed the same way every
62
+ * time.
63
+ */
64
+ export declare const MAX_START_REQUEST_ATTEMPTS = 3;
65
+ /**
66
+ * The deterministic name of one attempt.
67
+ *
68
+ * Derived, never minted, for the same reason `autonomyStartId` is: two daemons
69
+ * that independently conclude attempt 2 of request S is due must compute the
70
+ * same name, so that the filesystem can tell them apart instead of both
71
+ * believing they own it.
72
+ */
73
+ export declare function startAttemptId(requestId: string, attempt: number): string;
74
+ /** What a claimant says about itself. Written once, never rewritten. */
75
+ export interface StartAttemptClaim {
76
+ requestId: string;
77
+ attempt: number;
78
+ /**
79
+ * Distinguishes this claimant from a later process that reuses the pid.
80
+ *
81
+ * The same three fields the run lease records, and for the same reason: a
82
+ * pid on its own is not an identity, because the operating system hands
83
+ * numbers out again. `RunLeaseStore` already learned this; nothing here
84
+ * invents a second convention.
85
+ */
86
+ token: string;
87
+ pid: number;
88
+ host: string;
89
+ claimedAt: string;
90
+ }
91
+ /**
92
+ * A DAEMON SAYING IT IS ABOUT TO SPAWN. The retry budget, and nothing else.
93
+ *
94
+ * The claim beside it is written by the CHILD, at the admission seam, and that
95
+ * is right: the child is the process whose liveness decides whether work is
96
+ * still happening. But a receipt written by the child can only count children
97
+ * that GOT there, and a launch that dies first — a missing binary, an argv the
98
+ * CLI rejects, EPERM on the state directory, a partial upgrade — leaves nothing
99
+ * behind at all.
100
+ *
101
+ * So the bound counted admissions and the failure mode never produced one. A
102
+ * certification pass measured it: five hundred ticks, five hundred spawns,
103
+ * every one of them calling itself attempt 1, `MAX_START_REQUEST_ATTEMPTS`
104
+ * never once consulted with anything to consult it about. The only ceiling was
105
+ * the grant's own 24 hours, at eight thousand spawns.
106
+ *
107
+ * Two different facts, so two different artifacts:
108
+ *
109
+ * LAUNCH a daemon spent one of three tries. Written BEFORE the spawn,
110
+ * because a budget consumed after the risky act is not a budget.
111
+ * CLAIM a child crossed the admission seam. Written by that child.
112
+ *
113
+ * Neither pretends to be the other.
114
+ */
115
+ export interface StartLaunch {
116
+ requestId: string;
117
+ attempt: number;
118
+ /**
119
+ * The daemon that reserved this try, so a successor can tell "somebody is
120
+ * spawning right now" from "somebody died mid-spawn". Same three fields as a
121
+ * claim, and for the same reason: a pid alone is not an identity.
122
+ */
123
+ token: string;
124
+ pid: number;
125
+ host: string;
126
+ at: string;
127
+ }
128
+ /**
129
+ * WHETHER A CHILD ACTUALLY CAME INTO EXISTENCE, recorded by the daemon that
130
+ * asked for one.
131
+ *
132
+ * Without it, a launch with no claim is unreadable: it could be a spawn that
133
+ * failed outright, a child that died before its first write, or a child that is
134
+ * about to claim a millisecond from now. Guessing "dead" would start a second
135
+ * executor on an assumption — the failure 6D2B exists to prevent. Guessing
136
+ * "alive" would stall a grant on a spawn that never happened.
137
+ *
138
+ * So the daemon writes down what the launcher told it, the moment it is told.
139
+ */
140
+ export interface StartSpawn {
141
+ requestId: string;
142
+ attempt: number;
143
+ /** False when the launcher could not produce a child at all. */
144
+ spawned: boolean;
145
+ /** The child's pid when there is one and the platform reported it. */
146
+ pid?: number;
147
+ host: string;
148
+ at: string;
149
+ }
150
+ /**
151
+ * Where one request's attempts live.
152
+ *
153
+ * A directory per request, beside nothing else. Deliberately NOT a field on
154
+ * any of the whole-file JSON stores this state directory already holds: each of
155
+ * those is rewritten entire by writers that hold no lease, so attempt history
156
+ * filed there would be erased by a process that never knew it existed.
157
+ *
158
+ * The directory name is derived rather than used raw. A request id contains
159
+ * colons (`controller-start:aut_1:3`) and a colon cannot appear in a Windows
160
+ * filename, so the readable part is sanitised and an eight-hex digest of the
161
+ * WHOLE id is appended — readable enough to debug by eye, and unique because
162
+ * the digest is over the original.
163
+ */
164
+ export declare function attemptDirName(requestId: string): string;
165
+ export type ClaimOutcome = {
166
+ ok: true;
167
+ claim: StartAttemptClaim;
168
+ }
169
+ /** Somebody else owns this exact attempt. NOT a statement about the goal. */
170
+ | {
171
+ ok: false;
172
+ because: string;
173
+ };
174
+ /**
175
+ * WHAT HAS BEEN TRIED, AND WHETHER ANOTHER TRY IS ALLOWED.
176
+ *
177
+ * One authority, read by the daemon side and by every test. A second derivation
178
+ * living somewhere else is how two halves of a system come to disagree about
179
+ * whether a Start already happened.
180
+ */
181
+ export type AttemptProgress =
182
+ /** Nothing has been tried. Attempt 1 may be claimed. */
183
+ {
184
+ kind: 'none';
185
+ nextAttempt: 1;
186
+ }
187
+ /**
188
+ * The latest claimant may still be working.
189
+ *
190
+ * Covers `alive` AND `unknown`, and the second is the point: a pid this
191
+ * process cannot probe is not evidence of death, and starting a second
192
+ * executor on a guess is the failure the whole file exists to prevent.
193
+ */
194
+ | {
195
+ kind: 'active';
196
+ attempt: number;
197
+ liveness: Liveness;
198
+ claim: StartAttemptClaim;
199
+ }
200
+ /** The latest claimant is PROVEN dead and the budget has room. */
201
+ | {
202
+ kind: 'retryable';
203
+ nextAttempt: number;
204
+ deadAttempt: number;
205
+ }
206
+ /** A Run demonstrably began for this request. Irreversible. */
207
+ | {
208
+ kind: 'run-started';
209
+ runId: string;
210
+ }
211
+ /** The run itself decided. Irreversible. */
212
+ | {
213
+ kind: 'refused';
214
+ code: RunRefusalCode;
215
+ reason: string;
216
+ }
217
+ /** Every permitted attempt has been spent without a durable outcome. */
218
+ | {
219
+ kind: 'exhausted';
220
+ attempts: number;
221
+ }
222
+ /** The record cannot be trusted. Never guessed around. */
223
+ | {
224
+ kind: 'corrupt';
225
+ because: string;
226
+ }
227
+ /**
228
+ * The record could not be READ this instant. Not the same thing at all.
229
+ *
230
+ * `corrupt` is durable damage: the bytes are wrong and reading them again
231
+ * reaches the same conclusion, so the only honest end is to stop and ask a
232
+ * person. This is weather — an antivirus scanner or the search indexer
233
+ * holding a handle for a few milliseconds, which on Windows is ordinary.
234
+ *
235
+ * Collapsing the two ended a person's pursuit over a file lock that cleared
236
+ * before they read the message.
237
+ */
238
+ | {
239
+ kind: 'unreadable';
240
+ because: string;
241
+ };
242
+ /** What `attemptProgress` needs to know that is not its own business to read. */
243
+ export interface RequestOutcomes {
244
+ /** The start mark for this request, if a Run demonstrably began. */
245
+ startedRun: {
246
+ runId: string;
247
+ } | null;
248
+ /** The refusal mark for this request, if the run decided against one. */
249
+ refusal: {
250
+ reason: string;
251
+ code?: RunRefusalCode;
252
+ } | null;
253
+ /**
254
+ * Whether the ordinal this request spends is still reserved.
255
+ *
256
+ * An attempt with no reservation behind it is a contradiction — the budget
257
+ * says nothing was spent while the attempt history says something was tried —
258
+ * and a contradiction is not something to pick a side of.
259
+ */
260
+ ordinalReserved: boolean;
261
+ }
262
+ export declare class StartAttempts {
263
+ private readonly stateDir;
264
+ private readonly fs;
265
+ private readonly probe;
266
+ private readonly deps;
267
+ constructor(stateDir: string, fs: AttemptFs, probe?: ProbeFn, deps?: {
268
+ now?: () => number;
269
+ pid?: () => number;
270
+ host?: () => string;
271
+ token?: () => string;
272
+ });
273
+ private dir;
274
+ private path;
275
+ /** The daemon's "I am spending a try" receipt. Beside the claim, never instead of it. */
276
+ private launchPath;
277
+ /** What the launcher reported: a child, or no child. */
278
+ private spawnPath;
279
+ /**
280
+ * SPEND ONE OF THE THREE TRIES, before anything is spawned.
281
+ *
282
+ * Exclusive, like every other budget fact here, so two daemons that both
283
+ * decide attempt N is due cannot both take it. The loser is told, and does
284
+ * not spawn.
285
+ *
286
+ * Deliberately written BEFORE the launcher is called. A try recorded
287
+ * afterwards is not recorded at all for precisely the failures that need
288
+ * bounding — the ones where nothing comes back.
289
+ */
290
+ reserveLaunch(requestId: string, attempt: number): Promise<{
291
+ ok: true;
292
+ launch: StartLaunch;
293
+ } | {
294
+ ok: false;
295
+ because: string;
296
+ }>;
297
+ /**
298
+ * Record what the launcher answered. Idempotent on the same answer.
299
+ *
300
+ * A second, DIFFERENT answer for one launch is two processes disagreeing
301
+ * about whether a child exists, which is not something to overwrite.
302
+ */
303
+ noteSpawn(requestId: string, attempt: number, outcome: {
304
+ spawned: boolean;
305
+ pid?: number;
306
+ }): Promise<void>;
307
+ /**
308
+ * Every try spent on this request, lowest first, and what became of each.
309
+ *
310
+ * A hole is refused here for the same reason it is refused among the ordinal
311
+ * receipts: launches are taken in order, so a gap means one was removed, and
312
+ * a removed launch is a retry budget quietly topped up.
313
+ */
314
+ launches(requestId: string): Promise<{
315
+ ok: true;
316
+ launches: {
317
+ launch: StartLaunch;
318
+ spawn: StartSpawn | null;
319
+ }[];
320
+ } | {
321
+ ok: false;
322
+ transient: boolean;
323
+ because: string;
324
+ }>;
325
+ /**
326
+ * Take attempt N of this request, or lose it.
327
+ *
328
+ * Exclusive create and nothing else — no read, no check, no "does it exist".
329
+ * The operating system hands the file to exactly one caller, and the loser
330
+ * finds out from the filesystem rather than from a stale read of its own.
331
+ *
332
+ * There is deliberately NO takeover path. If the claimant of attempt 1 is
333
+ * dead, the answer is attempt 2, not attempt 1 again: an attempt receipt is a
334
+ * historical fact and rewriting one would both lose the history that bounds
335
+ * the retries and reopen the dead-lease race class this repository already
336
+ * closed once.
337
+ */
338
+ claim(requestId: string, attempt: number): Promise<ClaimOutcome>;
339
+ /** Every claim on record for this request, lowest attempt first. */
340
+ claims(requestId: string): Promise<{
341
+ ok: true;
342
+ claims: StartAttemptClaim[];
343
+ } | {
344
+ ok: false;
345
+ transient: boolean;
346
+ because: string;
347
+ }>;
348
+ /**
349
+ * What has become of this request, as something that must DECIDE reads it.
350
+ *
351
+ * The order of the questions is the safety argument, and it is not
352
+ * negotiable:
353
+ *
354
+ * A Run that demonstrably began outranks everything. Once `run.started` is
355
+ * durable no further attempt may ever be made, whatever the attempt history
356
+ * says and whichever process died — the work is happening, or it happened.
357
+ *
358
+ * A refusal the run itself made outranks the attempt history too. The run
359
+ * reached a decision; trying again would ask the same question of the same
360
+ * repository and get the same answer.
361
+ *
362
+ * Only then does whether anybody is still working matter.
363
+ */
364
+ progress(requestId: string, outcomes: RequestOutcomes): Promise<AttemptProgress>;
365
+ /**
366
+ * Whether the process that made this claim is still about.
367
+ *
368
+ * A claim made on another machine is `unknown`, never `dead`: a pid means
369
+ * nothing off the host that issued it, and probing a local pid that happens
370
+ * to match somebody else's would be reading a stranger's process as evidence
371
+ * about ours.
372
+ */
373
+ private livenessOf;
374
+ }
375
+ /** The filesystem this store needs. `createExclusive` is the whole argument. */
376
+ export interface AttemptFs extends LedgerFs {
377
+ /** Create only if absent. MUST reject with an `EEXIST` error when it is not. */
378
+ createExclusive(path: string, data: string): Promise<void>;
379
+ }
380
+ export declare const nodeAttemptFs: AttemptFs;
381
+ /** Narrow a refusal mark's code without trusting it. */
382
+ export declare function codeOf(mark: {
383
+ code?: unknown;
384
+ } | null): RunRefusalCode | undefined;
385
+ //# sourceMappingURL=start-attempts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start-attempts.d.ts","sourceRoot":"","sources":["../src/start-attempts.ts"],"names":[],"mappings":"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"}