approval-md 0.3.0 → 0.4.1

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 (270) hide show
  1. package/README.md +83 -914
  2. package/SPEC.md +101 -13
  3. package/cli.js +134 -7
  4. package/dist/src/adapters/smtp.d.ts +18 -0
  5. package/dist/src/adapters/smtp.js +24 -3
  6. package/dist/src/adapters/smtp.js.map +1 -1
  7. package/dist/src/channels/contract.d.ts +72 -0
  8. package/dist/src/channels/contract.js +161 -1
  9. package/dist/src/channels/contract.js.map +1 -1
  10. package/dist/src/channels/relay-server.d.ts +90 -0
  11. package/dist/src/channels/relay-server.js +295 -0
  12. package/dist/src/channels/relay-server.js.map +1 -0
  13. package/dist/src/channels/relay.d.ts +273 -0
  14. package/dist/src/channels/relay.js +564 -0
  15. package/dist/src/channels/relay.js.map +1 -0
  16. package/dist/src/channels/tagging.d.ts +25 -0
  17. package/dist/src/channels/tagging.js +63 -6
  18. package/dist/src/channels/tagging.js.map +1 -1
  19. package/dist/src/channels/telegram-minimal.d.ts +251 -0
  20. package/dist/src/channels/telegram-minimal.js +618 -0
  21. package/dist/src/channels/telegram-minimal.js.map +1 -0
  22. package/dist/src/channels/telegram-webhook.d.ts +273 -0
  23. package/dist/src/channels/telegram-webhook.js +536 -0
  24. package/dist/src/channels/telegram-webhook.js.map +1 -0
  25. package/dist/src/channels/telegram.d.ts +725 -20
  26. package/dist/src/channels/telegram.js +1332 -123
  27. package/dist/src/channels/telegram.js.map +1 -1
  28. package/dist/src/cli/amend.js +358 -5
  29. package/dist/src/cli/amend.js.map +1 -1
  30. package/dist/src/cli/attest.js +43 -6
  31. package/dist/src/cli/attest.js.map +1 -1
  32. package/dist/src/cli/audit-card.d.ts +1 -1
  33. package/dist/src/cli/audit-card.js +40 -1
  34. package/dist/src/cli/audit-card.js.map +1 -1
  35. package/dist/src/cli/audit.d.ts +7 -5
  36. package/dist/src/cli/audit.js +22 -10
  37. package/dist/src/cli/audit.js.map +1 -1
  38. package/dist/src/cli/channel-relay.d.ts +108 -0
  39. package/dist/src/cli/channel-relay.js +334 -0
  40. package/dist/src/cli/channel-relay.js.map +1 -0
  41. package/dist/src/cli/channel-telegram-webhook.d.ts +275 -0
  42. package/dist/src/cli/channel-telegram-webhook.js +716 -0
  43. package/dist/src/cli/channel-telegram-webhook.js.map +1 -0
  44. package/dist/src/cli/channel-telegram.d.ts +347 -28
  45. package/dist/src/cli/channel-telegram.js +648 -56
  46. package/dist/src/cli/channel-telegram.js.map +1 -1
  47. package/dist/src/cli/channel.d.ts +1 -1
  48. package/dist/src/cli/channel.js +5 -1
  49. package/dist/src/cli/channel.js.map +1 -1
  50. package/dist/src/cli/daemon.js +37 -5
  51. package/dist/src/cli/daemon.js.map +1 -1
  52. package/dist/src/cli/doctor.d.ts +63 -0
  53. package/dist/src/cli/doctor.js +856 -111
  54. package/dist/src/cli/doctor.js.map +1 -1
  55. package/dist/src/cli/execute.d.ts +29 -1
  56. package/dist/src/cli/execute.js +387 -21
  57. package/dist/src/cli/execute.js.map +1 -1
  58. package/dist/src/cli/exit-codes.d.ts +12 -0
  59. package/dist/src/cli/exit-codes.js +13 -0
  60. package/dist/src/cli/exit-codes.js.map +1 -1
  61. package/dist/src/cli/gate.d.ts +2 -0
  62. package/dist/src/cli/gate.js +233 -2
  63. package/dist/src/cli/gate.js.map +1 -1
  64. package/dist/src/cli/help.d.ts +10 -1
  65. package/dist/src/cli/help.js +283 -54
  66. package/dist/src/cli/help.js.map +1 -1
  67. package/dist/src/cli/hook.d.ts +485 -6
  68. package/dist/src/cli/hook.js +2370 -70
  69. package/dist/src/cli/hook.js.map +1 -1
  70. package/dist/src/cli/init.js +16 -7
  71. package/dist/src/cli/init.js.map +1 -1
  72. package/dist/src/cli/instructions.js +24 -3
  73. package/dist/src/cli/instructions.js.map +1 -1
  74. package/dist/src/cli/log-anchor.d.ts +55 -0
  75. package/dist/src/cli/log-anchor.js +199 -60
  76. package/dist/src/cli/log-anchor.js.map +1 -1
  77. package/dist/src/cli/log-unlock.d.ts +23 -0
  78. package/dist/src/cli/log-unlock.js +109 -0
  79. package/dist/src/cli/log-unlock.js.map +1 -0
  80. package/dist/src/cli/main.d.ts +0 -12
  81. package/dist/src/cli/main.js +72 -4
  82. package/dist/src/cli/main.js.map +1 -1
  83. package/dist/src/cli/muse.d.ts +2 -0
  84. package/dist/src/cli/muse.js +62 -0
  85. package/dist/src/cli/muse.js.map +1 -0
  86. package/dist/src/cli/payload.js +79 -1
  87. package/dist/src/cli/payload.js.map +1 -1
  88. package/dist/src/cli/scaffold.js +6 -0
  89. package/dist/src/cli/scaffold.js.map +1 -1
  90. package/dist/src/cli/serve.d.ts +53 -0
  91. package/dist/src/cli/serve.js +270 -0
  92. package/dist/src/cli/serve.js.map +1 -0
  93. package/dist/src/cli/up.js +26 -2
  94. package/dist/src/cli/up.js.map +1 -1
  95. package/dist/src/cli/verb-registry.d.ts +2 -0
  96. package/dist/src/cli/verb-registry.js +338 -39
  97. package/dist/src/cli/verb-registry.js.map +1 -1
  98. package/dist/src/cli/wordmark.d.ts +2 -2
  99. package/dist/src/cli/wordmark.js +2 -2
  100. package/dist/src/core/attest-bootstrap.d.ts +95 -0
  101. package/dist/src/core/attest-bootstrap.js +135 -0
  102. package/dist/src/core/attest-bootstrap.js.map +1 -0
  103. package/dist/src/core/attest.d.ts +20 -3
  104. package/dist/src/core/attest.js +25 -0
  105. package/dist/src/core/attest.js.map +1 -1
  106. package/dist/src/core/audit.d.ts +153 -12
  107. package/dist/src/core/audit.js +415 -20
  108. package/dist/src/core/audit.js.map +1 -1
  109. package/dist/src/core/channel-lease.d.ts +322 -0
  110. package/dist/src/core/channel-lease.js +663 -0
  111. package/dist/src/core/channel-lease.js.map +1 -0
  112. package/dist/src/core/command-class.d.ts +51 -0
  113. package/dist/src/core/command-class.js +766 -8
  114. package/dist/src/core/command-class.js.map +1 -1
  115. package/dist/src/core/daemon-host.d.ts +178 -0
  116. package/dist/src/core/daemon-host.js +228 -0
  117. package/dist/src/core/daemon-host.js.map +1 -0
  118. package/dist/src/core/daemon-identity.d.ts +238 -0
  119. package/dist/src/core/daemon-identity.js +252 -0
  120. package/dist/src/core/daemon-identity.js.map +1 -0
  121. package/dist/src/core/gate.d.ts +364 -6
  122. package/dist/src/core/gate.js +802 -27
  123. package/dist/src/core/gate.js.map +1 -1
  124. package/dist/src/core/harness-version.d.ts +128 -4
  125. package/dist/src/core/harness-version.js +179 -12
  126. package/dist/src/core/harness-version.js.map +1 -1
  127. package/dist/src/core/harness-wait.d.ts +82 -3
  128. package/dist/src/core/harness-wait.js +89 -3
  129. package/dist/src/core/harness-wait.js.map +1 -1
  130. package/dist/src/core/log-lock.d.ts +435 -0
  131. package/dist/src/core/log-lock.js +1093 -0
  132. package/dist/src/core/log-lock.js.map +1 -0
  133. package/dist/src/core/log-subscribe.d.ts +21 -0
  134. package/dist/src/core/log-subscribe.js +16 -6
  135. package/dist/src/core/log-subscribe.js.map +1 -1
  136. package/dist/src/core/log-write-layer.d.ts +55 -0
  137. package/dist/src/core/log-write-layer.js +91 -0
  138. package/dist/src/core/log-write-layer.js.map +1 -0
  139. package/dist/src/core/log.d.ts +130 -22
  140. package/dist/src/core/log.js +473 -50
  141. package/dist/src/core/log.js.map +1 -1
  142. package/dist/src/core/payload-census.d.ts +51 -0
  143. package/dist/src/core/payload-census.js +125 -2
  144. package/dist/src/core/payload-census.js.map +1 -1
  145. package/dist/src/core/payload-store.d.ts +31 -0
  146. package/dist/src/core/payload-store.js +113 -8
  147. package/dist/src/core/payload-store.js.map +1 -1
  148. package/dist/src/core/payload.d.ts +18 -3
  149. package/dist/src/core/payload.js +20 -4
  150. package/dist/src/core/payload.js.map +1 -1
  151. package/dist/src/core/policy-diff.d.ts +10 -0
  152. package/dist/src/core/policy-diff.js +10 -2
  153. package/dist/src/core/policy-diff.js.map +1 -1
  154. package/dist/src/core/policy-explain.d.ts +7 -1
  155. package/dist/src/core/policy-explain.js +16 -1
  156. package/dist/src/core/policy-explain.js.map +1 -1
  157. package/dist/src/core/policy-load.d.ts +24 -0
  158. package/dist/src/core/policy-load.js.map +1 -1
  159. package/dist/src/core/policy-match.d.ts +38 -0
  160. package/dist/src/core/policy-match.js +35 -0
  161. package/dist/src/core/policy-match.js.map +1 -1
  162. package/dist/src/core/policy-proposal.d.ts +40 -0
  163. package/dist/src/core/policy-proposal.js +37 -16
  164. package/dist/src/core/policy-proposal.js.map +1 -1
  165. package/dist/src/core/prompt-layout.d.ts +186 -1
  166. package/dist/src/core/prompt-layout.js +345 -3
  167. package/dist/src/core/prompt-layout.js.map +1 -1
  168. package/dist/src/core/read-scope.d.ts +10 -0
  169. package/dist/src/core/read-scope.js +4 -0
  170. package/dist/src/core/read-scope.js.map +1 -1
  171. package/dist/src/core/run-payload.d.ts +160 -0
  172. package/dist/src/core/run-payload.js +304 -0
  173. package/dist/src/core/run-payload.js.map +1 -0
  174. package/dist/src/core/sender-identity.d.ts +59 -11
  175. package/dist/src/core/sender-identity.js +79 -11
  176. package/dist/src/core/sender-identity.js.map +1 -1
  177. package/dist/src/core/state.d.ts +52 -1
  178. package/dist/src/core/state.js +52 -6
  179. package/dist/src/core/state.js.map +1 -1
  180. package/dist/src/core/telegram-config.d.ts +79 -0
  181. package/dist/src/core/telegram-config.js +108 -0
  182. package/dist/src/core/telegram-config.js.map +1 -1
  183. package/dist/src/core/validate.d.ts +20 -6
  184. package/dist/src/core/validate.js +0 -0
  185. package/dist/src/core/validate.js.map +1 -1
  186. package/dist/src/core/verify.d.ts +23 -1
  187. package/dist/src/core/verify.js +20 -2
  188. package/dist/src/core/verify.js.map +1 -1
  189. package/dist/src/daemon/audit.d.ts +80 -5
  190. package/dist/src/daemon/audit.js +126 -6
  191. package/dist/src/daemon/audit.js.map +1 -1
  192. package/dist/src/daemon/daemon.d.ts +174 -2
  193. package/dist/src/daemon/daemon.js +298 -7
  194. package/dist/src/daemon/daemon.js.map +1 -1
  195. package/dist/src/daemon/git-evidence.d.ts +2 -2
  196. package/dist/src/daemon/git-evidence.js +1 -1
  197. package/dist/src/daemon/projection.d.ts +13 -2
  198. package/dist/src/daemon/projection.js +39 -6
  199. package/dist/src/daemon/projection.js.map +1 -1
  200. package/dist/src/mcp/server.d.ts +39 -3
  201. package/dist/src/mcp/server.js +22 -3
  202. package/dist/src/mcp/server.js.map +1 -1
  203. package/dist/src/muse/server.d.ts +16 -0
  204. package/dist/src/muse/server.js +238 -0
  205. package/dist/src/muse/server.js.map +1 -0
  206. package/dist/src/serve/archive.d.ts +166 -0
  207. package/dist/src/serve/archive.js +363 -0
  208. package/dist/src/serve/archive.js.map +1 -0
  209. package/dist/src/serve/arguments.d.ts +93 -0
  210. package/dist/src/serve/arguments.js +228 -0
  211. package/dist/src/serve/arguments.js.map +1 -0
  212. package/dist/src/serve/credentials.d.ts +91 -0
  213. package/dist/src/serve/credentials.js +143 -0
  214. package/dist/src/serve/credentials.js.map +1 -0
  215. package/dist/src/serve/follow.d.ts +86 -0
  216. package/dist/src/serve/follow.js +101 -0
  217. package/dist/src/serve/follow.js.map +1 -0
  218. package/dist/src/serve/hook-thread.d.ts +134 -0
  219. package/dist/src/serve/hook-thread.js +333 -0
  220. package/dist/src/serve/hook-thread.js.map +1 -0
  221. package/dist/src/serve/hook-worker.d.ts +134 -0
  222. package/dist/src/serve/hook-worker.js +173 -0
  223. package/dist/src/serve/hook-worker.js.map +1 -0
  224. package/dist/src/serve/server.d.ts +412 -0
  225. package/dist/src/serve/server.js +1251 -0
  226. package/dist/src/serve/server.js.map +1 -0
  227. package/docs/README-extended.md +768 -0
  228. package/docs/cli-reference.md +2139 -67
  229. package/package.json +4 -2
  230. package/schema/event.schema.json +413 -30
  231. package/schema/fixtures/event/invalid/audit-lock-reclaimed-age-without-created.json +19 -0
  232. package/schema/fixtures/event/invalid/audit-lock-reclaimed-agent-actor.json +14 -0
  233. package/schema/fixtures/event/invalid/audit-lock-reclaimed-lockfile-path.json +14 -0
  234. package/schema/fixtures/event/invalid/audit-lock-reclaimed-operator-cleared-system-actor.json +14 -0
  235. package/schema/fixtures/event/invalid/audit-lock-reclaimed-unknown-reason.json +14 -0
  236. package/schema/fixtures/event/invalid/audit-lock-reclaimed-without-age.json +13 -0
  237. package/schema/fixtures/event/invalid/audit-reviewed-agent-actor.json +6 -1
  238. package/schema/fixtures/event/invalid/audit-reviewed-bad-payload-hash.json +21 -0
  239. package/schema/fixtures/event/invalid/audit-reviewed-loved-no-note.json +5 -0
  240. package/schema/fixtures/event/invalid/audit-reviewed-no-subject-hash.json +19 -0
  241. package/schema/fixtures/event/invalid/audit-reviewed-no-subject-seq.json +19 -0
  242. package/schema/fixtures/event/invalid/audit-reviewed-no-verdict-source.json +19 -0
  243. package/schema/fixtures/event/invalid/audit-reviewed-no-verdict.json +19 -0
  244. package/schema/fixtures/event/invalid/audit-reviewed-system-actor.json +6 -1
  245. package/schema/fixtures/event/invalid/audit-sampled-no-policy-hash.json +14 -0
  246. package/schema/fixtures/event/invalid/daemon-id-malformed.json +15 -0
  247. package/schema/fixtures/event/invalid/execution-started-truncated-policy-sha256.json +18 -0
  248. package/schema/fixtures/event/invalid/harness-cap-at-margin.json +16 -0
  249. package/schema/fixtures/event/invalid/harness-cap-fractional.json +16 -0
  250. package/schema/fixtures/event/invalid/harness-cap-negative.json +16 -0
  251. package/schema/fixtures/event/invalid/harness-cap-string.json +16 -0
  252. package/schema/fixtures/event/invalid/harness-cap-without-harness-execution.json +16 -0
  253. package/schema/fixtures/event/invalid/harness-cap-zero.json +16 -0
  254. package/schema/fixtures/event/valid/approval-requested-harness-cap.json +18 -0
  255. package/schema/fixtures/event/valid/audit-lock-reclaimed-implausible-created.json +18 -0
  256. package/schema/fixtures/event/valid/audit-lock-reclaimed-legacy.json +14 -0
  257. package/schema/fixtures/event/valid/audit-lock-reclaimed-unlock.json +19 -0
  258. package/schema/fixtures/event/valid/audit-lock-reclaimed.json +19 -0
  259. package/schema/fixtures/event/valid/audit-reviewed-reaction.json +5 -0
  260. package/schema/fixtures/event/valid/audit-reviewed.json +6 -1
  261. package/schema/fixtures/event/valid/audit-sampled.json +2 -1
  262. package/schema/fixtures/event/valid/daemon-identity-declared.json +17 -0
  263. package/schema/fixtures/event/valid/daemon-identity.json +16 -0
  264. package/schema/fixtures/event/valid/execution-started-policy-sha256.json +18 -0
  265. package/schema/fixtures/event/valid/harness-kind-hermes.json +23 -0
  266. package/schema/fixtures/policy/invalid/daemons-malformed-id.json +10 -0
  267. package/schema/fixtures/policy/valid/daemons-allowlist.json +19 -0
  268. package/schema/fixtures/policy-md/invalid/schema-invalid-agent-may-request.md +21 -0
  269. package/schema/fixtures/policy-md/valid/agent-may-request.md +24 -0
  270. package/schema/policy.schema.json +102 -6
