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,613 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.nodeAttemptFs = exports.StartAttempts = exports.MAX_START_REQUEST_ATTEMPTS = exports.START_ATTEMPTS_SCHEMA = void 0;
37
+ exports.startAttemptId = startAttemptId;
38
+ exports.attemptDirName = attemptDirName;
39
+ exports.codeOf = codeOf;
40
+ const node_crypto_1 = require("node:crypto");
41
+ const node_os_1 = require("node:os");
42
+ const core_1 = require("@looply/core");
43
+ const run_lease_1 = require("./run-lease");
44
+ const ledger_store_1 = require("./ledger-store");
45
+ const fs_trouble_1 = require("./fs-trouble");
46
+ /**
47
+ * ONE ATTEMPT TO EXECUTE ONE BOUNDED START.
48
+ *
49
+ * ─────────────────────────────────────────────────────────────────────────────
50
+ * TWO FACTS, NOT ONE
51
+ *
52
+ * A grant's ordinal receipt (autonomy-store.ts) says one thing and must go on
53
+ * saying only that: CONTROLLER C HAS PERMANENTLY SPENT START SLOT N. It is
54
+ * immutable, it is the budget, and nothing that goes wrong afterwards refunds
55
+ * it.
56
+ *
57
+ * This file records something different: ONE PROCESS HAS ATTEMPTED TO EXECUTE
58
+ * REQUEST S. A process can claim an attempt and die without ever reaching a
59
+ * Run, and that must be recoverable — otherwise a machine that crashed in the
60
+ * wrong second would burn a person's whole night one ordinal at a time.
61
+ *
62
+ * Conflating the two is what makes a controller wedge. If "the ordinal is
63
+ * reserved" also means "a Start is in flight", then a reservation followed by a
64
+ * crash is a Start that is in flight forever, against a process that does not
65
+ * exist, and nothing can ever move.
66
+ *
67
+ * ─────────────────────────────────────────────────────────────────────────────
68
+ * THE REQUEST ID NEVER CHANGES
69
+ *
70
+ * Attempts 1, 2 and 3 of ordinal N all carry the SAME requestId. They are not
71
+ * three Starts; they are three tries at establishing one Start, and every
72
+ * durable fact about it — the lease, the start mark, the refusal mark — is
73
+ * filed under that one id. A retry that minted a new id would be a second
74
+ * Start wearing a disguise, and the budget would be a lie.
75
+ *
76
+ * ─────────────────────────────────────────────────────────────────────────────
77
+ * THE CHILD CLAIMS, NOT THE DAEMON
78
+ *
79
+ * The claim is made by the process that could actually go on to do the work,
80
+ * immediately before it does. That is deliberate and it is the whole reason
81
+ * this is safe.
82
+ *
83
+ * A daemon that claimed before spawning would be recording the identity of a
84
+ * process that is NOT the executor: children here are detached and outlive
85
+ * their parent, so a dead daemon proves nothing about whether the run it
86
+ * launched is still going. The claimant would be a corpse and the executor
87
+ * would still be compiling. By having the child write its own pid, the durable
88
+ * claimant IS the process whose liveness decides whether a retry is safe.
89
+ */
90
+ /** Bumped only when the on-disk shape changes incompatibly. Read, not decorative. */
91
+ exports.START_ATTEMPTS_SCHEMA = 1;
92
+ /**
93
+ * How many times one Start request may be attempted.
94
+ *
95
+ * Three, matching `MAX_ITEM_EXECUTION_ATTEMPTS` — the repository's existing
96
+ * answer to "how many times may one thing be tried before we stop and say so".
97
+ *
98
+ * It needs its own bound rather than borrowing one. A HUMAN Start is bounded by
99
+ * the server's one-hour redelivery window: `pop` marks anything un-acked and
100
+ * older than that `expired`, and stops offering it. An autonomous Start has no
101
+ * server row, so it inherits none of that — the only ceiling it would otherwise
102
+ * have is the grant's 24-hour lifetime, which at a ten-second cadence is more
103
+ * than eight thousand attempts at a request that has failed the same way every
104
+ * time.
105
+ */
106
+ exports.MAX_START_REQUEST_ATTEMPTS = 3;
107
+ /**
108
+ * The deterministic name of one attempt.
109
+ *
110
+ * Derived, never minted, for the same reason `autonomyStartId` is: two daemons
111
+ * that independently conclude attempt 2 of request S is due must compute the
112
+ * same name, so that the filesystem can tell them apart instead of both
113
+ * believing they own it.
114
+ */
115
+ function startAttemptId(requestId, attempt) {
116
+ return `${requestId}#attempt-${attempt}`;
117
+ }
118
+ /**
119
+ * Where one request's attempts live.
120
+ *
121
+ * A directory per request, beside nothing else. Deliberately NOT a field on
122
+ * any of the whole-file JSON stores this state directory already holds: each of
123
+ * those is rewritten entire by writers that hold no lease, so attempt history
124
+ * filed there would be erased by a process that never knew it existed.
125
+ *
126
+ * The directory name is derived rather than used raw. A request id contains
127
+ * colons (`controller-start:aut_1:3`) and a colon cannot appear in a Windows
128
+ * filename, so the readable part is sanitised and an eight-hex digest of the
129
+ * WHOLE id is appended — readable enough to debug by eye, and unique because
130
+ * the digest is over the original.
131
+ */
132
+ function attemptDirName(requestId) {
133
+ const readable = requestId.replace(/[^A-Za-z0-9_-]/g, '-').slice(0, 60);
134
+ const digest = (0, node_crypto_1.createHash)('sha256').update(requestId).digest('hex').slice(0, 8);
135
+ return `${readable}-${digest}`;
136
+ }
137
+ class StartAttempts {
138
+ stateDir;
139
+ fs;
140
+ probe;
141
+ deps;
142
+ constructor(stateDir, fs, probe = run_lease_1.nodeProbe, deps = {}) {
143
+ this.stateDir = stateDir;
144
+ this.fs = fs;
145
+ this.probe = probe;
146
+ this.deps = deps;
147
+ }
148
+ dir(requestId) {
149
+ return `${this.stateDir}/start-attempts/${attemptDirName(requestId)}`;
150
+ }
151
+ path(requestId, attempt) {
152
+ return `${this.dir(requestId)}/${String(attempt).padStart(3, '0')}.json`;
153
+ }
154
+ /** The daemon's "I am spending a try" receipt. Beside the claim, never instead of it. */
155
+ launchPath(requestId, attempt) {
156
+ return `${this.dir(requestId)}/${String(attempt).padStart(3, '0')}.launch.json`;
157
+ }
158
+ /** What the launcher reported: a child, or no child. */
159
+ spawnPath(requestId, attempt) {
160
+ return `${this.dir(requestId)}/${String(attempt).padStart(3, '0')}.spawn.json`;
161
+ }
162
+ /**
163
+ * SPEND ONE OF THE THREE TRIES, before anything is spawned.
164
+ *
165
+ * Exclusive, like every other budget fact here, so two daemons that both
166
+ * decide attempt N is due cannot both take it. The loser is told, and does
167
+ * not spawn.
168
+ *
169
+ * Deliberately written BEFORE the launcher is called. A try recorded
170
+ * afterwards is not recorded at all for precisely the failures that need
171
+ * bounding — the ones where nothing comes back.
172
+ */
173
+ async reserveLaunch(requestId, attempt) {
174
+ if (!Number.isInteger(attempt) || attempt < 1 || attempt > exports.MAX_START_REQUEST_ATTEMPTS) {
175
+ return { ok: false, because: `attempt ${attempt} is outside the permitted range` };
176
+ }
177
+ const launch = {
178
+ requestId,
179
+ attempt,
180
+ token: this.deps.token?.() ?? randomToken(),
181
+ pid: this.deps.pid?.() ?? process.pid,
182
+ host: this.deps.host?.() ?? (0, node_os_1.hostname)(),
183
+ at: new Date(this.deps.now?.() ?? Date.now()).toISOString(),
184
+ };
185
+ const body = { schema: exports.START_ATTEMPTS_SCHEMA, launch };
186
+ await this.fs.mkdir(this.dir(requestId));
187
+ try {
188
+ await this.fs.createExclusive(this.launchPath(requestId, attempt), JSON.stringify(body, null, 2) + '\n');
189
+ }
190
+ catch (e) {
191
+ if (e.code === 'EEXIST') {
192
+ return { ok: false, because: `attempt ${attempt} of this Start was already launched` };
193
+ }
194
+ throw e;
195
+ }
196
+ return { ok: true, launch };
197
+ }
198
+ /**
199
+ * Record what the launcher answered. Idempotent on the same answer.
200
+ *
201
+ * A second, DIFFERENT answer for one launch is two processes disagreeing
202
+ * about whether a child exists, which is not something to overwrite.
203
+ */
204
+ async noteSpawn(requestId, attempt, outcome) {
205
+ const spawn = {
206
+ requestId,
207
+ attempt,
208
+ spawned: outcome.spawned,
209
+ ...(outcome.pid === undefined ? {} : { pid: outcome.pid }),
210
+ host: this.deps.host?.() ?? (0, node_os_1.hostname)(),
211
+ at: new Date(this.deps.now?.() ?? Date.now()).toISOString(),
212
+ };
213
+ const body = { schema: exports.START_ATTEMPTS_SCHEMA, spawn };
214
+ await this.fs.mkdir(this.dir(requestId));
215
+ try {
216
+ await this.fs.createExclusive(this.spawnPath(requestId, attempt), JSON.stringify(body, null, 2) + '\n');
217
+ }
218
+ catch (e) {
219
+ if (e.code !== 'EEXIST')
220
+ throw e;
221
+ }
222
+ }
223
+ /**
224
+ * Every try spent on this request, lowest first, and what became of each.
225
+ *
226
+ * A hole is refused here for the same reason it is refused among the ordinal
227
+ * receipts: launches are taken in order, so a gap means one was removed, and
228
+ * a removed launch is a retry budget quietly topped up.
229
+ */
230
+ async launches(requestId) {
231
+ const found = [];
232
+ const missing = [];
233
+ for (let attempt = 1; attempt <= exports.MAX_START_REQUEST_ATTEMPTS; attempt++) {
234
+ let text;
235
+ try {
236
+ text = await this.fs.readFile(this.launchPath(requestId, attempt));
237
+ }
238
+ catch (e) {
239
+ const t = (0, fs_trouble_1.classifyFsError)(e, `launch ${attempt} of this Start`);
240
+ return { ok: false, transient: (0, fs_trouble_1.shouldWaitFor)(t), because: t.because };
241
+ }
242
+ if (text === null) {
243
+ missing.push(attempt);
244
+ continue;
245
+ }
246
+ if (missing.length > 0) {
247
+ return {
248
+ ok: false,
249
+ transient: false,
250
+ because: `launch ${missing[0]} of this Start has no receipt, but launch ${attempt} does`,
251
+ };
252
+ }
253
+ const launch = readLaunch(text);
254
+ if (launch === null) {
255
+ return {
256
+ ok: false,
257
+ transient: false,
258
+ because: `launch ${attempt} is not a record this build can read`,
259
+ };
260
+ }
261
+ if (launch.attempt !== attempt || launch.requestId !== requestId) {
262
+ return {
263
+ ok: false,
264
+ transient: false,
265
+ because: `launch ${attempt} holds a record for something else`,
266
+ };
267
+ }
268
+ let spawnText;
269
+ try {
270
+ spawnText = await this.fs.readFile(this.spawnPath(requestId, attempt));
271
+ }
272
+ catch (e) {
273
+ const t = (0, fs_trouble_1.classifyFsError)(e, `the outcome of launch ${attempt}`);
274
+ return { ok: false, transient: (0, fs_trouble_1.shouldWaitFor)(t), because: t.because };
275
+ }
276
+ found.push({ launch, spawn: spawnText === null ? null : readSpawn(spawnText) });
277
+ }
278
+ return { ok: true, launches: found };
279
+ }
280
+ /**
281
+ * Take attempt N of this request, or lose it.
282
+ *
283
+ * Exclusive create and nothing else — no read, no check, no "does it exist".
284
+ * The operating system hands the file to exactly one caller, and the loser
285
+ * finds out from the filesystem rather than from a stale read of its own.
286
+ *
287
+ * There is deliberately NO takeover path. If the claimant of attempt 1 is
288
+ * dead, the answer is attempt 2, not attempt 1 again: an attempt receipt is a
289
+ * historical fact and rewriting one would both lose the history that bounds
290
+ * the retries and reopen the dead-lease race class this repository already
291
+ * closed once.
292
+ */
293
+ async claim(requestId, attempt) {
294
+ if (!Number.isInteger(attempt) || attempt < 1 || attempt > exports.MAX_START_REQUEST_ATTEMPTS) {
295
+ return { ok: false, because: `attempt ${attempt} is outside the permitted range` };
296
+ }
297
+ const claim = {
298
+ requestId,
299
+ attempt,
300
+ token: this.deps.token?.() ?? randomToken(),
301
+ pid: this.deps.pid?.() ?? process.pid,
302
+ host: this.deps.host?.() ?? (0, node_os_1.hostname)(),
303
+ claimedAt: new Date(this.deps.now?.() ?? Date.now()).toISOString(),
304
+ };
305
+ const body = { schema: exports.START_ATTEMPTS_SCHEMA, claim };
306
+ await this.fs.mkdir(this.dir(requestId));
307
+ try {
308
+ await this.fs.createExclusive(this.path(requestId, attempt), JSON.stringify(body, null, 2) + '\n');
309
+ }
310
+ catch (e) {
311
+ if (e.code === 'EEXIST') {
312
+ return { ok: false, because: `attempt ${attempt} of this Start is already claimed` };
313
+ }
314
+ throw e;
315
+ }
316
+ return { ok: true, claim };
317
+ }
318
+ /** Every claim on record for this request, lowest attempt first. */
319
+ async claims(requestId) {
320
+ const found = [];
321
+ const missing = [];
322
+ for (let attempt = 1; attempt <= exports.MAX_START_REQUEST_ATTEMPTS; attempt++) {
323
+ let text;
324
+ try {
325
+ text = await this.fs.readFile(this.path(requestId, attempt));
326
+ }
327
+ catch (e) {
328
+ // Unreadable is not absent — treating it as absent would hand the same
329
+ // attempt number out twice — and it is not damage either. A handle held
330
+ // for a moment by something else says nothing about the bytes.
331
+ const t = (0, fs_trouble_1.classifyFsError)(e, `attempt ${attempt} of this Start`);
332
+ return { ok: false, transient: (0, fs_trouble_1.shouldWaitFor)(t), because: t.because };
333
+ }
334
+ if (text === null) {
335
+ missing.push(attempt);
336
+ continue;
337
+ }
338
+ if (missing.length > 0) {
339
+ // A HOLE. Attempts are taken in order, so a gap means one was removed —
340
+ // and an attempt receipt is the retry budget, so a missing one is a
341
+ // budget that has been quietly topped up. Neither counting around it nor
342
+ // stopping at it is honest.
343
+ return {
344
+ ok: false,
345
+ transient: false,
346
+ because: `attempt ${missing[0]} of this Start has no receipt, but attempt ${attempt} does`,
347
+ };
348
+ }
349
+ const claim = readClaim(text);
350
+ if (claim === null) {
351
+ return {
352
+ ok: false,
353
+ transient: false,
354
+ because: `attempt ${attempt} is not a claim this build can read`,
355
+ };
356
+ }
357
+ if (claim.attempt !== attempt) {
358
+ return {
359
+ ok: false,
360
+ transient: false,
361
+ because: `attempt ${attempt} holds a claim for attempt ${claim.attempt}`,
362
+ };
363
+ }
364
+ if (claim.requestId !== requestId) {
365
+ return {
366
+ ok: false,
367
+ transient: false,
368
+ because: `attempt ${attempt} holds a claim for another request`,
369
+ };
370
+ }
371
+ found.push(claim);
372
+ }
373
+ return { ok: true, claims: found };
374
+ }
375
+ /**
376
+ * What has become of this request, as something that must DECIDE reads it.
377
+ *
378
+ * The order of the questions is the safety argument, and it is not
379
+ * negotiable:
380
+ *
381
+ * A Run that demonstrably began outranks everything. Once `run.started` is
382
+ * durable no further attempt may ever be made, whatever the attempt history
383
+ * says and whichever process died — the work is happening, or it happened.
384
+ *
385
+ * A refusal the run itself made outranks the attempt history too. The run
386
+ * reached a decision; trying again would ask the same question of the same
387
+ * repository and get the same answer.
388
+ *
389
+ * Only then does whether anybody is still working matter.
390
+ */
391
+ async progress(requestId, outcomes) {
392
+ /**
393
+ * F38: THE RUN'S OWN CODED DECISION OUTRANKS ITS REGISTRATION RECEIPT. The start mark is written at
394
+ * REGISTRATION (run-cmd: "the honest instant") — before a goal-met Start reaches its verdict — and says
395
+ * of itself that "a refusal mark for the same request outranks this receipt". This read the other way:
396
+ * a run that registered and then refused `goal_satisfied` came back as merely "run-started", so the
397
+ * refusal — and with it the third key — was never consulted and the next Start was bought. MEASURED
398
+ * LIVE (LIVE-2, 2026-09-26): R3's goal-met Starts 2→3→4 and R2's 2→3 looped on `goal_satisfied`, and a
399
+ * `human_required` (DepIntent Start 5) was followed by another Start. Both answers still forbid a
400
+ * second attempt of THIS Start — no second executor over one tree. An UNCODED refusal still does not
401
+ * outrank a run that began.
402
+ */
403
+ if (outcomes.refusal !== null && outcomes.refusal.code !== undefined) {
404
+ return { kind: 'refused', code: outcomes.refusal.code, reason: outcomes.refusal.reason };
405
+ }
406
+ if (outcomes.startedRun !== null) {
407
+ return { kind: 'run-started', runId: outcomes.startedRun.runId };
408
+ }
409
+ // THE BUDGET IS THE LAUNCHES. Not the claims.
410
+ //
411
+ // A claim is written by the child, so counting claims counts only the
412
+ // children that reached the seam — and the whole failure this bound exists
413
+ // for is the one where nothing reaches it. Launches are written by the
414
+ // daemon before it spawns, so they count tries.
415
+ const spent = await this.launches(requestId);
416
+ if (!spent.ok) {
417
+ return spent.transient
418
+ ? { kind: 'unreadable', because: spent.because }
419
+ : { kind: 'corrupt', because: spent.because };
420
+ }
421
+ const read = await this.claims(requestId);
422
+ if (!read.ok) {
423
+ return read.transient
424
+ ? { kind: 'unreadable', because: read.because }
425
+ : { kind: 'corrupt', because: read.because };
426
+ }
427
+ const { claims } = read;
428
+ const { launches } = spent;
429
+ if (!outcomes.ordinalReserved) {
430
+ // The budget says nothing was spent. If anything WAS tried, the two
431
+ // records contradict each other and this is not the place to pick a
432
+ // winner. With no attempts either, there is simply nothing to run.
433
+ return launches.length === 0 && claims.length === 0
434
+ ? { kind: 'corrupt', because: 'this Start has no reserved ordinal behind it' }
435
+ : { kind: 'corrupt', because: 'attempts exist for a Start whose ordinal is not reserved' };
436
+ }
437
+ // A child that claimed a try nobody launched. Two records that cannot both
438
+ // be true, and picking a winner would either lose a try or invent one.
439
+ if (claims.length > launches.length) {
440
+ return {
441
+ kind: 'corrupt',
442
+ because: `attempt ${claims.length} was claimed but only ${launches.length} were launched`,
443
+ };
444
+ }
445
+ if (launches.length === 0)
446
+ return { kind: 'none', nextAttempt: 1 };
447
+ const latest = launches[launches.length - 1];
448
+ const claim = claims.find((c) => c.attempt === latest.launch.attempt) ?? null;
449
+ const nextOf = (attempt) => attempt >= exports.MAX_START_REQUEST_ATTEMPTS
450
+ ? { kind: 'exhausted', attempts: attempt }
451
+ : { kind: 'retryable', nextAttempt: attempt + 1, deadAttempt: attempt };
452
+ if (claim !== null) {
453
+ // A child got in. Its liveness is what decides, exactly as before: this
454
+ // is the process actually capable of doing the work.
455
+ const liveness = this.livenessOf(claim);
456
+ if (liveness !== 'dead') {
457
+ return { kind: 'active', attempt: claim.attempt, liveness, claim };
458
+ }
459
+ return nextOf(claim.attempt);
460
+ }
461
+ // A try was spent and no child ever crossed the seam. What may be concluded
462
+ // depends entirely on what the launcher managed to write down, and the one
463
+ // thing that must never be concluded is "no claim, therefore dead" — a
464
+ // detached child that is a millisecond from claiming would be overtaken by
465
+ // a second executor, which is the failure the seam exists to prevent.
466
+ const outcome = latest.spawn;
467
+ if (outcome === null) {
468
+ // The launcher has not reported yet. Either it is mid-spawn right now, or
469
+ // it died between reserving the try and learning what happened. Neither
470
+ // can be told from the other, and neither proves no child exists — so
471
+ // this waits. It cannot wait for ever: the try is already spent, the
472
+ // ceiling is three, and the grant's own clock ends it.
473
+ return {
474
+ kind: 'active',
475
+ attempt: latest.launch.attempt,
476
+ liveness: this.livenessOf({ ...latest.launch, claimedAt: latest.launch.at }),
477
+ claim: { ...latest.launch, claimedAt: latest.launch.at },
478
+ };
479
+ }
480
+ if (!outcome.spawned) {
481
+ // PROVEN: no child was ever created. The launcher said so before anything
482
+ // could have started. This is the case that used to leave no trace at all
483
+ // and spin for ever; it now costs exactly one of three tries.
484
+ return nextOf(latest.launch.attempt);
485
+ }
486
+ // A child was created and never claimed. Probe the child itself — its pid
487
+ // was written down for precisely this — and fail closed on anything but
488
+ // proven death.
489
+ const childHost = outcome.host;
490
+ const here = this.deps.host?.() ?? (0, node_os_1.hostname)();
491
+ const liveness = childHost !== here || outcome.pid === undefined ? 'unknown' : this.probe(outcome.pid);
492
+ if (liveness === 'dead')
493
+ return nextOf(latest.launch.attempt);
494
+ return {
495
+ kind: 'active',
496
+ attempt: latest.launch.attempt,
497
+ liveness,
498
+ claim: { ...latest.launch, claimedAt: latest.launch.at, pid: outcome.pid ?? latest.launch.pid },
499
+ };
500
+ }
501
+ /**
502
+ * Whether the process that made this claim is still about.
503
+ *
504
+ * A claim made on another machine is `unknown`, never `dead`: a pid means
505
+ * nothing off the host that issued it, and probing a local pid that happens
506
+ * to match somebody else's would be reading a stranger's process as evidence
507
+ * about ours.
508
+ */
509
+ livenessOf(claim) {
510
+ const here = this.deps.host?.() ?? (0, node_os_1.hostname)();
511
+ if (claim.host !== here)
512
+ return 'unknown';
513
+ return this.probe(claim.pid);
514
+ }
515
+ }
516
+ exports.StartAttempts = StartAttempts;
517
+ exports.nodeAttemptFs = {
518
+ ...ledger_store_1.nodeLedgerFs,
519
+ createExclusive: async (path, data) => {
520
+ const { writeFile } = await Promise.resolve().then(() => __importStar(require('node:fs/promises')));
521
+ await writeFile(path, data, { encoding: 'utf8', flag: 'wx' });
522
+ },
523
+ };
524
+ function readLaunch(text) {
525
+ let parsed;
526
+ try {
527
+ parsed = JSON.parse(text);
528
+ }
529
+ catch {
530
+ return null;
531
+ }
532
+ const file = parsed;
533
+ if (typeof file !== 'object' || file === null)
534
+ return null;
535
+ if (file.schema !== exports.START_ATTEMPTS_SCHEMA)
536
+ return null;
537
+ const l = file.launch;
538
+ if (typeof l !== 'object' || l === null)
539
+ return null;
540
+ if (typeof l['requestId'] !== 'string' || l['requestId'] === '')
541
+ return null;
542
+ if (typeof l['attempt'] !== 'number' || !Number.isInteger(l['attempt']))
543
+ return null;
544
+ if (typeof l['token'] !== 'string' || typeof l['host'] !== 'string')
545
+ return null;
546
+ if (typeof l['pid'] !== 'number' || !Number.isInteger(l['pid']))
547
+ return null;
548
+ if (typeof l['at'] !== 'string')
549
+ return null;
550
+ return l;
551
+ }
552
+ function readSpawn(text) {
553
+ let parsed;
554
+ try {
555
+ parsed = JSON.parse(text);
556
+ }
557
+ catch {
558
+ return null;
559
+ }
560
+ const file = parsed;
561
+ if (typeof file !== 'object' || file === null)
562
+ return null;
563
+ if (file.schema !== exports.START_ATTEMPTS_SCHEMA)
564
+ return null;
565
+ const s = file.spawn;
566
+ if (typeof s !== 'object' || s === null)
567
+ return null;
568
+ if (typeof s['spawned'] !== 'boolean')
569
+ return null;
570
+ if (typeof s['host'] !== 'string')
571
+ return null;
572
+ return s;
573
+ }
574
+ function readClaim(text) {
575
+ let parsed;
576
+ try {
577
+ parsed = JSON.parse(text);
578
+ }
579
+ catch {
580
+ return null;
581
+ }
582
+ const file = parsed;
583
+ if (typeof file !== 'object' || file === null)
584
+ return null;
585
+ if (file.schema !== exports.START_ATTEMPTS_SCHEMA)
586
+ return null;
587
+ const c = file.claim;
588
+ if (typeof c !== 'object' || c === null)
589
+ return null;
590
+ if (typeof c['requestId'] !== 'string' || c['requestId'] === '')
591
+ return null;
592
+ if (typeof c['attempt'] !== 'number' || !Number.isInteger(c['attempt']))
593
+ return null;
594
+ if (typeof c['token'] !== 'string' || typeof c['host'] !== 'string')
595
+ return null;
596
+ if (typeof c['pid'] !== 'number' || !Number.isInteger(c['pid']))
597
+ return null;
598
+ if (typeof c['claimedAt'] !== 'string')
599
+ return null;
600
+ return c;
601
+ }
602
+ /** The same shape the run lease uses, for the same reason. */
603
+ function randomToken() {
604
+ return (0, node_crypto_1.createHash)('sha256')
605
+ .update(`${process.pid}:${Date.now()}:${Math.random()}`)
606
+ .digest('hex')
607
+ .slice(0, 16);
608
+ }
609
+ /** Narrow a refusal mark's code without trusting it. */
610
+ function codeOf(mark) {
611
+ return mark && (0, core_1.isRunRefusalCode)(mark.code) ? mark.code : undefined;
612
+ }
613
+ //# sourceMappingURL=start-attempts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start-attempts.js","sourceRoot":"","sources":["../src/start-attempts.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+EA,wCAEC;AA8GD,wCAIC;AA4iBD,wBAEC;AAjvBD,6CAAyC;AACzC,qCAAmC;AACnC,uCAAqE;AACrE,2CAAqE;AACrE,iDAA6D;AAC7D,6CAA8D;AAE9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAEH,qFAAqF;AACxE,QAAA,qBAAqB,GAAG,CAAC,CAAC;AAEvC;;;;;;;;;;;;;GAaG;AACU,QAAA,0BAA0B,GAAG,CAAC,CAAC;AAE5C;;;;;;;GAOG;AACH,SAAgB,cAAc,CAAC,SAAiB,EAAE,OAAe;IAC/D,OAAO,GAAG,SAAS,YAAY,OAAO,EAAE,CAAC;AAC3C,CAAC;AAgGD;;;;;;;;;;;;;GAaG;AACH,SAAgB,cAAc,CAAC,SAAiB;IAC9C,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACxE,MAAM,MAAM,GAAG,IAAA,wBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAChF,OAAO,GAAG,QAAQ,IAAI,MAAM,EAAE,CAAC;AACjC,CAAC;AAgED,MAAa,aAAa;IAEL;IACA;IACA;IACA;IAJnB,YACmB,QAAgB,EAChB,EAAa,EACb,QAAiB,qBAAS,EAC1B,OAKb,EAAE;QARW,aAAQ,GAAR,QAAQ,CAAQ;QAChB,OAAE,GAAF,EAAE,CAAW;QACb,UAAK,GAAL,KAAK,CAAqB;QAC1B,SAAI,GAAJ,IAAI,CAKf;IACL,CAAC;IAEI,GAAG,CAAC,SAAiB;QAC3B,OAAO,GAAG,IAAI,CAAC,QAAQ,mBAAmB,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC;IACxE,CAAC;IAEO,IAAI,CAAC,SAAiB,EAAE,OAAe;QAC7C,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IAC3E,CAAC;IAED,yFAAyF;IACjF,UAAU,CAAC,SAAiB,EAAE,OAAe;QACnD,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC;IAClF,CAAC;IAED,wDAAwD;IAChD,SAAS,CAAC,SAAiB,EAAE,OAAe;QAClD,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,aAAa,CAAC;IACjF,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,aAAa,CACjB,SAAiB,EACjB,OAAe;QAEf,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,CAAC,IAAI,OAAO,GAAG,kCAA0B,EAAE,CAAC;YACtF,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,OAAO,iCAAiC,EAAE,CAAC;QACrF,CAAC;QACD,MAAM,MAAM,GAAgB;YAC1B,SAAS;YACT,OAAO;YACP,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,WAAW,EAAE;YAC3C,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,OAAO,CAAC,GAAG;YACrC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,IAAA,kBAAQ,GAAE;YACtC,EAAE,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,WAAW,EAAE;SAC5D,CAAC;QACF,MAAM,IAAI,GAAe,EAAE,MAAM,EAAE,6BAAqB,EAAE,MAAM,EAAE,CAAC;QACnE,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,EAAE,CAAC,eAAe,CAC3B,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,EACnC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CACrC,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAK,CAA2B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACnD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,OAAO,qCAAqC,EAAE,CAAC;YACzF,CAAC;YACD,MAAM,CAAC,CAAC;QACV,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC9B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,SAAS,CACb,SAAiB,EACjB,OAAe,EACf,OAA2C;QAE3C,MAAM,KAAK,GAAe;YACxB,SAAS;YACT,OAAO;YACP,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,GAAG,CAAC,OAAO,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;YAC1D,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,IAAA,kBAAQ,GAAE;YACtC,EAAE,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,WAAW,EAAE;SAC5D,CAAC;QACF,MAAM,IAAI,GAAc,EAAE,MAAM,EAAE,6BAAqB,EAAE,KAAK,EAAE,CAAC;QACjE,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,EAAE,CAAC,eAAe,CAC3B,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,OAAO,CAAC,EAClC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CACrC,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAK,CAA2B,CAAC,IAAI,KAAK,QAAQ;gBAAE,MAAM,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,QAAQ,CAAC,SAAiB;QAI9B,MAAM,KAAK,GAAwD,EAAE,CAAC;QACtE,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,kCAA0B,EAAE,OAAO,EAAE,EAAE,CAAC;YACvE,IAAI,IAAmB,CAAC;YACxB,IAAI,CAAC;gBACH,IAAI,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;YACrE,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,CAAC,GAAG,IAAA,4BAAe,EAAC,CAAC,EAAE,UAAU,OAAO,gBAAgB,CAAC,CAAC;gBAChE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAA,0BAAa,EAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;YACxE,CAAC;YACD,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAClB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACtB,SAAS;YACX,CAAC;YACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,SAAS,EAAE,KAAK;oBAChB,OAAO,EAAE,UAAU,OAAO,CAAC,CAAC,CAAC,6CAA6C,OAAO,OAAO;iBACzF,CAAC;YACJ,CAAC;YACD,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;YAChC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBACpB,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,SAAS,EAAE,KAAK;oBAChB,OAAO,EAAE,UAAU,OAAO,sCAAsC;iBACjE,CAAC;YACJ,CAAC;YACD,IAAI,MAAM,CAAC,OAAO,KAAK,OAAO,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBACjE,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,SAAS,EAAE,KAAK;oBAChB,OAAO,EAAE,UAAU,OAAO,oCAAoC;iBAC/D,CAAC;YACJ,CAAC;YACD,IAAI,SAAwB,CAAC;YAC7B,IAAI,CAAC;gBACH,SAAS,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;YACzE,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,CAAC,GAAG,IAAA,4BAAe,EAAC,CAAC,EAAE,yBAAyB,OAAO,EAAE,CAAC,CAAC;gBACjE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAA,0BAAa,EAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;YACxE,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAClF,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACvC,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,KAAK,CAAC,SAAiB,EAAE,OAAe;QAC5C,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,CAAC,IAAI,OAAO,GAAG,kCAA0B,EAAE,CAAC;YACtF,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,OAAO,iCAAiC,EAAE,CAAC;QACrF,CAAC;QACD,MAAM,KAAK,GAAsB;YAC/B,SAAS;YACT,OAAO;YACP,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,WAAW,EAAE;YAC3C,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,OAAO,CAAC,GAAG;YACrC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,IAAA,kBAAQ,GAAE;YACtC,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,WAAW,EAAE;SACnE,CAAC;QACF,MAAM,IAAI,GAAc,EAAE,MAAM,EAAE,6BAAqB,EAAE,KAAK,EAAE,CAAC;QACjE,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,EAAE,CAAC,eAAe,CAC3B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,EAC7B,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CACrC,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAK,CAA2B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACnD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,OAAO,mCAAmC,EAAE,CAAC;YACvF,CAAC;YACD,MAAM,CAAC,CAAC;QACV,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAC7B,CAAC;IAED,oEAAoE;IACpE,KAAK,CAAC,MAAM,CAAC,SAAiB;QAG5B,MAAM,KAAK,GAAwB,EAAE,CAAC;QACtC,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,kCAA0B,EAAE,OAAO,EAAE,EAAE,CAAC;YACvE,IAAI,IAAmB,CAAC;YACxB,IAAI,CAAC;gBACH,IAAI,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;YAC/D,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,uEAAuE;gBACvE,wEAAwE;gBACxE,+DAA+D;gBAC/D,MAAM,CAAC,GAAG,IAAA,4BAAe,EAAC,CAAC,EAAE,WAAW,OAAO,gBAAgB,CAAC,CAAC;gBACjE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAA,0BAAa,EAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;YACxE,CAAC;YACD,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAClB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACtB,SAAS;YACX,CAAC;YACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,wEAAwE;gBACxE,oEAAoE;gBACpE,yEAAyE;gBACzE,4BAA4B;gBAC5B,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,SAAS,EAAE,KAAK;oBAChB,OAAO,EAAE,WAAW,OAAO,CAAC,CAAC,CAAC,8CAA8C,OAAO,OAAO;iBAC3F,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;YAC9B,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACnB,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,SAAS,EAAE,KAAK;oBAChB,OAAO,EAAE,WAAW,OAAO,qCAAqC;iBACjE,CAAC;YACJ,CAAC;YACD,IAAI,KAAK,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;gBAC9B,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,SAAS,EAAE,KAAK;oBAChB,OAAO,EAAE,WAAW,OAAO,8BAA8B,KAAK,CAAC,OAAO,EAAE;iBACzE,CAAC;YACJ,CAAC;YACD,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBAClC,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,SAAS,EAAE,KAAK;oBAChB,OAAO,EAAE,WAAW,OAAO,oCAAoC;iBAChE,CAAC;YACJ,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IACrC,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,QAAQ,CAAC,SAAiB,EAAE,QAAyB;QACzD;;;;;;;;;;WAUG;QACH,IAAI,QAAQ,CAAC,OAAO,KAAK,IAAI,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACrE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QAC3F,CAAC;QACD,IAAI,QAAQ,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;YACjC,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACnE,CAAC;QAED,8CAA8C;QAC9C,EAAE;QACF,sEAAsE;QACtE,2EAA2E;QAC3E,uEAAuE;QACvE,gDAAgD;QAChD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;YACd,OAAO,KAAK,CAAC,SAAS;gBACpB,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE;gBAChD,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;QAClD,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,SAAS;gBACnB,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;gBAC/C,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;QACjD,CAAC;QACD,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACxB,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;QAE3B,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;YAC9B,oEAAoE;YACpE,oEAAoE;YACpE,mEAAmE;YACnE,OAAO,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;gBACjD,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,8CAA8C,EAAE;gBAC9E,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,0DAA0D,EAAE,CAAC;QAC/F,CAAC;QAED,2EAA2E;QAC3E,uEAAuE;QACvE,IAAI,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;YACpC,OAAO;gBACL,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,WAAW,MAAM,CAAC,MAAM,yBAAyB,QAAQ,CAAC,MAAM,gBAAgB;aAC1F,CAAC;QACJ,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;QAEnE,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC;QAC9C,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;QAC9E,MAAM,MAAM,GAAG,CAAC,OAAe,EAAmB,EAAE,CAClD,OAAO,IAAI,kCAA0B;YACnC,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE;YAC1C,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,GAAG,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;QAE5E,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,wEAAwE;YACxE,qDAAqD;YACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACxC,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;gBACxB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;YACrE,CAAC;YACD,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC;QAED,4EAA4E;QAC5E,2EAA2E;QAC3E,uEAAuE;QACvE,2EAA2E;QAC3E,sEAAsE;QACtE,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC;QAC7B,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,0EAA0E;YAC1E,wEAAwE;YACxE,sEAAsE;YACtE,qEAAqE;YACrE,uDAAuD;YACvD,OAAO;gBACL,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO;gBAC9B,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;gBAC5E,KAAK,EAAE,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE;aACzD,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACrB,0EAA0E;YAC1E,0EAA0E;YAC1E,8DAA8D;YAC9D,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC;QACD,0EAA0E;QAC1E,wEAAwE;QACxE,gBAAgB;QAChB,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,IAAA,kBAAQ,GAAE,CAAC;QAC9C,MAAM,QAAQ,GACZ,SAAS,KAAK,IAAI,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACxF,IAAI,QAAQ,KAAK,MAAM;YAAE,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC9D,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO;YAC9B,QAAQ;YACR,KAAK,EAAE,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;SAChG,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACK,UAAU,CAAC,KAAwB;QACzC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,IAAA,kBAAQ,GAAE,CAAC;QAC9C,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI;YAAE,OAAO,SAAS,CAAC;QAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;CACF;AA1ZD,sCA0ZC;AAQY,QAAA,aAAa,GAAc;IACtC,GAAG,2BAAY;IACf,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;QACpC,MAAM,EAAE,SAAS,EAAE,GAAG,wDAAa,kBAAkB,GAAC,CAAC;QACvD,MAAM,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAChE,CAAC;CACF,CAAC;AAEF,SAAS,UAAU,CAAC,IAAY;IAC9B,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,IAAI,GAAG,MAAoC,CAAC;IAClD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC3D,IAAI,IAAI,CAAC,MAAM,KAAK,6BAAqB;QAAE,OAAO,IAAI,CAAC;IACvD,MAAM,CAAC,GAAG,IAAI,CAAC,MAA6C,CAAC;IAC7D,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACrD,IAAI,OAAO,CAAC,CAAC,WAAW,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IAC7E,IAAI,OAAO,CAAC,CAAC,SAAS,CAAC,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACrF,IAAI,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACjF,IAAI,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7E,IAAI,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC7C,OAAO,CAA2B,CAAC;AACrC,CAAC;AAED,SAAS,SAAS,CAAC,IAAY;IAC7B,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,IAAI,GAAG,MAAmC,CAAC;IACjD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC3D,IAAI,IAAI,CAAC,MAAM,KAAK,6BAAqB;QAAE,OAAO,IAAI,CAAC;IACvD,MAAM,CAAC,GAAG,IAAI,CAAC,KAA4C,CAAC;IAC5D,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACrD,IAAI,OAAO,CAAC,CAAC,SAAS,CAAC,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACnD,IAAI,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC/C,OAAO,CAA0B,CAAC;AACpC,CAAC;AAED,SAAS,SAAS,CAAC,IAAY;IAC7B,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,IAAI,GAAG,MAAmC,CAAC;IACjD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC3D,IAAI,IAAI,CAAC,MAAM,KAAK,6BAAqB;QAAE,OAAO,IAAI,CAAC;IACvD,MAAM,CAAC,GAAG,IAAI,CAAC,KAA4C,CAAC;IAC5D,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACrD,IAAI,OAAO,CAAC,CAAC,WAAW,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IAC7E,IAAI,OAAO,CAAC,CAAC,SAAS,CAAC,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACrF,IAAI,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACjF,IAAI,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7E,IAAI,OAAO,CAAC,CAAC,WAAW,CAAC,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACpD,OAAO,CAAiC,CAAC;AAC3C,CAAC;AAED,8DAA8D;AAC9D,SAAS,WAAW;IAClB,OAAO,IAAA,wBAAU,EAAC,QAAQ,CAAC;SACxB,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;SACvD,MAAM,CAAC,KAAK,CAAC;SACb,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,wDAAwD;AACxD,SAAgB,MAAM,CAAC,IAA+B;IACpD,OAAO,IAAI,IAAI,IAAA,uBAAgB,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AACrE,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { type Status } from '@looply/core';
2
+ /**
3
+ * `looply status` — a one-screen snapshot read from `status.json` and nothing
4
+ * else (DESIGN §5.2). Not the ledger, not the queue: the projection is the
5
+ * contract, and it is the same file a phone polls. If it cannot answer a
6
+ * question the screen needs, the fix belongs in the projection, never in a
7
+ * side-channel read here that only the CLI would benefit from.
8
+ *
9
+ * Pure text-in, text-out; the filesystem and the clock stay in `bin.ts`.
10
+ */
11
+ /**
12
+ * The longest legal silence in a healthy run is one gate step running to its
13
+ * default timeout, so the stale window is that plus slack. DESIGN §12 case 25:
14
+ * a quiet run must read as STALE, not resting — a silent loop and a healthy
15
+ * one look identical otherwise.
16
+ */
17
+ export declare const STALE_AFTER_MS: number;
18
+ export interface RenderedStatus {
19
+ out: string;
20
+ code: number;
21
+ }
22
+ /**
23
+ * Shallow shape check only: the writer is our own `LedgerStore`, so this guard
24
+ * exists to catch a foreign or hand-edited file, not to re-validate our schema.
25
+ */
26
+ export declare function parseStatusFile(text: string): Status | null;
27
+ export declare function renderStatus(text: string | null, now: number): RenderedStatus;
28
+ //# sourceMappingURL=status-cmd.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status-cmd.d.ts","sourceRoot":"","sources":["../src/status-cmd.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqD,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAG9F;;;;;;;;GAQG;AAEH;;;;;GAKG;AACH,eAAO,MAAM,cAAc,QAAmC,CAAC;AAE/D,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AAMD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAW3D;AAkBD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,cAAc,CAkD7E"}