approval-md 0.1.0 → 0.2.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 (266) hide show
  1. package/README.md +584 -553
  2. package/SPEC.md +42 -13
  3. package/dist/src/adapters/agentmail.d.ts +426 -0
  4. package/dist/src/adapters/agentmail.js +2 -2
  5. package/dist/src/adapters/conformance.d.ts +149 -0
  6. package/dist/src/adapters/contract.d.ts +628 -0
  7. package/dist/src/adapters/contract.js +110 -16
  8. package/dist/src/adapters/contract.js.map +1 -1
  9. package/dist/src/adapters/email.d.ts +324 -0
  10. package/dist/src/adapters/env-passphrase.d.ts +93 -0
  11. package/dist/src/adapters/public.d.ts +11 -0
  12. package/dist/src/adapters/public.js +11 -0
  13. package/dist/src/adapters/public.js.map +1 -0
  14. package/dist/src/adapters/registry.d.ts +59 -0
  15. package/dist/src/adapters/registry.js +2 -1
  16. package/dist/src/adapters/registry.js.map +1 -1
  17. package/dist/src/adapters/smtp.d.ts +213 -0
  18. package/dist/src/adapters/vault-provider.d.ts +114 -0
  19. package/dist/src/adapters/vault-provider.js +3 -3
  20. package/dist/src/adapters/zzz.d.ts +66 -0
  21. package/dist/src/adapters/zzz.js +299 -0
  22. package/dist/src/adapters/zzz.js.map +1 -0
  23. package/dist/src/channels/batch.d.ts +109 -0
  24. package/dist/src/channels/cli.d.ts +193 -0
  25. package/dist/src/channels/conformance.d.ts +92 -0
  26. package/dist/src/channels/contract.d.ts +623 -0
  27. package/dist/src/channels/payload-view.d.ts +35 -0
  28. package/dist/src/channels/render-queue.d.ts +149 -0
  29. package/dist/src/channels/tagging.d.ts +196 -0
  30. package/dist/src/channels/telegram.d.ts +1832 -0
  31. package/dist/src/channels/web.d.ts +341 -0
  32. package/dist/src/cli/adapter.d.ts +90 -0
  33. package/dist/src/cli/adapter.js +25 -15
  34. package/dist/src/cli/adapter.js.map +1 -1
  35. package/dist/src/cli/amend.d.ts +59 -0
  36. package/dist/src/cli/args.d.ts +43 -0
  37. package/dist/src/cli/attest.d.ts +41 -0
  38. package/dist/src/cli/audit-card.d.ts +62 -0
  39. package/dist/src/cli/audit.d.ts +59 -0
  40. package/dist/src/cli/channel-telegram.d.ts +806 -0
  41. package/dist/src/cli/channel-web.d.ts +131 -0
  42. package/dist/src/cli/channel.d.ts +71 -0
  43. package/dist/src/cli/checkpoint-tap.d.ts +169 -0
  44. package/dist/src/cli/codex.d.ts +2 -0
  45. package/dist/src/cli/codex.js +172 -0
  46. package/dist/src/cli/codex.js.map +1 -0
  47. package/dist/src/cli/coverage.d.ts +61 -0
  48. package/dist/src/cli/daemon.d.ts +120 -0
  49. package/dist/src/cli/doctor.d.ts +129 -0
  50. package/dist/src/cli/doctor.js +119 -5
  51. package/dist/src/cli/doctor.js.map +1 -1
  52. package/dist/src/cli/env.d.ts +65 -0
  53. package/dist/src/cli/execute.d.ts +202 -0
  54. package/dist/src/cli/exit-codes.d.ts +73 -0
  55. package/dist/src/cli/feedback.d.ts +60 -0
  56. package/dist/src/cli/gate-window.d.ts +40 -0
  57. package/dist/src/cli/gate.d.ts +68 -0
  58. package/dist/src/cli/git-scope.d.ts +190 -0
  59. package/dist/src/cli/gloss-attach.d.ts +85 -0
  60. package/dist/src/cli/gloss-codex-child.d.ts +9 -0
  61. package/dist/src/cli/gloss-codex.d.ts +24 -0
  62. package/dist/src/cli/gloss-options.d.ts +42 -0
  63. package/dist/src/cli/gloss.d.ts +265 -0
  64. package/dist/src/cli/help.d.ts +103 -0
  65. package/dist/src/cli/help.js +173 -51
  66. package/dist/src/cli/help.js.map +1 -1
  67. package/dist/src/cli/hook-codex.d.ts +78 -0
  68. package/dist/src/cli/hook-codex.js +167 -0
  69. package/dist/src/cli/hook-codex.js.map +1 -0
  70. package/dist/src/cli/hook.d.ts +331 -0
  71. package/dist/src/cli/hook.js +186 -80
  72. package/dist/src/cli/hook.js.map +1 -1
  73. package/dist/src/cli/import.d.ts +35 -0
  74. package/dist/src/cli/init.d.ts +84 -0
  75. package/dist/src/cli/init.js +2 -2
  76. package/dist/src/cli/init.js.map +1 -1
  77. package/dist/src/cli/instructions.d.ts +23 -0
  78. package/dist/src/cli/journal.d.ts +41 -0
  79. package/dist/src/cli/log-advance.d.ts +287 -0
  80. package/dist/src/cli/log-advance.js +102 -11
  81. package/dist/src/cli/log-advance.js.map +1 -1
  82. package/dist/src/cli/log-anchor.d.ts +176 -0
  83. package/dist/src/cli/log-checkpoint.d.ts +22 -0
  84. package/dist/src/cli/log-sync.d.ts +243 -0
  85. package/dist/src/cli/log-verbs.d.ts +16 -0
  86. package/dist/src/cli/log-verbs.js +7 -1
  87. package/dist/src/cli/log-verbs.js.map +1 -1
  88. package/dist/src/cli/long-help.d.ts +70 -0
  89. package/dist/src/cli/main.d.ts +77 -0
  90. package/dist/src/cli/main.js +155 -5
  91. package/dist/src/cli/main.js.map +1 -1
  92. package/dist/src/cli/mcp.d.ts +52 -0
  93. package/dist/src/cli/paths.d.ts +56 -0
  94. package/dist/src/cli/payload.d.ts +58 -0
  95. package/dist/src/cli/policy.d.ts +43 -0
  96. package/dist/src/cli/preflight.d.ts +363 -0
  97. package/dist/src/cli/preflight.js +294 -7
  98. package/dist/src/cli/preflight.js.map +1 -1
  99. package/dist/src/cli/progress.d.ts +78 -0
  100. package/dist/src/cli/prompt.d.ts +209 -0
  101. package/dist/src/cli/quickstart.d.ts +46 -0
  102. package/dist/src/cli/quickstart.js +297 -0
  103. package/dist/src/cli/quickstart.js.map +1 -0
  104. package/dist/src/cli/records.d.ts +34 -0
  105. package/dist/src/cli/render.d.ts +22 -0
  106. package/dist/src/cli/sandbox.d.ts +51 -0
  107. package/dist/src/cli/scaffold.d.ts +79 -0
  108. package/dist/src/cli/setup-adapter.d.ts +137 -0
  109. package/dist/src/cli/setup-adapter.js +38 -4
  110. package/dist/src/cli/setup-adapter.js.map +1 -1
  111. package/dist/src/cli/setup-channel.d.ts +117 -0
  112. package/dist/src/cli/setup-checkpoint.d.ts +57 -0
  113. package/dist/src/cli/setup-common.d.ts +275 -0
  114. package/dist/src/cli/setup-flow.d.ts +287 -0
  115. package/dist/src/cli/setup-service.d.ts +96 -0
  116. package/dist/src/cli/setup.d.ts +202 -0
  117. package/dist/src/cli/style.d.ts +320 -0
  118. package/dist/src/cli/token.d.ts +39 -0
  119. package/dist/src/cli/up.d.ts +155 -0
  120. package/dist/src/cli/up.js +4 -2
  121. package/dist/src/cli/up.js.map +1 -1
  122. package/dist/src/cli/usage.d.ts +37 -0
  123. package/dist/src/cli/values.d.ts +40 -0
  124. package/dist/src/cli/vault.d.ts +59 -0
  125. package/dist/src/cli/vault.js +2 -2
  126. package/dist/src/cli/vault.js.map +1 -1
  127. package/dist/src/cli/verb-registry.d.ts +76 -0
  128. package/dist/src/cli/verb-registry.js +176 -8
  129. package/dist/src/cli/verb-registry.js.map +1 -1
  130. package/dist/src/cli/wordmark.d.ts +31 -0
  131. package/dist/src/cli/wordmark.js +2 -2
  132. package/dist/src/codex/doctor.d.ts +13 -0
  133. package/dist/src/codex/doctor.js +41 -0
  134. package/dist/src/codex/doctor.js.map +1 -0
  135. package/dist/src/codex/manifest.d.ts +49 -0
  136. package/dist/src/codex/manifest.js +103 -0
  137. package/dist/src/codex/manifest.js.map +1 -0
  138. package/dist/src/codex/templates.d.ts +41 -0
  139. package/dist/src/codex/templates.js +319 -0
  140. package/dist/src/codex/templates.js.map +1 -0
  141. package/dist/src/codex/trust.d.ts +19 -0
  142. package/dist/src/codex/trust.js +183 -0
  143. package/dist/src/codex/trust.js.map +1 -0
  144. package/dist/src/codex/workspace-plan.d.ts +131 -0
  145. package/dist/src/codex/workspace-plan.js +561 -0
  146. package/dist/src/codex/workspace-plan.js.map +1 -0
  147. package/dist/src/core/actor.d.ts +2 -0
  148. package/dist/src/core/actor.js +5 -0
  149. package/dist/src/core/actor.js.map +1 -0
  150. package/dist/src/core/advance-cycle.d.ts +170 -0
  151. package/dist/src/core/agents-md.d.ts +276 -0
  152. package/dist/src/core/apply-patch.d.ts +49 -0
  153. package/dist/src/core/apply-patch.js +266 -0
  154. package/dist/src/core/apply-patch.js.map +1 -0
  155. package/dist/src/core/attest.d.ts +420 -0
  156. package/dist/src/core/attest.js +13 -1
  157. package/dist/src/core/attest.js.map +1 -1
  158. package/dist/src/core/audit.d.ts +492 -0
  159. package/dist/src/core/budgets.d.ts +238 -0
  160. package/dist/src/core/checkpoint.d.ts +500 -0
  161. package/dist/src/core/child-env.d.ts +88 -0
  162. package/dist/src/core/clock.d.ts +52 -0
  163. package/dist/src/core/command-class.d.ts +543 -0
  164. package/dist/src/core/command-class.js +43 -8
  165. package/dist/src/core/command-class.js.map +1 -1
  166. package/dist/src/core/coverage-sources/adapter.d.ts +40 -0
  167. package/dist/src/core/coverage-sources/gh.d.ts +48 -0
  168. package/dist/src/core/coverage-sources/git.d.ts +101 -0
  169. package/dist/src/core/coverage.d.ts +217 -0
  170. package/dist/src/core/credential-spec.d.ts +72 -0
  171. package/dist/src/core/dark-session.d.ts +331 -0
  172. package/dist/src/core/decision-refusal.d.ts +185 -0
  173. package/dist/src/core/env-file.d.ts +450 -0
  174. package/dist/src/core/execute.d.ts +858 -0
  175. package/dist/src/core/execute.js +44 -6
  176. package/dist/src/core/execute.js.map +1 -1
  177. package/dist/src/core/frontmatter.d.ts +78 -0
  178. package/dist/src/core/gate-window.d.ts +312 -0
  179. package/dist/src/core/gate.d.ts +1364 -0
  180. package/dist/src/core/gate.js +68 -13
  181. package/dist/src/core/gate.js.map +1 -1
  182. package/dist/src/core/git-run.d.ts +73 -0
  183. package/dist/src/core/harness-version.d.ts +157 -0
  184. package/dist/src/core/harness-version.js +2 -1
  185. package/dist/src/core/harness-version.js.map +1 -1
  186. package/dist/src/core/harness-wait.d.ts +55 -0
  187. package/dist/src/core/head-retry.d.ts +107 -0
  188. package/dist/src/core/instance.d.ts +253 -0
  189. package/dist/src/core/intake-limits.d.ts +247 -0
  190. package/dist/src/core/jcs.d.ts +52 -0
  191. package/dist/src/core/journal.d.ts +144 -0
  192. package/dist/src/core/live-draw.d.ts +436 -0
  193. package/dist/src/core/log-reconcile.d.ts +89 -0
  194. package/dist/src/core/log-subscribe.d.ts +36 -0
  195. package/dist/src/core/log-subscribe.js +162 -0
  196. package/dist/src/core/log-subscribe.js.map +1 -0
  197. package/dist/src/core/log.d.ts +278 -0
  198. package/dist/src/core/loop.d.ts +274 -0
  199. package/dist/src/core/loop.js +11 -0
  200. package/dist/src/core/loop.js.map +1 -1
  201. package/dist/src/core/md-fence.d.ts +41 -0
  202. package/dist/src/core/money.d.ts +147 -0
  203. package/dist/src/core/payload-census.d.ts +74 -0
  204. package/dist/src/core/payload-store.d.ts +175 -0
  205. package/dist/src/core/payload.d.ts +71 -0
  206. package/dist/src/core/policy-diff.d.ts +292 -0
  207. package/dist/src/core/policy-diff.js +27 -4
  208. package/dist/src/core/policy-diff.js.map +1 -1
  209. package/dist/src/core/policy-expectations.d.ts +199 -0
  210. package/dist/src/core/policy-explain.d.ts +150 -0
  211. package/dist/src/core/policy-explain.js +31 -3
  212. package/dist/src/core/policy-explain.js.map +1 -1
  213. package/dist/src/core/policy-load.d.ts +527 -0
  214. package/dist/src/core/policy-load.js +15 -3
  215. package/dist/src/core/policy-load.js.map +1 -1
  216. package/dist/src/core/policy-match.d.ts +281 -0
  217. package/dist/src/core/policy-match.js +20 -9
  218. package/dist/src/core/policy-match.js.map +1 -1
  219. package/dist/src/core/policy-proposal.d.ts +265 -0
  220. package/dist/src/core/prompt-layout.d.ts +221 -0
  221. package/dist/src/core/protected-path-guard.d.ts +453 -0
  222. package/dist/src/core/protected-path-guard.js +514 -35
  223. package/dist/src/core/protected-path-guard.js.map +1 -1
  224. package/dist/src/core/registration.d.ts +25 -0
  225. package/dist/src/core/reindex.d.ts +99 -0
  226. package/dist/src/core/sampler.d.ts +313 -0
  227. package/dist/src/core/sandbox.d.ts +290 -0
  228. package/dist/src/core/seal.d.ts +165 -0
  229. package/dist/src/core/state.d.ts +505 -0
  230. package/dist/src/core/task-file.d.ts +185 -0
  231. package/dist/src/core/telegram-config.d.ts +93 -0
  232. package/dist/src/core/token.d.ts +409 -0
  233. package/dist/src/core/token.js +21 -38
  234. package/dist/src/core/token.js.map +1 -1
  235. package/dist/src/core/validate.d.ts +138 -0
  236. package/dist/src/core/values.d.ts +137 -0
  237. package/dist/src/core/vault.d.ts +291 -0
  238. package/dist/src/core/verified-snapshot.d.ts +204 -0
  239. package/dist/src/core/verify.d.ts +336 -0
  240. package/dist/src/core/version.d.ts +8 -0
  241. package/dist/src/core/wysiwys.d.ts +370 -0
  242. package/dist/src/daemon/advance-child.d.ts +39 -0
  243. package/dist/src/daemon/advance.d.ts +466 -0
  244. package/dist/src/daemon/audit.d.ts +87 -0
  245. package/dist/src/daemon/daemon.d.ts +1180 -0
  246. package/dist/src/daemon/dark-session.d.ts +64 -0
  247. package/dist/src/daemon/draw-child.d.ts +36 -0
  248. package/dist/src/daemon/draw.d.ts +154 -0
  249. package/dist/src/daemon/git-evidence.d.ts +173 -0
  250. package/dist/src/daemon/git-evidence.js +1 -1
  251. package/dist/src/daemon/projection.d.ts +180 -0
  252. package/dist/src/daemon/prune.d.ts +207 -0
  253. package/dist/src/mcp/http.d.ts +113 -0
  254. package/dist/src/mcp/server.d.ts +265 -0
  255. package/dist/src/mcp/server.js +9 -1
  256. package/dist/src/mcp/server.js.map +1 -1
  257. package/docs/adapter-api.md +106 -0
  258. package/docs/cli-reference.md +389 -36
  259. package/docs/codex-enforced-session.md +30 -0
  260. package/package.json +12 -2
  261. package/schema/codex-instance.schema.json +82 -0
  262. package/schema/event.schema.json +2 -1
  263. package/schema/fixtures/codex-instance/invalid/unpinned-codex-version.json +40 -0
  264. package/schema/fixtures/codex-instance/valid/canonical.json +40 -0
  265. package/schema/policy.schema.json +21 -1
  266. package/templates/codex/README.md +9 -0