@@ -1 +1 @@
1
- {"version":3,"file":"audit.js","sourceRoot":"","sources":["../../../src/core/audit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"audit.js","sourceRoot":"","sources":["../../../src/core/audit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,322 @@
1
+ /**
2
+ * One transport per gate, enforced locally (APRV-424, review finding 1).
3
+ *
4
+ * `core/channel-owner.ts` answers "does another INSTANCE on this machine hold
5
+ * this bot", keyed on the instance id, and `getWebhookInfo` answers "what is
6
+ * the Bot API delivering this bot's updates to". Between those two answers
7
+ * there was a hole, and it is the one this file closes: two processes started
8
+ * in the SAME gate, one `approval up` long-polling and one `approval channel
9
+ * telegram webhook`, pass both checks. The registry compares instance ids and
10
+ * both processes are the same instance; `getWebhookInfo` is empty when the
11
+ * poller is the one already running. Each then runs its own dispatch cycle
12
+ * over its own `DispatchState` against one log, so every pending request
13
+ * reaches the phone twice under two nonces and only one of the two copies can
14
+ * resolve a tap.
15
+ *
16
+ * ## What the lease is
17
+ *
18
+ * A lockfile in the gate's own derived state directory:
19
+ *
20
+ * ```
21
+ * <instance home>/.approval/daemon/telegram-transport.lock
22
+ * ```
23
+ *
24
+ * `daemon/` because that is where this runtime already keeps per-gate runtime
25
+ * state that a clone must not inherit (`core/live-draw.ts`'s socket lives
26
+ * beside it, and `.gitignore` holds the whole directory). It carries the
27
+ * holder's pid, which transport it is running, and when it started, and it is
28
+ * created with `O_EXCL` so two processes racing cannot both believe they took
29
+ * it.
30
+ *
31
+ * ## Per PROCESS, and validated for liveness
32
+ *
33
+ * The holder is a pid, so:
34
+ *
35
+ * - **A second process refuses.** It reads the holder, sees a live pid, and is
36
+ * told which transport is running and under which pid. The refusal is the
37
+ * whole point: a channel that ran both transports would deliver twice.
38
+ * - **A dead holder is reclaimed.** A crash, a `kill -9`, a laptop that slept
39
+ * through a power cycle: the lockfile outlives the process, and refusing
40
+ * forever over a file nobody owns would be an outage with no fault behind
41
+ * it. `process.kill(pid, 0)` is the probe; `EPERM` counts as alive, because
42
+ * a pid that belongs to somebody else is still a pid in use.
43
+ * - **The same pid is never in conflict with itself.** One process holds one
44
+ * transport, and the in-process half of that rule is
45
+ * `TelegramChannel.claimTransport`, which refuses a second claim on one
46
+ * channel object. A re-take by the holding pid rewrites the record rather
47
+ * than refusing, so a supervisor that restarts its own channel part inside
48
+ * one process (`approval up`) is not fighting its own lockfile.
49
+ *
50
+ * A recycled pid is the acknowledged limit: a long-dead holder whose number
51
+ * has been reused by an unrelated program reads as alive, and the operator
52
+ * gets a refusal naming a pid that is not a gate. That is the safe direction
53
+ * of the error (a refusal an operator can clear by deleting a named file,
54
+ * rather than two pollers on one log), and it is the same trade
55
+ * `core/live-draw.ts` makes when it validates the answering daemon's pid.
56
+ *
57
+ * ## Why an I/O failure is a refusal
58
+ *
59
+ * Every other local record in this runtime is a cache whose absence is the
60
+ * status quo (`channel-owner.ts` says so at length). This one is not: it is
61
+ * the only thing standing between a gate and two live transports, so a
62
+ * directory it cannot create or a file it cannot write is a state in which
63
+ * exclusion cannot be promised, and the stricter path is to say so and stop.
64
+ * The refusal names the path, which is a thing an operator can fix.
65
+ *
66
+ * Nothing here is evidence. It is never read by an enforcement path, it
67
+ * widens no permission, and the only thing it can produce is a refusal to
68
+ * start.
69
+ */
70
+ /** The lockfile's basename inside the gate's `daemon/` directory. */
71
+ export declare const CHANNEL_LEASE_FILE = "telegram-transport.lock";
72
+ /** The only format version this build writes, and the only one it reads. */
73
+ export declare const CHANNEL_LEASE_VERSION = 1;
74
+ /** How many times a take retries around a torn or reclaimed lockfile. */
75
+ export declare const CHANNEL_LEASE_ATTEMPTS = 5;
76
+ /** How long a take waits before re-reading a lockfile it could not parse. */
77
+ export declare const CHANNEL_LEASE_RETRY_MS = 20;
78
+ /**
79
+ * The sibling file that serializes TAKE-OVERS of an existing lockfile.
80
+ *
81
+ * The lease itself is taken with `O_EXCL`, which settles the ordinary race by
82
+ * itself: exactly one of two processes creating a file that is not there wins.
83
+ * Reclaiming a lockfile that IS there cannot be settled that way, and the
84
+ * first version of this module proved it. Two processes both read the same
85
+ * dead holder, the first unlinked it and created its own live lease, and the
86
+ * second, resuming inside its own read-then-unlink, deleted that live lease
87
+ * and created its own. Both then believed they held the gate, which is the
88
+ * exact state this file exists to rule out.
89
+ *
90
+ * So a take-over happens inside a critical section of its own, entered with
91
+ * the same `O_EXCL` primitive, and what happens inside it is a re-read: the
92
+ * record must still be the very one that was judged dead (same pid, same
93
+ * `started_at`) or the take-over is abandoned. The loser of that race finds a
94
+ * LIVE record on its next pass and refuses, which is the right answer.
95
+ */
96
+ export declare const CHANNEL_LEASE_RECLAIM_SUFFIX = ".reclaim";
97
+ /**
98
+ * How old a reclaim lock has to be before its age is worth saying out loud.
99
+ *
100
+ * It DECIDES NOTHING, and that is the third review's first finding. An earlier
101
+ * version evicted a reclaim lock on age alone, which handed the section to a
102
+ * second process while the first was still inside it: the first then renamed
103
+ * its lease over the second's and deleted the second's lock on its way out.
104
+ * What decides an eviction now is the same liveness probe a lease holder is
105
+ * judged by, because "five seconds have passed" says nothing about whether
106
+ * anybody is still in the room.
107
+ */
108
+ export declare const CHANNEL_LEASE_RECLAIM_STALE_MS = 5000;
109
+ /**
110
+ * How much later than the lease a process may have started and still be its
111
+ * holder.
112
+ *
113
+ * `started_at` is written just after the holder is running, so the holder's
114
+ * own start time is at or before it. A pid whose process started AFTER the
115
+ * lease was written is a pid the operating system handed to somebody else,
116
+ * which is the case this tolerance exists to detect rather than to forgive.
117
+ * The slack covers the coarse clock the fallback probe reports (`ps -o
118
+ * lstart=` has one-second resolution) and small clock adjustments.
119
+ */
120
+ export declare const CHANNEL_LEASE_START_TOLERANCE_MS = 2000;
121
+ /**
122
+ * Which transport a holder is running.
123
+ *
124
+ * The same two words `TelegramChannel.claimTransport` uses, deliberately: one
125
+ * vocabulary for "how do updates reach this gate", so a refusal here and a
126
+ * refusal there name the same thing.
127
+ */
128
+ export type ChannelLeaseMode = "poll" | "webhook";
129
+ /**
130
+ * Why a lease could not be taken. Frozen, per SPEC.md §11.1 invariant 6.
131
+ *
132
+ * Two of the three name the transport that already holds the gate, because
133
+ * that is what decides the repair: stop the poller, or stop the webhook runner
134
+ * (which also removes the registration as it exits). The third is the state in
135
+ * which no promise can be made at all.
136
+ */
137
+ export declare const CHANNEL_LEASE_REFUSAL_CODES: readonly [
138
+ /** A long-poll listener (`approval channel telegram listen`, `approval up`) holds it. */
139
+ "telegram-poller-running",
140
+ /** A webhook runner holds it. Same code the Bot API probe uses, same repair. */
141
+ "webhook-registered",
142
+ /** The lockfile could not be created, read or written, so exclusion cannot be promised. */
143
+ "telegram-lease-unavailable"];
144
+ export type ChannelLeaseRefusalCode = (typeof CHANNEL_LEASE_REFUSAL_CODES)[number];
145
+ /** What one lockfile says. */
146
+ export interface ChannelLeaseHolder {
147
+ /** The holding process. Probed for liveness, never signalled. */
148
+ pid: number;
149
+ /** Which transport that process is running. */
150
+ mode: ChannelLeaseMode;
151
+ /** When it took the lease, ISO-8601. Reported to the operator, never compared. */
152
+ startedAt: string;
153
+ /** The gate it took the lease in, absolute. One gate, one lockfile. */
154
+ instanceHome: string;
155
+ }
156
+ /** A lease this process holds. {@link ChannelLease.release} is idempotent. */
157
+ export interface ChannelLease {
158
+ /** The lockfile, absolute. Named in every refusal so it can be cleared by hand. */
159
+ readonly path: string;
160
+ readonly mode: ChannelLeaseMode;
161
+ readonly pid: number;
162
+ /**
163
+ * Give the gate back.
164
+ *
165
+ * Removes the lockfile only while it still names this process: a release
166
+ * that deleted somebody else's record would hand the gate to a third
167
+ * process while the second was still running, which is the state the lease
168
+ * exists to rule out. Safe to call twice, and safe to call after the file
169
+ * has been removed by hand.
170
+ */
171
+ release(): void;
172
+ }
173
+ export type ChannelLeaseOutcome = {
174
+ ok: true;
175
+ lease: ChannelLease;
176
+ /** The holder whose lockfile this take reclaimed, when there was one. */
177
+ reclaimed: ChannelLeaseHolder | null;
178
+ /**
179
+ * Why that holder stopped being one.
180
+ *
181
+ * Carried beside the record rather than folded into it, because two
182
+ * callers act on it: the operator's line says which of the three
183
+ * happened, and `claimListenerBot` reads "a webhook runner in THIS gate
184
+ * died" as the evidence that lets a restart re-register its own url
185
+ * without `--reclaim` (APRV-424 review 2, finding 4).
186
+ */
187
+ reclaimedBecause: ChannelLeaseReclaimReason | null;
188
+ } | {
189
+ ok: false;
190
+ code: ChannelLeaseRefusalCode;
191
+ /** The live holder, when one was read. Absent for an I/O refusal. */
192
+ holder: ChannelLeaseHolder | null;
193
+ message: string;
194
+ };
195
+ export interface ChannelLeaseOptions {
196
+ /** This process's pid. Injectable so a test can stand in for a second process. */
197
+ pid?: number;
198
+ /** The clock the `started_at` field is read from. */
199
+ now?: () => Date;
200
+ /**
201
+ * Is `pid` a running process?
202
+ *
203
+ * The coarse knob, and injectable for the same reason: a test that needs a
204
+ * STALE lockfile cannot produce one with a real pid without killing
205
+ * something. When it is given it DECIDES, so a test that wants the reuse and
206
+ * foreign-owner questions asked passes {@link probe} instead.
207
+ */
208
+ alive?: (pid: number) => boolean;
209
+ /**
210
+ * The full pid probe: does it exist, can this process signal it, and when
211
+ * did it start.
212
+ *
213
+ * Defaults to {@link probePid}. Injectable so the reused-pid and
214
+ * foreign-owner judgements can be driven without arranging for the operating
215
+ * system to hand out a particular number.
216
+ */
217
+ probe?: (pid: number) => PidProbe;
218
+ /**
219
+ * Run between judging a holder dead and taking its lockfile over.
220
+ *
221
+ * A seam, and it exists for one reason: the interleaving that made this
222
+ * take-over a critical section can only be reproduced by letting a second
223
+ * take run in the gap. A test plants a dead lease, starts one take, and runs
224
+ * the whole of another from inside this callback; exactly one of the two
225
+ * must come out holding the gate. Nothing in the runtime passes it.
226
+ */
227
+ beforeTakeOver?: () => void;
228
+ /**
229
+ * Run INSIDE the reclaim section, after its re-read and before its rename.
230
+ *
231
+ * The second seam, for the second interleaving (third review, finding 1): a
232
+ * process that stalls in there long enough to lose the section must not go
233
+ * on to rename its lease over the one that replaced it. Nothing in the
234
+ * runtime passes this either.
235
+ */
236
+ insideTakeOver?: () => void;
237
+ /**
238
+ * Where a note about the lease goes: an evicted reclaim lock, and nothing
239
+ * else so far.
240
+ *
241
+ * Separate from the refusal messages because it is not a refusal. The
242
+ * listener preflight passes its own reporter, so the line lands wherever
243
+ * that verb's complaints land.
244
+ */
245
+ note?: (message: string) => void;
246
+ }
247
+ /** The gate's `daemon/` directory for `logPath`, derived and never configured. */
248
+ export declare function channelLeaseDirFor(logPath: string): string;
249
+ /** Where the Telegram transport lease for `logPath` lives. */
250
+ export declare function channelLeasePathFor(logPath: string): string;
251
+ /**
252
+ * What a pid probe found.
253
+ *
254
+ * Three facts rather than one boolean, because "there is a process with that
255
+ * number" is not the question. The question is whether that process is the one
256
+ * that wrote this lease, and a pid on its own cannot answer it: pids are
257
+ * reused, and a number that belonged to a webhook runner this morning can
258
+ * belong to a text editor this afternoon.
259
+ */
260
+ export interface PidProbe {
261
+ /** Does a process with this number exist at all? */
262
+ running: boolean;
263
+ /**
264
+ * Does it exist but belong to somebody this process cannot signal (`EPERM`)?
265
+ *
266
+ * Treated as NOT ours rather than as a live holder. A lease in this gate is
267
+ * written by a process launched the way this one was, so a pid owned by
268
+ * another user is a recycled number far more often than it is the holder;
269
+ * and the alternative reading wedges the gate until a human deletes a file,
270
+ * which is the outage this module is meant to prevent rather than cause.
271
+ */
272
+ foreign: boolean;
273
+ /** When that process started, when the platform will say. */
274
+ startedAt: Date | null;
275
+ }
276
+ /**
277
+ * When the process with this pid started, or `null` when it cannot be learned.
278
+ *
279
+ * Two sources, in order of cost. On Linux `/proc/<pid>` is created with the
280
+ * process and carries its start time, which needs no subprocess. Everywhere
281
+ * else `ps -o lstart=` answers the same question; it costs one short-lived
282
+ * child, paid once per lease take (which happens once per process start), and
283
+ * a `ps` that is missing, slow or unhelpful returns `null` rather than
284
+ * failing.
285
+ *
286
+ * `null` is the fail-CLOSED direction here: a holder whose start time cannot
287
+ * be compared is judged by its pid alone, exactly as before this probe
288
+ * existed, and a live pid then still refuses.
289
+ */
290
+ export declare function processStartedAt(pid: number): Date | null;
291
+ /** Ask the operating system about one pid. The default {@link ChannelLeaseOptions.probe}. */
292
+ export declare function probePid(pid: number): PidProbe;
293
+ /**
294
+ * Is `pid` a running process?
295
+ *
296
+ * Kept for the callers that only want the coarse answer. The lease itself asks
297
+ * {@link probePid}, because a pid alone cannot tell a holder from a number the
298
+ * operating system has since handed to somebody else.
299
+ */
300
+ export declare function pidIsAlive(pid: number): boolean;
301
+ /**
302
+ * Why a lease stopped being its holder's.
303
+ *
304
+ * Three ways, and the operator is told which: the process is gone, the number
305
+ * now belongs to somebody this process cannot signal, or the number is in use
306
+ * by a process that started after the lease was written and therefore cannot
307
+ * be the one that wrote it.
308
+ */
309
+ export declare const CHANNEL_LEASE_RECLAIM_REASONS: readonly ["gone", "foreign", "recycled"];
310
+ export type ChannelLeaseReclaimReason = (typeof CHANNEL_LEASE_RECLAIM_REASONS)[number];
311
+ /** How a reclaim is reported to the operator. */
312
+ export declare function reclaimDetail(holder: ChannelLeaseHolder, reason: ChannelLeaseReclaimReason): string;
313
+ /** What the lockfile for `logPath` currently says, or `null`. Diagnostics only. */
314
+ export declare function readChannelLease(logPath: string): ChannelLeaseHolder | null;
315
+ /**
316
+ * Take the gate's Telegram transport lease in `mode`, or say who holds it.
317
+ *
318
+ * Synchronous, like every other lockfile in this runtime: the take happens
319
+ * once per process before anything is delivered, and a caller that had to
320
+ * await it would be a caller that could interleave two takes in one process.
321
+ */
322
+ export declare function takeChannelLease(logPath: string, mode: ChannelLeaseMode, options?: ChannelLeaseOptions): ChannelLeaseOutcome;