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,766 @@
1
+ import type { RunDelivery } from './run-refusal-marks';
2
+ import type { Attestation, Classification, CoverageKind, Disposition, RequirementCoverage, Source, SourceKind, SourceStatement } from '@looply/core';
3
+ import type { AnyEvent, Goal, GoalAutonomyState, GoalState, MachineSettlableState } from '@looply/core';
4
+ import type { IngestAck } from './uploader';
5
+ /**
6
+ * The machine's client for the looply server.
7
+ *
8
+ * Every failure here must be survivable: the server going away is a degraded
9
+ * experience, never a stopped run. A run that dies because a relay is down is
10
+ * strictly worse than one that keeps working and reports late.
11
+ */
12
+ export declare class ServerError extends Error {
13
+ readonly status: number;
14
+ readonly body?: unknown | undefined;
15
+ constructor(status: number, message: string, body?: unknown | undefined);
16
+ /** The token was revoked or expired. Retrying will not help. */
17
+ get isAuth(): boolean;
18
+ /** No response at all — offline, DNS, timeout. Worth retrying later. */
19
+ get isOffline(): boolean;
20
+ }
21
+ export type FetchLike = (url: string, init: {
22
+ method: string;
23
+ headers: Record<string, string>;
24
+ body?: string;
25
+ signal?: AbortSignal;
26
+ }) => Promise<{
27
+ status: number;
28
+ ok: boolean;
29
+ text(): Promise<string>;
30
+ }>;
31
+ export interface ServerClientOptions {
32
+ baseUrl: string;
33
+ token?: string;
34
+ fetch?: FetchLike;
35
+ timeoutMs?: number;
36
+ }
37
+ export declare class ServerClient {
38
+ private readonly opts;
39
+ private readonly baseUrl;
40
+ constructor(opts: ServerClientOptions);
41
+ withToken(token: string): ServerClient;
42
+ private request;
43
+ pairStart(machineName: string): Promise<{
44
+ pairCode: string;
45
+ qrPayload: string;
46
+ expiresAt: string;
47
+ machineId: string;
48
+ }>;
49
+ pairPoll(machineId: string): Promise<{
50
+ status: "pending" | "claimed";
51
+ machineToken?: string;
52
+ }>;
53
+ /**
54
+ * One heartbeat, and the cadence the SERVER wants back.
55
+ *
56
+ * 🔴 THIS TYPE USED TO SAY `{ ok: boolean; nextBeatS?: number }` AND BOTH
57
+ * FIELDS WERE INVENTED. The route returns `{ ttlS, refreshS }`, and
58
+ * `MachinesService` says why in its own words: "the cadence is server-owned,
59
+ * so tuning the TTL never requires shipping a new CLI."
60
+ *
61
+ * ⚠️ THAT PROPERTY DOES NOT CURRENTLY HOLD, AND THE WRONG TYPE IS WHY. The
62
+ * daemon paces itself on `DEFAULT_HEARTBEAT_MS = 15_000` (`daemon.ts`) and
63
+ * discards this response entirely — it could not have used `refreshS`,
64
+ * because the type it was handed did not name it. Correcting the type does not
65
+ * by itself wire the cadence up; it makes wiring it possible, and stops the
66
+ * next caller trusting two fields that never arrive.
67
+ *
68
+ * Found by `daemon-client-flagship.e2e.spec.ts` asking a real server, after
69
+ * two existing specs that inject a fake `fetch` had agreed with the client for
70
+ * as long as it had been wrong.
71
+ */
72
+ heartbeat(machineId: string, cliVersion: string): Promise<{
73
+ ttlS: number;
74
+ refreshS: number;
75
+ }>;
76
+ registerProject(input: {
77
+ machineId: string;
78
+ name: string;
79
+ repoPathHash: string;
80
+ }): Promise<{
81
+ project: {
82
+ id: string;
83
+ };
84
+ created: boolean;
85
+ }>;
86
+ postEvents(projectId: string, events: readonly AnyEvent[]): Promise<IngestAck>;
87
+ /**
88
+ * The effective settings for a project, each tagged with where it came from.
89
+ * `from: 'default'` means nobody chose it — see settings-overlay.ts for why
90
+ * that distinction is the whole safety of this feature.
91
+ */
92
+ projectSettings(projectId: string): Promise<{
93
+ settings: {
94
+ key: string;
95
+ value: unknown;
96
+ from: string;
97
+ }[];
98
+ }>;
99
+ /**
100
+ * The goals the server holds for a project.
101
+ *
102
+ * Read-only, and there is deliberately no create/amend counterpart here. The
103
+ * server is authoritative for goal intent — a person typed it on a phone that
104
+ * may be the only thing awake — so the machine mirrors it and never writes
105
+ * back. With no local writer there is no merge to get wrong.
106
+ *
107
+ * A machine token reaches this without holding a grant: the daemon is not a
108
+ * person, and project-access already lets a machine read its own projects.
109
+ */
110
+ /**
111
+ * The exemptions a person has granted on this project, unexpired.
112
+ *
113
+ * 🔴 THE SOURCE HALF OF A LINK THAT DID NOT EXIST. `looply run` wired neither
114
+ * a source of grants nor a sink for spent ones, so no grant ever reached a
115
+ * gate from a run: the gate's validity check, the core model, the server's
116
+ * grant and list routes and the commit trailer line were all built and tested
117
+ * around a door nothing could open.
118
+ *
119
+ * ⚠️ NO NEW BACKEND SEMANTICS. This is the route the phone already reads, and
120
+ * a MACHINE principal is already permitted on it — `ProjectAccessService`
121
+ * admits `principal.kind === 'machine'` when the machine owns the project.
122
+ * Nothing server-side changed to make this possible.
123
+ *
124
+ * Project-scoped by construction, so a grant cannot cross into another
125
+ * project: the id in the path is the only project this answers for.
126
+ */
127
+ projectExemptions(projectId: string): Promise<{
128
+ exemptions: ServerExemption[];
129
+ }>;
130
+ projectGoals(projectId: string): Promise<{
131
+ goals: Goal[];
132
+ }>;
133
+ /**
134
+ * Set a goal, from the machine that holds the repository.
135
+ *
136
+ * The same route the phone posts to, with the same validators — there is no
137
+ * second goal-creation path, and adding one would mean two answers to what a
138
+ * goal is allowed to be. The server derives `createdBy` from the token and
139
+ * records a machine as a machine; nothing here may claim to be a person.
140
+ *
141
+ * ⚠️ IDEMPOTENT ON `clientRef` WITHIN THE PROJECT, and the answer says which
142
+ * happened. A caller that retries after a timeout must read `deduplicated`
143
+ * rather than assume it made a second goal — the field exists because
144
+ * inferring it from a status code is how a client ends up believing it did.
145
+ */
146
+ createGoal(projectId: string, input: {
147
+ clientRef: string;
148
+ text: string;
149
+ dependsOn?: readonly string[];
150
+ surfaces?: readonly string[];
151
+ requirements?: readonly {
152
+ sourceId: string;
153
+ ordinal: number;
154
+ }[];
155
+ }): Promise<{
156
+ goal: Goal;
157
+ deduplicated: boolean;
158
+ }>;
159
+ /**
160
+ * Hand a document to a project, from the machine that holds it.
161
+ *
162
+ * The server keys this on the content's sha256 AND on `clientRef`; the CLI
163
+ * derives the key from the sha, so the same file twice is the same request
164
+ * twice and the answer says `deduplicated`. Admitted for the project this
165
+ * machine drives, and refused for any other.
166
+ */
167
+ createSource(projectId: string, input: {
168
+ clientRef: string;
169
+ name: string;
170
+ kind: SourceKind;
171
+ /** The document, for the text kinds. */
172
+ content?: string;
173
+ /** The text layer page by page, for a pdf — read here, on the machine that holds the file. */
174
+ pages?: {
175
+ page: number;
176
+ text: string;
177
+ }[];
178
+ /** For a pdf: the sha256 of the file the pages came from. */
179
+ originSha256?: string;
180
+ }): Promise<{
181
+ source: Source;
182
+ statements: SourceStatement[];
183
+ deduplicated: boolean;
184
+ }>;
185
+ /**
186
+ * What the items of one goal CLAIM to serve, and which gate step each claim
187
+ * says would prove it.
188
+ *
189
+ * ⚠️ CLAIMS, NOT COVERAGE. `requirementReceipts` decides what a receipt may
190
+ * speak for, here on the machine, because deciding it needs the gate record
191
+ * of the tree being judged and the server has never seen one.
192
+ */
193
+ goalServings(projectId: string, goalId: string): Promise<{
194
+ servings: ServingRow[];
195
+ }>;
196
+ /** One source, verbatim, with its anchored statements, what each one IS, and where each requirement stands. */
197
+ sourceDetail(projectId: string, sourceId: string): Promise<{
198
+ source: Source;
199
+ statements: SourceStatement[];
200
+ classifications: Classification[];
201
+ classifierVersion: number | null;
202
+ dispositions: Disposition[];
203
+ reconciledAt: {
204
+ treeSha: string;
205
+ reconcilerVersion: number;
206
+ createdAt: string;
207
+ } | null;
208
+ /** What people attested. The daemon reads these; it can never write one (a machine token is refused). */
209
+ attestations: Attestation[];
210
+ }>;
211
+ /** What is covered and by whom, for one source — a read the machine may make about its own project. */
212
+ coverage(projectId: string, sourceId: string): Promise<{
213
+ sourceId: string;
214
+ name: string;
215
+ reconciledAt: {
216
+ treeSha: string;
217
+ reconcilerVersion: number;
218
+ createdAt: string;
219
+ } | null;
220
+ requirements: RequirementCoverage[];
221
+ tally: Record<CoverageKind, number>;
222
+ }>;
223
+ /**
224
+ * Record where each requirement stands against the repository, as measured
225
+ * HERE against this machine's project index at HEAD's tree. The server
226
+ * stores it verbatim, once per (tree, version); the same tree again answers
227
+ * the rows on record. Admitted for the project this machine drives.
228
+ */
229
+ reconcileSource(projectId: string, sourceId: string, input: {
230
+ treeSha: string;
231
+ reconcilerVersion: number;
232
+ dispositions: Disposition[];
233
+ }): Promise<{
234
+ dispositions: Disposition[];
235
+ treeSha: string;
236
+ reconcilerVersion: number;
237
+ created: boolean;
238
+ }>;
239
+ /**
240
+ * Raise a structured question, and get the row back so the asker knows its id.
241
+ *
242
+ * 🔴 THE ROUTE EXISTED FROM THE START AND NOTHING EVER CALLED IT. `config.ts`
243
+ * has warned since M6-20 that `on_partial: ask` — the DEFAULT — could not ask,
244
+ * so a partial proof was discarded with a log line while the server held the
245
+ * whole mechanism: options, a default, a deadline, first-answer-wins under a
246
+ * Redis claim, and a sweep that defaults through the very path a person takes.
247
+ *
248
+ * ⚠️ MACHINE-ONLY AT THE SERVER, AND FOR THE REASON THE CONTROLLER GIVES: a
249
+ * question is a prompt a person is asked to authorise something, and being
250
+ * able to write to that inbox from outside the machine is the whole attack.
251
+ */
252
+ askQuestion(input: {
253
+ projectId: string;
254
+ runId?: string;
255
+ kind: string;
256
+ text: string;
257
+ options: readonly string[];
258
+ default: string;
259
+ deadline: string;
260
+ }): Promise<ServerQuestion>;
261
+ /**
262
+ * One question of one project, answered or not.
263
+ *
264
+ * 🔴 `listOpen` DROPS AN ANSWERED QUESTION, so a loop watching that list saw
265
+ * its own question vanish and never learned which way it went. §6.C asks for
266
+ * an answer that *"can resume exact work"*, and exact work needs the answer
267
+ * rather than its absence.
268
+ *
269
+ * ⚠️ NOT `question()`, AND THE NAME IS NOT AN ACCIDENT. `client-reachability`
270
+ * decides “does a consumer exist” by searching for `.<name>(` across the CLI,
271
+ * which cannot see WHICH object is being called — and readline's asker has a
272
+ * `.question(` in two files. A client method called `question` would have read
273
+ * as called for ever, by nothing.
274
+ */
275
+ questionById(projectId: string, questionId: string): Promise<{
276
+ question: ServerQuestion;
277
+ }>;
278
+ /** What a project has been given, newest first, without content. */
279
+ /**
280
+ * Every session-control grant this project has issued.
281
+ *
282
+ * 🔴 A READER, AND DELIBERATELY NO ISSUER. `session-grants.controller.ts`
283
+ * stamps `createdBy` from the TOKEN's principal and refuses a caller without a
284
+ * device token, so a machine that posted here would be recorded as the
285
+ * authorizer of its own authority. Issuing is a person's act; this reads the
286
+ * result of one.
287
+ */
288
+ sessionGrants(projectId: string): Promise<{
289
+ grants: ServerSessionGrant[];
290
+ }>;
291
+ /**
292
+ * Record that a session acknowledged a grant, and through which channel.
293
+ *
294
+ * ⚠️ THE CHANNEL IS CLAIMED, NOT PROVED, WHICH IS WHY IT IS RECORDED RATHER
295
+ * THAN TRUSTED. A session's adapter and a person's terminal hold the same
296
+ * device token — a token says which DEVICE spoke, never which program.
297
+ * `controlVerdict` in core then refuses anything that is not `adapter`, which
298
+ * turns a person's attempt into a fact on the record instead of an inference
299
+ * nobody can check.
300
+ */
301
+ acknowledgeSessionGrant(projectId: string, grantId: string, ack: {
302
+ handshakeNonce: string;
303
+ sessionId: string;
304
+ workspace: string;
305
+ repositoryId: string;
306
+ scope: readonly string[];
307
+ via: 'adapter' | 'operator';
308
+ }): Promise<{
309
+ grant: ServerSessionGrant;
310
+ }>;
311
+ /**
312
+ * Write the effect of an approved `goal.depends`, as the machine carrying it out.
313
+ *
314
+ * 🔴 THIS REPLACES A METHOD THAT COULD NEVER WORK FROM HERE. It sent
315
+ * `PATCH /goals/:goalId` — a PERSON's route — with this client's MACHINE
316
+ * token, and the server refused it every time (403, measured 2026-09-24).
317
+ * This client is only ever a machine's, so a method on it that needs a
318
+ * device token is a method with no caller that can succeed. The governed
319
+ * route admits the machine only for an execution it began, still
320
+ * executing, whose server-held action is exactly this edge; the body is
321
+ * checked against that action, never trusted.
322
+ */
323
+ applyGovernedGoalEdge(projectId: string, executionId: string, edge: {
324
+ goalId: string;
325
+ version: number;
326
+ dependsOn: readonly string[];
327
+ }): Promise<{
328
+ goal: Goal;
329
+ }>;
330
+ sources(projectId: string): Promise<{
331
+ sources: Omit<Source, "content">[];
332
+ }>;
333
+ /**
334
+ * What the server believes about a goal's pursuits, newest first.
335
+ *
336
+ * RECONCILIATION. This machine holds grants in its own store, and the server
337
+ * can end one without telling it: a person taps Stop, or the goal is edited
338
+ * and the grant is superseded. Without a way to read back, a machine would go
339
+ * on spending Starts against a permission that had been withdrawn -- and the
340
+ * person who withdrew it would watch it keep working.
341
+ *
342
+ * A machine token reaches this without holding a grant, the same way it reads
343
+ * the goal mirror: project-access lets a machine read its own project. That
344
+ * one route serves the phone and the daemon, which is why it had to declare a
345
+ * read policy -- guarded and declaring none, it was Forbidden to both.
346
+ */
347
+ goalAutonomy(projectId: string, goalId: string): Promise<{
348
+ autonomy: ServerAutonomy[];
349
+ /** The goal as it stands NOW. Null when the server has no such goal. */
350
+ goal: {
351
+ version: number;
352
+ state: GoalState;
353
+ } | null;
354
+ }>;
355
+ /**
356
+ * Say where a pursuit came to rest.
357
+ *
358
+ * The server knows it authorized one; only this machine knows whether the
359
+ * goal was met, whether a person is needed, or whether the budget ran out.
360
+ *
361
+ * BY CONTROLLER ID, not by goal and version. Since re-authorization began
362
+ * minting generations, C1 and C2 can both be G@8 — and a stale report from a
363
+ * dead generation addressed by goal would land on the grant a person had just
364
+ * created, ending their fresh night with a conclusion about a different one.
365
+ *
366
+ * `version` is the OCC token from the read above and is not optional: a
367
+ * person may have stopped the pursuit while this machine was deciding, and a
368
+ * report that lost that race must be told rather than allowed to rewrite
369
+ * their ending as "the machine finished".
370
+ *
371
+ * The state is narrowed to what a machine can PROVE about itself.
372
+ * `cancelled` is not in that set: it means a person stopped this, and the
373
+ * machine does not get to say so.
374
+ */
375
+ settleGoalAutonomy(projectId: string, controllerId: string,
376
+ /** `delivery` (L4b): what key 2 confirmed, on a `satisfied` settle only. */
377
+ input: {
378
+ version: number;
379
+ state: MachineSettlableState;
380
+ reason?: string;
381
+ delivery?: RunDelivery;
382
+ }): Promise<{
383
+ autonomy: ServerAutonomy;
384
+ }>;
385
+ /**
386
+ * Ask for an exact action to be approved, and never twice.
387
+ *
388
+ * IDEMPOTENT ON `clientRef`, which is what makes this callable from a machine
389
+ * that cannot tell a lost response from a lost request. The server answers
390
+ * the same row for the same key and says, in `deduplicated`, which of the two
391
+ * happened — so a retry after a timeout recovers the approval that already
392
+ * exists instead of raising a second one nobody asked for.
393
+ *
394
+ * `context` says which pursuit is asking. The machine names it from its own
395
+ * trusted run context and the server checks every part against the database;
396
+ * nothing here is taken on trust, which is why this method does not validate
397
+ * it either. Composing the URL and parsing the reply is the whole job.
398
+ *
399
+ * There is deliberately no counterpart that decides one. A machine that could
400
+ * answer its own request is a machine nobody is supervising.
401
+ */
402
+ createApproval(projectId: string, input: {
403
+ clientRef: string;
404
+ actionRequest: unknown;
405
+ context?: {
406
+ goalId: string;
407
+ goalVersion: number;
408
+ originRunId?: string;
409
+ originItemId?: string;
410
+ };
411
+ validForMs?: number;
412
+ }): Promise<{
413
+ approval: ServerApproval;
414
+ deduplicated: boolean;
415
+ }>;
416
+ /**
417
+ * What the server says about a pursuit's approvals, right now.
418
+ *
419
+ * READ AT DECISION TIME, NEVER KEPT. This is the opposite of `ServerApproval`
420
+ * above and the reason the two types exist: that one is identity, checked
421
+ * once at creation and true for ever; this one is state, true only at the
422
+ * instant it was read. Between one tick and the next a person may approve,
423
+ * deny or revoke, so an answer to this question is worth exactly one
424
+ * decision and is never a fact to store.
425
+ *
426
+ * NARROWED TO ONE PURSUIT AND ONE VERSION, because that is the only question
427
+ * a controller has. An approval raised for version 4 was approved for wording
428
+ * that no longer exists; it cannot be claimed and must not hold version 5.
429
+ *
430
+ * `state` here is what the row SAYS, not necessarily what it means: the
431
+ * server settles expiry when a single approval is read and this route does
432
+ * not, so a window that closed an hour ago still comes back `requested`.
433
+ * `deriveApprovalGate` applies the clock. Do not read `state` directly.
434
+ */
435
+ projectApprovals(projectId: string, goal: {
436
+ goalId: string;
437
+ goalVersion: number;
438
+ }, limit?: number): Promise<ServerApprovalRow[]>;
439
+ /**
440
+ * One approval, as the server holds it now.
441
+ *
442
+ * ASKED ONCE, WHEN A RUN IS RESUMING, and never in a loop. Unlike the list
443
+ * above, reading a single approval SETTLES it: the server closes a window
444
+ * that has passed before answering, so a person is never shown authority that
445
+ * has run out. That is exactly what a resuming run wants and exactly what a
446
+ * polling caller must not do.
447
+ */
448
+ projectApproval(projectId: string, approvalId: string): Promise<ServerApprovalRow>;
449
+ /**
450
+ * TRANSPORT FOR THE GOVERNED PATH, AND ONLY TRANSPORT.
451
+ *
452
+ * Until 7B5 this file was asserted to contain no claim vocabulary at all, and
453
+ * that assertion was right for a phase where nothing could carry an action
454
+ * out. What it was really protecting is that a HOLD, a RESUME or a GATE never
455
+ * goes near a claim — and those files still do not. The guard is re-aimed
456
+ * rather than dropped, and the list it now covers is the one that matters:
457
+ * `run-approval`, `round-runner`, `pending-action`, `run-cmd` and every file
458
+ * on the autonomy path stay claim-free, and the vocabulary lives here and in
459
+ * the two purpose-built governed modules.
460
+ *
461
+ * Nothing below decides anything. Each one composes a URL and parses a reply;
462
+ * every predicate about whether the thing may happen is the server's.
463
+ */
464
+ /**
465
+ * Take the execution authority an owner granted.
466
+ *
467
+ * `claimRef` is derived from the durable Start reservation, never chosen here
468
+ * and never derived from a run — a recovering process must be able to present
469
+ * the identical key and reach the server's idempotent arm.
470
+ */
471
+ claimApproval(projectId: string, approvalId: string, input: {
472
+ claimRef: string;
473
+ expectedFingerprint: string;
474
+ expectedVersion: number;
475
+ }): Promise<ServerApprovalRow & {
476
+ claimId: string | null;
477
+ version: number;
478
+ }>;
479
+ /**
480
+ * Turn a claim into the one execution it authorises, and be told what to do.
481
+ *
482
+ * The reply is the SERVER's envelope. The action inside it is the stored,
483
+ * re-verified one — this machine sends a digest saying what it believes it is
484
+ * executing and never an action of its own.
485
+ */
486
+ beginExecution(projectId: string, approvalId: string, input: {
487
+ claimId: string;
488
+ expectedFingerprint: string;
489
+ }): Promise<ServerExecutionEnvelope>;
490
+ /** What came of the attempt. Recorded once, against this exact execution. */
491
+ settleExecution(projectId: string, executionId: string, input: {
492
+ claimId: string;
493
+ expectedVersion: number;
494
+ expectedFingerprint: string;
495
+ outcome: 'success' | 'failure' | 'ambiguous';
496
+ reason?: string;
497
+ evidence?: Record<string, string | number | boolean>;
498
+ }): Promise<ServerExecution>;
499
+ /** Take ownership of delivering a settled result. Exactly one run may. */
500
+ assignExecutionResult(projectId: string, executionId: string, runId: string): Promise<ServerExecution>;
501
+ /** Say the result was received. Only the owning run may, and only once. */
502
+ acknowledgeExecutionResult(projectId: string, executionId: string, runId: string): Promise<ServerExecution>;
503
+ popCommands(machineId: string): Promise<{
504
+ commands: ServerCommand[];
505
+ }>;
506
+ /**
507
+ * Report a command finished. `refused` is as final as `done`: it tells the
508
+ * server this build will never carry the verb out, so it stops being handed
509
+ * back on every poll.
510
+ */
511
+ ackCommand(commandId: string, outcome?: 'done' | 'refused', reason?: string): Promise<{
512
+ id: string;
513
+ alreadyAcked: boolean;
514
+ }>;
515
+ }
516
+ /**
517
+ * An approval as the server reports it back, narrowed to what a machine may act on.
518
+ *
519
+ * FIVE FIELDS AND NO DECISION. The server's own view of an approval carries a
520
+ * dozen more — the state, the version, who decided it, when the window closes —
521
+ * and every one of them is a fact that is only true at the instant it was read.
522
+ * A machine that held them would be a machine that could believe an approval
523
+ * was still granted after somebody revoked it.
524
+ *
525
+ * What is here is the opposite: identity, and the context the row was filed
526
+ * under. None of it changes for the life of the row, so a machine comparing
527
+ * these against what it asked for is asking a question that has one answer for
528
+ * ever — did the server store MY request, or somebody else's?
529
+ */
530
+ /**
531
+ * A granted exemption exactly as the server sends it.
532
+ *
533
+ * ⚠️ NOT the core `Exemption`. The server records a DECISION — granted or
534
+ * refused, by whom, until when — and has no `usedInRound`, because a grant is
535
+ * spent on commit and the commit trailer is the durable record of that. The
536
+ * mapping into the core model is `run-cmd`'s job, and it is where `usedInRound`
537
+ * is filled from this machine's own spend store.
538
+ */
539
+ /**
540
+ * A grant as the server holds it.
541
+ *
542
+ * ⚠️ THE SAME SHAPE AS `SessionControlGrant` IN CORE, MINUS `machineId`,
543
+ * which the server does not carry: a grant is about a SESSION in a PROJECT, and
544
+ * which machine asks about it is the asker's question. `controlVerdict` compares
545
+ * `asking.machineId` against the grant's, so the transport supplies its own —
546
+ * and supplying it there rather than reading it from the wire is the point: a
547
+ * machine cannot be told by a server which machine it is.
548
+ */
549
+ /**
550
+ * A question as the server holds it.
551
+ *
552
+ * ⚠️ `deadline` AND `answeredAt` ARE STRINGS HERE. They are `Date` columns and
553
+ * the route serialises them; typing them as `Date` would be the class of defect
554
+ * the three flagship specs exist to catch — a declared shape no real response
555
+ * ever had.
556
+ */
557
+ /**
558
+ * One claim as the server sends it: FLAT, one row per requirement, carrying
559
+ * the item that made it.
560
+ *
561
+ * 🔴 DELIBERATELY NOT `ItemServing` FROM CORE, which groups a whole item's
562
+ * claims. The two shapes are different on purpose — the wire says what was
563
+ * stored, row by row, and the fold takes them grouped — and sharing one name
564
+ * for both would make a regrouping bug look like a type that already agreed.
565
+ */
566
+ export interface ServingRow {
567
+ itemId: string;
568
+ sourceId: string;
569
+ ordinal: number;
570
+ row?: number;
571
+ /** A gate step name, from the machine's own `config.gates`. */
572
+ provenBy: string;
573
+ }
574
+ export interface ServerQuestion {
575
+ readonly id: string;
576
+ readonly projectId: string;
577
+ readonly runId: string | null;
578
+ readonly kind: string;
579
+ readonly text: string;
580
+ readonly options: readonly string[];
581
+ readonly default: string;
582
+ readonly deadline: string;
583
+ readonly answer: string | null;
584
+ readonly answeredBy: string | null;
585
+ readonly answeredAt: string | null;
586
+ }
587
+ export interface ServerSessionGrant {
588
+ id: string;
589
+ issuedBy: string;
590
+ projectId: string;
591
+ sessionId: string;
592
+ repositoryId: string;
593
+ workspace: string;
594
+ scope: string[];
595
+ handshakeNonce: string;
596
+ issuedAt: string;
597
+ expiresAt: string;
598
+ state: 'authorized' | 'revoked' | 'expired';
599
+ generation: number;
600
+ /** The optimistic-concurrency token; see core's note on why it is on the view. */
601
+ version: number;
602
+ }
603
+ export interface ServerExemption {
604
+ id: string;
605
+ projectId: string;
606
+ itemId: string;
607
+ path: string;
608
+ decision: string;
609
+ actor: string;
610
+ reason: string | null;
611
+ /** ISO. `listGranted` already excludes a null or past expiry. */
612
+ expiresAt: string | null;
613
+ at: string;
614
+ }
615
+ export interface ServerApproval {
616
+ id: string;
617
+ projectId: string;
618
+ actionFingerprint: string;
619
+ goalId: string | null;
620
+ goalVersion: number | null;
621
+ originRunId: string | null;
622
+ originItemId: string | null;
623
+ }
624
+ /**
625
+ * An approval as the server reports it in a LIST, for one decision.
626
+ *
627
+ * Distinct from `ServerApproval` on purpose, and the split is the point.
628
+ * `ServerApproval` is identity — did the server store MY request — and every
629
+ * field on it is immutable, so comparing it is a question with one answer for
630
+ * ever. This is the opposite: it carries what a person has DONE, which is true
631
+ * only at the instant it was read, and it exists to be consumed by one
632
+ * decision and then dropped.
633
+ *
634
+ * `state` is a plain string rather than the union, because the server may know
635
+ * a word this build does not — and `deriveApprovalGate` refuses an unfamiliar
636
+ * one rather than a parser silently widening it.
637
+ */
638
+ export interface ServerApprovalRow {
639
+ id: string;
640
+ projectId: string;
641
+ state: string;
642
+ /** ISO. When the window closes, as the SERVER stamped it. */
643
+ expiresAt: string;
644
+ goalId: string | null;
645
+ goalVersion: number | null;
646
+ originRunId: string | null;
647
+ actionType: string;
648
+ actionFingerprint: string;
649
+ /**
650
+ * One line a person could be shown, from 7B1's own formatter.
651
+ *
652
+ * The ONE description authority. A resumed run tells its model what was
653
+ * refused using this string and never a second wording of its own, so what
654
+ * the model is told and what the person was shown cannot drift.
655
+ */
656
+ display: string;
657
+ /** The owner's own words about their decision. Never authority. */
658
+ decisionNote: string | null;
659
+ /**
660
+ * The row's OCC token, required to claim it.
661
+ *
662
+ * On the LIST as well as the detail, because the gate reads the list and a
663
+ * governed Start has to claim what the gate found without a second round trip
664
+ * that could see a different row.
665
+ */
666
+ version: number;
667
+ /** Set once execution authority has been taken. Never a result. */
668
+ claimId: string | null;
669
+ /**
670
+ * The one attempt made under this approval's claim, if any.
671
+ *
672
+ * Present on the list so the gate can tell `claimed with nothing attempted`
673
+ * from `carrying out` from `settled and undelivered` in one read. Narrow on
674
+ * purpose: no evidence, no reason, nothing a caller could branch on beyond
675
+ * what the gate needs.
676
+ */
677
+ execution: {
678
+ state: string;
679
+ resultAssignedRunId: string | null;
680
+ acknowledged: boolean;
681
+ /**
682
+ * Whether a PERSON settled what the machine could not. Optional because an
683
+ * older server does not send it, and `executionOf` reads its absence as
684
+ * `false` — the safe direction, since reading silence as `true` would free
685
+ * a pursuit nobody has dealt with.
686
+ */
687
+ resolved?: boolean;
688
+ } | null;
689
+ }
690
+ /**
691
+ * WHAT THE SERVER SAYS AN EXECUTION IS.
692
+ *
693
+ * Distinct from the envelope below in the same way `ServerApprovalRow` is
694
+ * distinct from `ServerApproval`: this is state, true only at the instant it
695
+ * was read.
696
+ */
697
+ export interface ServerExecution {
698
+ id: string;
699
+ projectId: string;
700
+ approvalId: string;
701
+ claimId: string;
702
+ machineId: string;
703
+ actionFingerprint: string;
704
+ state: string;
705
+ version: number;
706
+ startedAt: string;
707
+ settledAt: string | null;
708
+ outcomeReason: string | null;
709
+ evidence: unknown;
710
+ resultAssignedRunId: string | null;
711
+ resultAcknowledgedAt: string | null;
712
+ }
713
+ /**
714
+ * THE ONE THING A BROKER MAY ACT ON, BUILT BY THE SERVER.
715
+ *
716
+ * `actionRequest` is the stored canonical payload, re-parsed and re-verified
717
+ * against the fingerprint a person approved. This machine never assembles one:
718
+ * it sends a digest saying what it believes it is executing and is told what is
719
+ * actually held.
720
+ */
721
+ export interface ServerExecutionEnvelope {
722
+ executionId: string;
723
+ approvalId: string;
724
+ claimId: string;
725
+ projectId: string;
726
+ machineId: string;
727
+ actionFingerprint: string;
728
+ actionRequest: unknown;
729
+ actionType: string;
730
+ display: string;
731
+ executionVersion: number;
732
+ executionState: string;
733
+ }
734
+ /**
735
+ * One act of permission, as the server reports it.
736
+ *
737
+ * `state` is a closed union on the wire. A value this build does not know is
738
+ * reported by the SERVER as `human_required` rather than passed through, so a
739
+ * machine never has to guess what an unfamiliar ending meant.
740
+ */
741
+ export interface ServerAutonomy {
742
+ controllerId: string;
743
+ goalId: string;
744
+ goalVersion: number;
745
+ /** Which act of permission this was within the version. Newest first. */
746
+ generation: number;
747
+ state: GoalAutonomyState;
748
+ reason: string | null;
749
+ maxStarts: number;
750
+ expiresAt: string;
751
+ /** OCC token. Required by `settleGoalAutonomy`, and not optional there. */
752
+ version: number;
753
+ createdBy: string;
754
+ createdAt: string;
755
+ }
756
+ export type ServerCommandKind = 'pause' | 'resume' | 'stop' | 'skip' | 'scan' | 'start-run' | 'approve' | 'undo' | 'release-goal-items'
757
+ /** One person's explicit, bounded permission to keep going. NOT a start-run. */
758
+ | 'authorize-goal-autonomy';
759
+ export interface ServerCommand {
760
+ id: string;
761
+ projectId: string;
762
+ kind: ServerCommandKind;
763
+ payload?: unknown;
764
+ actor: string;
765
+ }
766
+ //# sourceMappingURL=server-client.d.ts.map