@@ -3,13 +3,13 @@
3
3
  *
4
4
  * An **adapter** is a side-effect executor: the thing that actually sends the
5
5
  * email, writes the calendar entry, moves the file. SPEC.md §10.4 makes it the
6
- * hard boundary of the whole system, and says why in one sentence: "an agent
7
- * that bypasses the CLI still cannot send, spend, or delete, because the
8
- * credentials only answer to tokens."
6
+ * hard boundary of the whole system: credentials reach an adapter only inside
7
+ * a runtime-authorized execution window.
9
8
  *
10
- * That sentence describes a *sequence*, not a property of any one function:
11
- * recompute the payload hash, verify and consume the token, record that the
12
- * execution started, act, record how it ended. An adapter that owned that
9
+ * That boundary describes a *sequence*, not a property of any one function:
10
+ * recompute the payload hash, verify the applicable authority and consume a
11
+ * token where required, record that the execution started, act, record how it
12
+ * ended. An adapter that owned that
13
13
  * sequence could skip a step — and the step it would skip is whichever one was
14
14
  * inconvenient the week the adapter was written. So the sequence lives here,
15
15
  * once, and an adapter implements exactly one method:
@@ -60,11 +60,10 @@
60
60
  * inside `act`: the far side can move in between, and the check that binds
61
61
  * the bytes actually sent is the later one.
62
62
  * 4. **Scope the credentials.** The provider handed to `act` is a wrapper that
63
- * closes when `act` returns. Inside the verified-token window it answers;
63
+ * closes when `act` returns. Inside the verified execution window it answers;
64
64
  * outside it, every `get` refuses `credential-window-closed`. An adapter that
65
65
  * stashes the provider and reads it later gets a refusal rather than a
66
- * secret, so "credentials only answer to tokens" is a mechanism instead of an
67
- * intention.
66
+ * secret, so the execution window is a mechanism instead of an intention.
68
67
  * 5. **Redact.** Every string the contract is about to return is scanned for
69
68
  * each credential value the provider handed out during the window, and hits
70
69
  * are replaced with {@link REDACTION_PLACEHOLDER} and counted. SPEC.md §11.1
@@ -103,8 +102,11 @@
103
102
  * {@link ExecuteOptions.clock}), no randomness, and nothing here throws — an
104
103
  * adapter that throws is caught and recorded as a failed execution.
105
104
  */
106
- import { EXECUTE_REFUSAL_CODES, declaringTasks, finishExecution, findDeclaration, indeterminateExecution, providerRefRecordable, startExecution, } from "../core/execute.js";
105
+ import { EXECUTE_REFUSAL_CODES, checkExecutionEligibility, declaringTasks, finishExecution, findDeclaration, indeterminateExecution, providerRefRecordable, startExecution, hasApprovalCycle, } from "../core/execute.js";
106
+ import { request as requestApproval } from "../core/gate.js";
107
107
  import { payloadHash } from "../core/payload.js";
108
+ import { loadPolicy } from "../core/policy-load.js";
109
+ import { resolve } from "../core/policy-match.js";
108
110
  import { payloadOf, readVerifiedRecords } from "../core/state.js";
109
111
  import { PAYLOAD_HASH_FIELD, TOKEN_HASH_FIELD, digestsEqual, tokenHash } from "../core/token.js";
110
112
  // ---------------------------------------------------------------------------
@@ -122,7 +124,7 @@ export const CREDENTIAL_REFUSAL_CODES = [
122
124
  /** The provider knows it and declined: policy, a locked vault, a human's no. */
123
125
  "credential-refused",
124
126
  /**
125
- * The verified-token window has closed: `act` has already returned, and the
127
+ * The verified execution window has closed: `act` has already returned, and the
126
128
  * provider it was handed is no longer live. Distinct from the two above
127
129
  * because nothing is wrong with the credential or the configuration — the
128
130
  * adapter asked at the wrong time, which is a defect in the adapter and is
@@ -181,7 +183,7 @@ function scopeCredentials(inner) {
181
183
  return {
182
184
  ok: false,
183
185
  code: "credential-window-closed",
184
- message: `credential ${JSON.stringify(name)} was requested after act() returned. Credentials are reachable only inside the verified-token window: the execution has already been recorded, so a secret handed over now would be one no token authorized.`,
186
+ message: `credential ${JSON.stringify(name)} was requested after act() returned. Credentials are reachable only inside the verified execution window: the execution has already been recorded, so a secret handed over now would be outside the authority that opened the call.`,
185
187
  };
186
188
  }
187
189
  const result = inner.get(name);
@@ -334,6 +336,20 @@ export function providerRefFor(adapterName, rawDetail, redactedDetail) {
334
336
  */
335
337
  export const ADAPTER_REFUSAL_CODES = [
336
338
  ...EXECUTE_REFUSAL_CODES,
339
+ /** Request intake could not find the task registration. */
340
+ "not-registered",
341
+ /** A concurrent caller opened the live-selected request first. */
342
+ "duplicate-request",
343
+ /** Live-selected intake reached the approver queue ceiling. */
344
+ "queue-full",
345
+ /** Live-selected intake reached the origin's request rate limit. */
346
+ "rate-limited",
347
+ /** A selected live action had no declaration hash to bind. */
348
+ "payload-hash-required",
349
+ /** A selected live self-delivery address could not be created. */
350
+ "token-delivery-unavailable",
351
+ /** Live intake could not retain the exact payload for human display or audit. */
352
+ "payload-store-failed",
337
353
  /**
338
354
  * The adapter does not serve the class this action was declared under.
339
355
  * Refused before anything is appended: routing an action to the wrong
@@ -505,7 +521,7 @@ function tell(provider, grant) {
505
521
  * provider handed here is never left live outside a scope, and every value it
506
522
  * hands over joins the redaction corpus of the refusal this may return. Nothing
507
523
  * read here is kept or returned: what comes back is whether the name resolved,
508
- * and `act` asks for the values itself inside the verified-token window.
524
+ * and `act` asks for the values itself inside the verified execution window.
509
525
  *
510
526
  * Note what an unauthorized caller learns by invoking this path: whether the
511
527
  * names THIS ADAPTER statically declared are present in a provider the caller
@@ -641,9 +657,29 @@ function executeOptionsFrom(options, presentedPayloadHash) {
641
657
  ...(options.schemaDir === undefined ? {} : { schemaDir: options.schemaDir }),
642
658
  ...(options.append === undefined ? {} : { append: options.append }),
643
659
  ...(options.clock === undefined ? {} : { clock: options.clock }),
660
+ ...(options.keyStoreDir === undefined ? {} : { keyStoreDir: options.keyStoreDir }),
661
+ ...(options.retryOnHeadMoved === undefined
662
+ ? {}
663
+ : { retryOnHeadMoved: options.retryOnHeadMoved }),
644
664
  presentedPayloadHash,
645
665
  };
646
666
  }
667
+ function liveIntakeOptionsFrom(options) {
668
+ return {
669
+ ...(options.policy === undefined ? {} : { policy: options.policy }),
670
+ ...(options.schemaDir === undefined ? {} : { schemaDir: options.schemaDir }),
671
+ ...(options.append === undefined ? {} : { append: options.append }),
672
+ ...(options.clock === undefined ? {} : { clock: options.clock }),
673
+ ...(options.keyStoreDir === undefined ? {} : { keyStoreDir: options.keyStoreDir }),
674
+ ...(options.retryOnHeadMoved === undefined
675
+ ? {}
676
+ : { retryOnHeadMoved: options.retryOnHeadMoved }),
677
+ ...(options.liveIntake?.env === undefined ? {} : { env: options.liveIntake.env }),
678
+ ...(options.liveIntake?.drawAsk === undefined
679
+ ? {}
680
+ : { drawAsk: options.liveIntake.drawAsk }),
681
+ };
682
+ }
647
683
  function refuse(adapter, actionKey, code, message, extra = {}) {
648
684
  return {
649
685
  ok: false,
@@ -711,7 +747,7 @@ export async function executeThroughAdapter(adapter, request, options = {}) {
711
747
  hash = payloadHash(payload);
712
748
  }
713
749
  catch (error) {
714
- return refuse(adapter, actionKey, "payload-unhashable", `the payload for ${actionKey} has no RFC 8785 canonical serialization (${error instanceof Error ? error.message : String(error)}), so it cannot be hashed and cannot be shown to be the bytes the grant approved. Nothing was appended.`);
750
+ return refuse(adapter, actionKey, "payload-unhashable", `the payload for ${actionKey} has no RFC 8785 canonical serialization (${error instanceof Error ? error.message : String(error)}), so it cannot be hashed and cannot be shown to be the bytes the grant or registered declaration bound. Nothing was appended.`);
715
751
  }
716
752
  // (b) The declared class, from the verified log.
717
753
  const read = readVerifiedRecords(logPath, options.schemaDir === undefined ? {} : { schemaDir: options.schemaDir });
@@ -728,6 +764,61 @@ export async function executeThroughAdapter(adapter, request, options = {}) {
728
764
  if (!adapter.classes.includes(declared.class)) {
729
765
  return refuse(adapter, actionKey, "adapter-class-mismatch", `adapter ${JSON.stringify(adapter.name)} serves ${adapter.classes.length === 0 ? "no classes" : adapter.classes.map((cls) => JSON.stringify(cls)).join(", ")}, and action ${actionKey} is declared under class ${JSON.stringify(declared.class)}. The action was routed to the wrong executor; nothing was appended and no token was spent.`);
730
766
  }
767
+ // Supervised-live selection belongs to gate intake. Its unselected result is
768
+ // intentionally absent from the log, so an adapter cannot infer that intake
769
+ // happened merely because no approval.requested exists. On a genuinely
770
+ // no-token, no-cycle call, invoke the existing request path from fields read
771
+ // exclusively from the verified declaration. Selected or unavailable draws
772
+ // create the ordinary pending cycle; an unselected draw appends no approval
773
+ // event and continues. A prior cycle, including a rejected or expired one,
774
+ // is never redrawn here.
775
+ const policyOptions = options.policy ?? {};
776
+ const load = loadPolicy({
777
+ ...(policyOptions.file === undefined
778
+ ? { dir: policyOptions.dir ?? process.cwd() }
779
+ : { file: policyOptions.file }),
780
+ ...(options.schemaDir === undefined ? {} : { schemaDir: options.schemaDir }),
781
+ });
782
+ const initialResolution = resolve(load, declared.class, declared.reversible === null ? {} : { reversible: declared.reversible });
783
+ let livePolicySha256;
784
+ if ((options.token === undefined || options.token.length === 0) &&
785
+ initialResolution.supervision === "live" &&
786
+ !hasApprovalCycle(read.records, actionKey)) {
787
+ const intake = requestApproval(logPath, {
788
+ task: declared.task,
789
+ actionKey,
790
+ cls: declared.class,
791
+ est_cost_usd: declared.est_cost_usd,
792
+ ...(declared.reversible === null ? {} : { reversible: declared.reversible }),
793
+ ...(declared.summary === null ? {} : { summary: declared.summary }),
794
+ ...(declared.payload_hash === null ? {} : { payload_hash: declared.payload_hash }),
795
+ payload: { value: payload },
796
+ delivery: "self",
797
+ }, actor, liveIntakeOptionsFrom(options));
798
+ if (!intake.ok) {
799
+ return refuse(adapter, actionKey, intake.code, intake.message);
800
+ }
801
+ if (intake.proceed && intake.live !== undefined) {
802
+ livePolicySha256 = intake.policySha256;
803
+ }
804
+ }
805
+ // A no-token path must prove that core would admit this exact execution
806
+ // before credentials or a provider-backed precheck are touched. This result
807
+ // is only a preflight: startExecution repeats every check after precheck and
808
+ // remains the sole writer of execution.started.
809
+ const eligibilityOptions = {
810
+ ...executeOptionsFrom(options, hash),
811
+ ...(livePolicySha256 === undefined
812
+ ? {}
813
+ : { expectedPolicySha256: livePolicySha256 }),
814
+ };
815
+ const eligibility = checkExecutionEligibility(logPath, actionKey, eligibilityOptions, actor);
816
+ if (!eligibility.ok) {
817
+ return refuse(adapter, actionKey, eligibility.code, eligibility.message, {
818
+ execute: eligibility,
819
+ });
820
+ }
821
+ const effectiveToken = eligibility.mode === "token" ? eligibility.token : undefined;
731
822
  // (c) The credentials the adapter declared it cannot act without, resolved
732
823
  // BEFORE the token is consumed (APRV-169). See
733
824
  // {@link resolveRequiredCredentials} for why this sits here and why the
@@ -738,7 +829,7 @@ export async function executeThroughAdapter(adapter, request, options = {}) {
738
829
  // may offer a capability here on the strength of that decision. Everything
739
830
  // that decides whether the token may actually be SPENT still happens below,
740
831
  // in `startExecution`, and nothing here appends or consumes.
741
- const presented = tokenMatchesGrant(read.records, actionKey, options.token)
832
+ const presented = tokenMatchesGrant(read.records, actionKey, effectiveToken)
742
833
  ? { phase: "presented", actionKey, startedSeq: null, autonomy: null }
743
834
  : null;
744
835
  tell(provider, presented);
@@ -771,7 +862,10 @@ export async function executeThroughAdapter(adapter, request, options = {}) {
771
862
  });
772
863
  }
773
864
  // (d) Authorization and the start event. Refused here means act never runs.
774
- const executeOptions = executeOptionsFrom(options, hash);
865
+ const executeOptions = {
866
+ ...eligibilityOptions,
867
+ ...(effectiveToken === undefined ? {} : { token: effectiveToken }),
868
+ };
775
869
  const started = startExecution(logPath, actionKey, executeOptions, actor);
776
870
  if (!started.ok) {
777
871
  tell(provider, null);
@@ -1 +1 @@
1
- {"version":3,"file":"contract.js","sourceRoot":"","sources":["../../../src/adapters/contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contract.js","sourceRoot":"","sources":["../../../src/adapters/contract.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,324 @@
1
+ /**
2
+ * The email adapter (SPEC.md §6.1, §6.2, §7, §10.4; APRV-69).
3
+ *
4
+ * SPEC.md §6.1 makes the point in its second sentence: "the canonical example is
5
+ * an email, deliberately. This spec governs agent actions in the world." So this
6
+ * is the first adapter, and the class it serves —
7
+ * `communicate.email.external` — is the one the canonical task envelope
8
+ * declares. It implements exactly one method, {@link Adapter.act}, and the
9
+ * contract in `adapters/contract.ts` owns everything around it: the hash
10
+ * recomputation, the token spend, `execution.started`, the credential window,
11
+ * the outcome event, and the redaction sweep. **Nothing in this file touches a
12
+ * token or the log**, and nothing in it can, because it is never handed either.
13
+ *
14
+ * ## The payload, and what the grant therefore approved
15
+ *
16
+ * ```ts
17
+ * {
18
+ * from: string, // one addr-spec
19
+ * to: string[], // at least one
20
+ * cc?: string[],
21
+ * bcc?: string[], // RCPT TO only; never a header
22
+ * subject: string,
23
+ * body: string,
24
+ * content_type?: "text/plain" | "text/html" // default "text/plain"
25
+ * }
26
+ * ```
27
+ *
28
+ * §6.2 says a message send's `payload_hash` covers "the full body and
29
+ * recipients", and this shape is that sentence made concrete. `bcc` is inside
30
+ * the hash even though it appears in no header: a blind recipient is still a
31
+ * recipient, and an approval that did not cover them would be an approval of a
32
+ * different act than the one performed.
33
+ *
34
+ * {@link validateEmailPayload} re-checks the shape inside `act` and refuses
35
+ * `email-payload-invalid`. This is defence in depth and is *not* the binding —
36
+ * the hash already bound the bytes before `act` was called. What it catches is a
37
+ * grant over bytes that are well-formed JSON and not a well-formed email, which
38
+ * is a human approving a mistake rather than an attacker substituting one.
39
+ * Unknown keys are refused too: a payload carrying `attachments` that this
40
+ * adapter silently dropped would send something other than what a human read.
41
+ *
42
+ * ## The two fields the grant does NOT bind
43
+ *
44
+ * A wire message needs a `Date` and a `Message-ID`, and neither can live in the
45
+ * payload without making the hash depend on when the send happened.
46
+ *
47
+ * - **`Date`** is stamped by the runtime from {@link EmailAdapterOptions.clock}
48
+ * (default: the wall clock) at the moment of the send. The grant binds the
49
+ * *message content*; the runtime records *when it went*. A human who approved
50
+ * a chaser on Tuesday and watched it execute on Wednesday approved the words,
51
+ * not the timestamp, and a `Date` inside the payload would additionally make
52
+ * every grant expire into a `payload-mismatch` the moment the clock moved.
53
+ * - **`Message-ID`** is derived, not random: SHA-256 over the action key and the
54
+ * payload hash, at the From address's domain. It is therefore reproducible
55
+ * from the log alone — an operator holding `action_key` and the grant's
56
+ * `payload_hash` can recompute the exact Message-ID the far side saw, which is
57
+ * what makes a delivery receipt or a bounce traceable back to an approval. A
58
+ * random one would have to be logged to be useful, and the log is not where an
59
+ * adapter writes.
60
+ *
61
+ * Both are stated in the module header rather than only in code because they are
62
+ * the two places this adapter puts bytes on the wire that no human approved.
63
+ *
64
+ * ## Encoding
65
+ *
66
+ * Quoted-printable, implemented here (RFC 2045 §6.7), rather than refusing
67
+ * non-ASCII. Refusing would mean an adapter whose canonical example — a chaser
68
+ * to a British letting agency about a £1,200 deposit — cannot be sent, and
69
+ * "your approval was fine, the runtime cannot spell your currency" is not a
70
+ * refusal any operator would accept. An all-ASCII body is sent `8bit`
71
+ * unchanged, so the common case is byte-for-byte what the human read.
72
+ *
73
+ * A non-ASCII `subject` is RFC 2047 `B` encoded-words. Addresses must be ASCII:
74
+ * an internationalized address needs SMTPUTF8 negotiation (RFC 6531), this
75
+ * client does not implement it, and encoding one anyway would hand the server an
76
+ * address it may or may not interpret as intended. That is
77
+ * `email-payload-invalid` with the rule quoted.
78
+ *
79
+ * ## Configuration comes from the vault
80
+ *
81
+ * All five settings — host, port, security, user, password — are read through
82
+ * {@link ActInput.credentials} inside `act`, under the names in
83
+ * {@link DEFAULT_CREDENTIAL_NAMES}. Host and port are not secrets, and reading
84
+ * them from the vault anyway buys one thing worth having: there is exactly one
85
+ * place an adapter reads deployment configuration from, and it is not the
86
+ * environment, not a config file an agent can write, and not the policy an agent
87
+ * can read. A future task may let policy supply host/port (they are the sort of
88
+ * thing an operator would like to see in `APPROVAL.md`), at which point the
89
+ * vault stays the source for the two that are actually secret; that is a SPEC
90
+ * §5.2 change and therefore its own task, not a flag here.
91
+ *
92
+ * The same five are also DECLARED, as {@link EMAIL_CREDENTIAL_SPECS}, so that
93
+ * `approval setup adapter email` can ask for them without knowing what SMTP is
94
+ * (APRV-78). The manifest is derived from {@link DEFAULT_CREDENTIAL_NAMES} and
95
+ * its validation borrows `act`'s own refusal sentences, so a value setup accepts
96
+ * is a value `act` accepts, and the words are the same on both paths.
97
+ *
98
+ * Deterministic given its clock: no randomness anywhere, no environment reads,
99
+ * and `act` never throws (every path returns an {@link ActOutcome}).
100
+ */
101
+ import type { CredentialSpec } from "../core/credential-spec.js";
102
+ import { type Adapter, type CredentialProvider, type JsonValue } from "./contract.js";
103
+ import { type SmtpSecurity } from "./smtp.js";
104
+ /** The value whose canonical hash the grant bound to. */
105
+ export interface EmailPayload {
106
+ from: string;
107
+ to: string[];
108
+ cc?: string[];
109
+ bcc?: string[];
110
+ subject: string;
111
+ body: string;
112
+ content_type?: "text/plain" | "text/html";
113
+ }
114
+ export type EmailValidation = {
115
+ ok: true;
116
+ payload: EmailPayload;
117
+ } | {
118
+ ok: false;
119
+ message: string;
120
+ };
121
+ /**
122
+ * Structural validation. Never throws; returns the reason instead.
123
+ *
124
+ * Exported so a caller can check a payload *before* requesting approval for it,
125
+ * which is the only place a shape error can still be fixed cheaply.
126
+ */
127
+ export declare function validateEmailPayload(value: JsonValue): EmailValidation;
128
+ /** To, then Cc, then Bcc: every address the envelope will name, in order. */
129
+ export declare function envelopeRecipients(payload: EmailPayload): string[];
130
+ /** RFC 5322 §3.3, in UTC. `Tue, 18 Aug 2026 09:14:02 +0000`. */
131
+ export declare function rfc5322Date(when: Date): string;
132
+ /**
133
+ * The deterministic Message-ID: SHA-256 over a domain-separated tuple of the
134
+ * action key and the payload hash, at the sender's own domain.
135
+ *
136
+ * Domain separation (the literal prefix) so this digest can never collide with
137
+ * a payload hash computed over the same strings by something else. Truncated to
138
+ * 40 hex characters, which keeps the header inside a sensible width and leaves
139
+ * 160 bits — the value needs to be unique, not unforgeable, since forging it
140
+ * accomplishes nothing an attacker who can already send mail could not do.
141
+ */
142
+ export declare function deterministicMessageId(actionKey: string, hash: string, from: string): string;
143
+ /**
144
+ * Quoted-printable (RFC 2045 §6.7).
145
+ *
146
+ * Line endings are normalized to CRLF hard breaks first, and each resulting
147
+ * line is encoded and then soft-wrapped at 76 characters with a trailing `=`.
148
+ * Trailing space and tab are always encoded, because a mail server that strips
149
+ * trailing whitespace would otherwise silently alter bytes a human approved.
150
+ */
151
+ export declare function quotedPrintable(text: string): string;
152
+ /**
153
+ * RFC 2047 `B` encoded-words for a non-ASCII header value, chunked so no
154
+ * encoded-word exceeds 75 characters and no chunk splits a code point.
155
+ */
156
+ export declare function encodeHeaderValue(value: string): string;
157
+ /** The non-payload facts the runtime stamps onto the message. */
158
+ export interface RenderStamp {
159
+ /** The moment of the send. NOT part of the payload hash. See the header. */
160
+ date: Date;
161
+ /** Derived from the action key and the payload hash. NOT part of either. */
162
+ messageId: string;
163
+ }
164
+ /**
165
+ * The complete RFC 5322 message, CRLF throughout, **not** dot-stuffed: stuffing
166
+ * is RFC 5321 transport framing and belongs to the SMTP layer, so what this
167
+ * function returns is exactly the message the recipient's server stores.
168
+ *
169
+ * Bcc appears nowhere in it. That is the whole meaning of blind: the address is
170
+ * in the envelope (`RCPT TO`) and in the payload a human approved, and in no
171
+ * byte the other recipients receive.
172
+ */
173
+ export declare function renderEmailMessage(payload: EmailPayload, stamp: RenderStamp): string;
174
+ /** The class SPEC.md §6.1's canonical envelope declares. */
175
+ export declare const EMAIL_CLASS = "communicate.email.external";
176
+ /** The vault names this adapter reads, all of them inside `act`. */
177
+ export declare const DEFAULT_CREDENTIAL_NAMES: {
178
+ readonly host: "smtp.host";
179
+ readonly port: "smtp.port";
180
+ readonly user: "smtp.user";
181
+ readonly password: "smtp.password";
182
+ readonly security: "smtp.security";
183
+ };
184
+ export type EmailCredentialNames = typeof DEFAULT_CREDENTIAL_NAMES;
185
+ /**
186
+ * What this adapter reads from the vault, declared rather than discovered.
187
+ *
188
+ * DERIVED from {@link DEFAULT_CREDENTIAL_NAMES} rather than restating the five
189
+ * strings: a manifest that could drift from the names `act` asks for would be a
190
+ * setup wizard that fills a vault the adapter then cannot read, and
191
+ * `tests/adapter-email.test.ts` pins the two key for key.
192
+ *
193
+ * Order is the order an operator is asked, and it is not alphabetical: the
194
+ * password is last, so that everything a mistyped host or port can waste is
195
+ * answered before the one value that is unpleasant to re-enter.
196
+ */
197
+ export declare const EMAIL_CREDENTIAL_SPECS: readonly CredentialSpec[];
198
+ /**
199
+ * The names this adapter cannot act without, for the contract's pre-token
200
+ * resolution (APRV-169).
201
+ *
202
+ * DERIVED from {@link EMAIL_CREDENTIAL_SPECS}, which already states which values
203
+ * are required, and mapped through `names` so a deployment that renamed one gets
204
+ * the name it actually stored. The login pair is deliberately absent: a relay
205
+ * that wants no login is a supported configuration, and listing `smtp.user`
206
+ * here would turn an optional value into a precondition and refuse a
207
+ * deployment that works today.
208
+ */
209
+ export declare function requiredEmailCredentials(names?: EmailCredentialNames): readonly string[];
210
+ /**
211
+ * The cross-field rule: a username and a password are both-or-neither.
212
+ *
213
+ * Returns the refusal sentence, or `null` when the set is coherent. Exported so
214
+ * that `approval setup adapter email` refuses the half-configured pair at the
215
+ * moment the operator could still fix it, saying exactly what `act` would have
216
+ * said at send time — and `act` itself calls this, so there is one sentence and
217
+ * not two that drift.
218
+ *
219
+ * An absent value and an empty one are the same thing here: `setCredential`
220
+ * refuses an empty credential outright, so "" can only ever mean "not given".
221
+ */
222
+ export declare function checkEmailCredentialSet(values: Record<string, string | undefined>, names?: EmailCredentialNames, kept?: readonly string[]): string | null;
223
+ /**
224
+ * Everything this adapter can report. Frozen union, additive only
225
+ * (SPEC.md §11.1(6)), and note the three families it is a union OF:
226
+ *
227
+ * - the adapter's own two (`email-payload-invalid`, `email-config-invalid`);
228
+ * - the credential refusals, passed through verbatim from the provider, because
229
+ * "the vault is locked" and "nobody stored an SMTP password" are two different
230
+ * repairs and collapsing them into one adapter code would hide which; and
231
+ * - the SMTP transport codes.
232
+ *
233
+ * A server's own refusal produces `smtp-<NNN>`, which is a family rather than a
234
+ * member (see `smtp.ts`); {@link isEmailFailureCode} accepts both.
235
+ */
236
+ export declare const EMAIL_FAILURE_CODES: readonly ["email-payload-invalid", "email-config-invalid", "credential-unavailable", "credential-refused", "credential-window-closed", "smtp-connect-failed", "smtp-tls-failed", "smtp-timeout", "smtp-protocol-error"];
237
+ export type EmailFailureCode = (typeof EMAIL_FAILURE_CODES)[number] | `smtp-${number}`;
238
+ export declare function isEmailFailureCode(value: string): boolean;
239
+ export interface EmailAdapterOptions {
240
+ /**
241
+ * Additional classes this adapter serves, **added** to {@link EMAIL_CLASS}
242
+ * rather than replacing it.
243
+ *
244
+ * Additive because the class list is routing, not authorization: it decides
245
+ * which adapter an already-granted action goes to, and every real
246
+ * authorization decision was made by the policy and the human before `act`
247
+ * exists. An operator wiring internal mail declares
248
+ * `communicate.email.internal` here and keeps the external class they already
249
+ * had, which is what they meant; a list that replaced the default would make
250
+ * "add one class" silently stop serving the canonical one.
251
+ */
252
+ classes?: readonly string[];
253
+ /** Where the message's `Date` comes from. Injected for tests. */
254
+ clock?: () => Date;
255
+ /** Whole-session SMTP budget. Default {@link DEFAULT_SMTP_TIMEOUT_MS}. */
256
+ timeoutMs?: number;
257
+ /** Override the vault names. Partial: unnamed entries keep their default. */
258
+ credentialNames?: Partial<EmailCredentialNames>;
259
+ /** The EHLO name. */
260
+ clientName?: string;
261
+ /**
262
+ * TLS certificate verification. **Defaults to `true`.** Setting it `false`
263
+ * accepts any certificate and is sanctioned in exactly one place: this
264
+ * repository's own tests, against the mock server on 127.0.0.1 holding the
265
+ * self-signed fixture in `tests/fixtures/smtp/`. It exists as an explicit
266
+ * option rather than an environment variable so that a deployment cannot
267
+ * acquire it by accident, and `tests/adapter-email.test.ts` pins the default.
268
+ */
269
+ tlsRejectUnauthorized?: boolean;
270
+ }
271
+ /**
272
+ * The SMTP configuration as {@link readEmailSmtpConfig} resolved it: three
273
+ * required values and the optional login pair.
274
+ */
275
+ export interface EmailSmtpConfig {
276
+ host: string;
277
+ port: number;
278
+ security: SmtpSecurity;
279
+ user?: string;
280
+ password?: string;
281
+ }
282
+ /**
283
+ * What one configuration read produced.
284
+ *
285
+ * `secrets` is the redaction corpus in the order the values were read, and it
286
+ * is returned on BOTH branches because a caller that goes on to open a session
287
+ * must scrub the far end's sentences with the same corpus this read built. A
288
+ * refusal's `message` is already scrubbed with everything read before it.
289
+ */
290
+ export type EmailConfigOutcome = {
291
+ ok: true;
292
+ config: EmailSmtpConfig;
293
+ secrets: readonly string[];
294
+ } | {
295
+ ok: false;
296
+ code: EmailFailureCode;
297
+ message: string;
298
+ secrets: readonly string[];
299
+ };
300
+ /**
301
+ * Read this adapter's whole configuration from a credential provider.
302
+ *
303
+ * Extracted from `act` (APRV-99) so that there is exactly ONE piece of code in
304
+ * the repository that turns a {@link CredentialProvider} into SMTP settings: the
305
+ * names it asks for, the order it asks in, the port and security validation,
306
+ * and the both-or-neither pair rule. `act` calls it inside the verified-token
307
+ * window, and `setup adapter email` calls it to probe a configuration it only
308
+ * partly typed, over a provider built the same way. Neither one re-derives the
309
+ * rules, and a second reader would be a second opinion about what "configured"
310
+ * means.
311
+ *
312
+ * Values never leave the process on either path: what comes back is the
313
+ * configuration a session is opened with, and every string this function
314
+ * RETURNS as a message has been through the scrub built from what it read.
315
+ */
316
+ export declare function readEmailSmtpConfig(credentials: CredentialProvider, names?: EmailCredentialNames): EmailConfigOutcome;
317
+ /**
318
+ * A fresh email adapter.
319
+ *
320
+ * Stateless and reusable: it holds no socket, no connection pool, and nothing
321
+ * from a previous send. Two concurrent executions through the same instance
322
+ * share nothing.
323
+ */
324
+ export declare function emailAdapter(options?: EmailAdapterOptions): Adapter;